用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;
}

烧进去之后就可以开始测试了

测试的二维码如下图

扫码后成功接收到信息,并通过串口上位机打印出来

测试结果如下图

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

最新文章

  1. Ubuntu16.04 LTS下apt安装WireShark
  2. html5跟随鼠标炫酷网站引导页动画特效
  3. iOS 10 都有什么改变?
  4. Ceph剖析:线程池实现
  5. 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]
  6. CentOS 6.0修改ssh远程连接端口
  7. Puppet安装与配置简介(附视频教程)
  8. SQL Server 2008 设计与实现笔记(一)
  9. Dr.com校园网客户端故障解决方法
  10. java.util.Hashtable源码分析
  11. 抓取“矢量”的实时交通流量数据
  12. C#。总结
  13. overflow:hidden
  14. 3p
  15. Django之用户登录实例
  16. 无法获得数据库 'model' 上的排他锁 解决方法
  17. Vue router拦截 如果用户并未登录直接跳转到登录界面(最简单的cookie演示)
  18. 使用c#反射实现接口可视化调试页面
  19. crontab入门及进阶学习笔记
  20. SharePreference 注册 registerOnSharedPreferenceChangeListener 无法回调的问题

热门文章

  1. ubantu系统之 Ubuntu14.04安装Samba实现文件共享
  2. new String比字符串池浪费空间,为什么要用它?
  3. Tsunami: A Learned Multi-dimensional Index for Correlated Data and Skewed Workloads 论文解读(VLDB 2021)
  4. caioj 1000到1030都是[水题]
  5. 计算机网络 TCP 四次挥手过程和状态变迁
  6. python---使用pipreqs及遇到的问题
  7. Java实现单链表的合并(保证数据的有序性)
  8. rpm方式安装mysql
  9. 『现学现忘』Git基础 — 1、版本控制系统介绍
  10. docker容器编排原来这么丝滑~