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

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

测试的二维码如下图

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

测试结果如下图

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

用Arduino玩GM65二维码扫描模块的更多相关文章

  1. iOS学习——iOS原生实现二维码扫描

    最近项目上需要开发扫描二维码进行签到的功能,主要用于开会签到的场景,所以为了避免作弊,我们再开发时只采用直接扫描的方式,并且要屏蔽从相册读取图片,此外还在二维码扫描成功签到时后台会自动上传用户的当前地 ...

  2. Google zxing实现二维码扫描完美解决方案

    最近因项目需求,需要在App中集成二维码扫描的功能.网上找了很多资料,最后决定使用Google的zxing来实现.实现的过程遇到了很多的坑,也是因为这些坑在网上没有具体的解决方案,今天就把我的实现过程 ...

  3. XAMARIN ANDROID 二维码扫描示例

    现在二维码的应用越来越普及,二维码扫描也成为手机应用程序的必备功能了.本文将基于 Xamarin.Android 平台使用 ZXing.Net.Mobile  做一个简单的 Android 条码扫描示 ...

  4. [Unity3D]自制UnityForAndroid二维码扫描插件

    一周左右终于将二维码生成和扫描功能给实现了,终于能舒缓一口气了,从一开始的疑惑为啥不同的扫码客户端为啥扫出来的效果不同?通用的扫描器扫出来就是一个下载APK,自制的扫描器扫出来是想要的有效信息,然后分 ...

  5. 有关iOS系统中调用相机设备实现二维码扫描功能的注意点(3/3)

    今天我们接着聊聊iOS系统实现二维码扫描的其他注意点. 大家还记得前面我们用到的输出数据的类对象吗?AVCaptureMetadataOutput,就是它!如果我们需要实现目前主流APP扫描二维码的功 ...

  6. Android仿微信二维码扫描

    转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...

  7. Android—ZXing二维码扫描遇到的问题

    最近工作中需要开发带有二维码扫描功能的软件(基于开源项目ZXing),遇到的问题记录一下,也希望给大家带来帮助. 1.首先因为扫描要开摄像机所以加权限是一定的,不然后面什么都不能进行 <uses ...

  8. Ios二维码扫描(系统自带的二维码扫描)

    Ios二维码扫描 这里给大家介绍的时如何使用系统自带的二维码扫描方法和一些简单的动画! 操作步骤: 1).首先你需要搭建UI界面如图:下图我用了俩个imageview和一个label 2).你需要在你 ...

  9. iOS 自带二维码扫描功能的实现

    自从iOS7以后中新增了二维码扫描功能.因此可以在不借助第三方类库的情况下简单的写出二维码的扫描功能: 原生的二维码扫描功能在AVFoundation框架下,所以在使用原生的二维码扫描功能时要先导入A ...

随机推荐

  1. 关于20组---三重奏的meet的评价

    meet这一软件是一款交友软件,新版本完善了以前版本的各种不足,而且能够通过手机号发验证码来创建新账户,功能多样,可以在星球.广场找到自己感兴趣的人,基本满足的交友需求. 但有一点不足之处,就是缺少创 ...

  2. MySQL---drop, delete, truncate的区别

    drop, delete, truncate的区别 删除内容 drop直接删除整个表, 包含表结构和数据; truncate删除表中数据, 表结构及其列, 约束, 索引等不变, 再插入时自增id又从1 ...

  3. Mybatis映射文件动态SQL语句-01

    因为在很多业务逻辑复杂的项目中,往往不是简单的sql语句就能查询出来自己想要的数据,所有mybatis引入了动态sql语句, UserMapper.xml <?xml version=" ...

  4. Java基础之浅谈集合

    Java基础知识.关于List.Set.Map接口的了解,以及ArrayList.LinkedList.HashSet.TreeSet.HashMap.TreeMap...

  5. Unity通过脚本创建Mesh(网格)

    ##1.创建一个带Mesh的物体 Unity中的网格作为组件不能脱离物体单独存在 新建脚本CreateMesh public class CreateMesh: MonoBehaviour { voi ...

  6. 缓存中间件-Redis(一)

    1.Redis介绍 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的 key-value 存储系统,是跨平台的非关系型数据库,Red ...

  7. hutool工具类常用API整理

    0.官网学习地址 https://www.hutool.cn/ 1.依赖 <dependency> <groupId>cn.hutool</groupId> < ...

  8. No value specified for 'Date' BeanUtils.copyProperties 日期为空 转型错误

    BEGIN; 最近在用spring data,使用的hibernate实现,然后用了一对多等关系配置,导致PO类转换JSON时会死循环,最后使用VO接受数据解决该问题.PO与VO相互转换我用的是org ...

  9. python学习-Day23

    目录 今日内容详细 logging模块(续集) 日志模块的主要组成部分 配置字典 配置字典在项目中的使用 第三方模块 如何利用工具下载第三方模块 查看当前解释器下载的第三方模块 下载第三方模块 直接使 ...

  10. 在jupyterlab中实现实时协同功能

    1 简介 当你在使用jupyter时,有没有想象过如果我们可以把正在编写代码的jupyter界面共享给其他人,使得别人可以在其他地方实时看到与你同步的jupyter界面,这样一来无论是与他人沟通代码逻 ...