用Arduino玩GM65二维码扫描模块
用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
出处:https://www.cnblogs.com/dragonet-Z/p/15596029.html
版权声明:本博客所有文章除特殊声明外,均遵循BY-NC-ND许可协议,转载请注明出处!