用Arduino玩GM65二維碼掃描模塊


用Arduino玩GM65二維碼掃描模塊

最近在做Capstone,內容是我們之前實驗室參加過的工程訓練的物流搬運小車,所以現在來復盤一下我使用Arduino驅動各種模塊和傳感器,今天測試的就是GM65二維碼掃描模塊,淘寶上一百來塊就能買到

主控:Arduino Mega 2560
硬件:GM65掃碼模塊、串口通訊模塊
IDE:Arduino官方IDE

今天測試GM65所需要的東西如下三個

image

image

image

在購買GM65模塊之后賣家通常都是發這個文件作為資料,我感覺這個資料確實很好

下載地址:GM65條碼識別模塊用戶手冊

要讓Arduino成功驅動GM65,需要將GM65設置為串口輸出和命令觸發,要是覺得掃碼后反饋的聲音大,也可以調整為靜音

設置串口輸出的二維碼如下圖

image

串口通訊的默認波特率是9600,如果有需要改的話也可以自己去改

設置命令觸發的二維碼如下圖

image

命令觸發,就是在串口接收到某些指令后才能觸發模塊的工作,非常適合我們的使用

實驗接線如下
Serial1————串口模塊
Serial3————GM65模塊

查看資料得知,命令觸發模式下,Arduino需要發送9個十六進制數給GM65,,GM65接收后發送7個十六進制數回來,然后開始掃描

代碼很簡單,直接放上來

Test_Scaner.ino

String qr_code = "";

void setup() {
  // put your setup code here, to run once:
  Serial1.begin(9600);
  Scaner_Init();
}

void loop() {
  // put your main code here, to run repeatedly:
  qr_code = Scan_QR();
  Serial1.println(qr_code);
  while (1);
}

Scaner.ino

//喚醒指令
unsigned char Wakecmd[9] = {0x7E, 0x00, 0x08, 0x01, 0x00, 0x02, 0x01, 0xAB, 0xCD};

void Scaner_Init()
{
  Serial3.begin(9600);
}

String Scan_QR()
{
  unsigned long starttime;
  String str = "";
  Serial3.write(Wakecmd, 9);
  //等待回收信號結束
  while (Serial3.read() != 0x31);
  starttime = millis();
  while (true)
  {
    //掃碼模塊掃出來是會加換行符的
    str = Serial3.readStringUntil('/r');
    if ((str.length() >= 7) || (millis() - starttime > 5000))
      break;
  }
  return str;
}

燒進去之后就可以開始測試了

測試的二維碼如下圖

image

掃碼后成功接收到信息,並通過串口上位機打印出來

測試結果如下圖

image

測試很成功,可以快樂地玩轉這個模塊啦~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM