Loading

用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

测试很成功,可以快乐地玩转这个模块啦~~

posted @ 2021-11-23 23:00  Dragonet-Z  阅读(2923)  评论(0编辑  收藏  举报