用Arduino玩GM65二维码扫描模块
2024-08-23 12:12:18
用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;
}
烧进去之后就可以开始测试了
测试的二维码如下图
扫码后成功接收到信息,并通过串口上位机打印出来
测试结果如下图
测试很成功,可以快乐地玩转这个模块啦~~
最新文章
- Ubuntu16.04 LTS下apt安装WireShark
- html5跟随鼠标炫酷网站引导页动画特效
- iOS 10 都有什么改变?
- Ceph剖析:线程池实现
- 编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]
- CentOS 6.0修改ssh远程连接端口
- Puppet安装与配置简介(附视频教程)
- SQL Server 2008 设计与实现笔记(一)
- Dr.com校园网客户端故障解决方法
- java.util.Hashtable源码分析
- 抓取“矢量”的实时交通流量数据
- C#。总结
- overflow:hidden
- 3p
- Django之用户登录实例
- 无法获得数据库 'model' 上的排他锁 解决方法
- Vue router拦截 如果用户并未登录直接跳转到登录界面(最简单的cookie演示)
- 使用c#反射实现接口可视化调试页面
- crontab入门及进阶学习笔记
- SharePreference 注册 registerOnSharedPreferenceChangeListener 无法回调的问题
热门文章
- ubantu系统之 Ubuntu14.04安装Samba实现文件共享
- new String比字符串池浪费空间,为什么要用它?
- Tsunami: A Learned Multi-dimensional Index for Correlated Data and Skewed Workloads 论文解读(VLDB 2021)
- caioj 1000到1030都是[水题]
- 计算机网络 TCP 四次挥手过程和状态变迁
- python---使用pipreqs及遇到的问题
- Java实现单链表的合并(保证数据的有序性)
- rpm方式安装mysql
- 『现学现忘』Git基础 — 1、版本控制系统介绍
- docker容器编排原来这么丝滑~