用Arduino玩GM65二維碼掃描模組
阿新 • • 發佈:2021-11-23
目錄
用Arduino玩GM65二維碼掃描模組
最近在做Capstone,內容是我們之前實驗室參加過的工程訓練的物流搬運小車,所以現在來複盤一下我使用Arduino驅動各種模組和感測器,今天測試的就是GM65二維碼掃描模組,淘寶上一百來塊就能買到
主控:Arduino Mega 2560
硬體:GM65掃碼模組、串列埠通訊模組
IDE:Arduino官方IDE
今天測試GM65所需要的東西如下三個
在購買GM65模組之後賣家通常都是發這個檔案作為資料,我感覺這個資料確實很好
下載地址:GM65條碼識別模組使用者手冊
要讓Arduino成功驅動GM65,需要將GM65設定為串列埠輸出和命令觸發,要是覺得掃碼後反饋的聲音大,也可以調整為靜音
設定串列埠輸出的二維碼如下圖
串列埠通訊的預設波特率是9600,如果有需要改的話也可以自己去改
設定命令觸發的二維碼如下圖
命令觸發,就是在串列埠接收到某些指令後才能觸發模組的工作,非常適合我們的使用
實驗接線如下
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; }
燒進去之後就可以開始測試了
測試的二維碼如下圖
掃碼後成功接收到資訊,並通過串列埠上位機打印出來
測試結果如下圖
作者:dragonet-Z 出處:http://www.cnblogs.com/dragonet-Z/ 本文版權歸作者和部落格園共有,歡迎轉載,但必須在文章明顯位置給出原文連結,並保留此段宣告,否則保留追究法律責任的權利。測試很成功,可以快樂地玩轉這個模組啦~~