简介
这是一款高集成、性能优良的二维码识别传感器,外形小巧,可以识别通用的一维码跟二维码,采用Gravity接口,接线更方便,传感器自带七彩指示灯,通过指示灯的颜色反馈传感器识别条码的状态。
工作电压3.3V/5V,通信方式兼容UART与I2C,适合Arduino、esp32、树莓派等更多主控板,让它开发起来更为简单,可用于自助售卖机、地铁闸机,门禁,收付款机等。
特性
- Gravity接线方式
- 3.3V/5V供电
- 支持I2C、UART通信方式
技术规格
- 工作供电:DC3.3V/5V
- 工作电流:<70mA
- 通信方式:I2C、UART
- 采图像素:640*480
- 光源:七彩指示/绿光闪烁提示识读成功
- 识读码制:1D:EAN13、EAN8、UPCA、UPCE0、UPCE1、Code128、Code39、Code93、 CodeBar、Interleaved 2 of 5
2D:QR code、Data Matrix、PDF417 - 识读景深:QR Code(25mm-150mm产品性能可能会因为条码质量和环境条件而受不同程度影响)
- 对比度:≥25%
- 识读角度:旋转 360°,偏转 55°,倾斜 55°
- 扫描角度:69°(水平),56°(垂直)
- 识读精度:≥5mil
- 工作温度:20°C ~60°C
- 存储温度:-40°C ~80°C
- 环境光照:0~100000Lux
- 相对湿度:5%到 95% (不凝结)
引脚示意图
标号 | 名称 | 功能描述 |
---|---|---|
1 | SDA/TX | I2C 通讯数据线/串口发送数据线 |
2 | SCL/RX | I2C 通讯时钟线/串口接受数据线 |
3 | GND | 电源负极 |
4 | VCC | 电源正极3.3/5V |
在Arduino UNO R3上使用教程
准备
- 硬件
Arduino UNO x1
Gravity:环形二维码扫描识别传感器 x1
- 软件
Arduino IDE,点击下载 Arduino IDE
UART示例代码
将转接板的拨码开关拨到UART再烧录代码。
/*!
*@file detect_uart.ino
*@brief 连续扫描二维码,并将二维码中的信息输出到串口
*@copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
*@licence The MIT License (MIT)
*@author [fengli](li.feng@dfrobot.com)
*@version V1.0
*@date 2021-6-29
*@get from https://www.dfrobot.com
*@https://github.com/DFRobot/DFRobot_GM60
*/
#include <DFRobot_GM60.h>
DFRobot_GM60_UART gm60;
/*Use software serial when using UNO or NANO*/
#if ((defined ARDUINO_AVR_UNO) || (defined ARDUINO_AVR_NANO))
#include <SoftwareSerial.h>
SoftwareSerial Serial1(2, 3); //RX, TX
#define FPSerial Serial1
#else
#define FPSerial Serial1
#endif
void setup(){
//使用firebeetle-ESP32 时需要见rx,tx映射到D2,D3
#if (defined ESP32)
Serial1.begin(9600, SERIAL_8N1, /*rx =*/D2, /*tx =*/D3);
#else
Serial1.begin(9600);
#endif
Serial.begin(115200);
//初始化芯片
gm60.begin(Serial1);
//恢复出厂设置
// gm60.reset();
/**
读出数据的编码方式
encode 编码方式
eGBK,//gbk编码
eUTF8,//utf8编码
*/
gm60.encode(/*encode = */gm60.eUTF8);
/*! 设置码配置,可以通过使用模块扫描二维码,更改芯片寄存器的值
on true(打开设置码)/false(关闭设置码)
content true(输出设置码内容)/false(不输出设置码内容)
*/
gm60.setupCode(/*on =*/true,/*content=*/true);
/**
设置二维码识别的种类设置
berCode:
eForbidAllBarcode, //禁止所有的二维码识别
eEnableAllBarcode, // 使能所有的二维码识别
eEnableDefaultcode, // 使能默认的二维码识别
*/
gm60.setIdentify(/*berCode = */gm60.eEnableAllBarcode);
Serial.println("开始识别");
}
void loop(){
delay(50);
//检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据
Serial.println(gm60.detection());
}
示例结果:检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据打印在串口上
I2C示例代码
将转接板的拨码开关拨到I2C再烧录代码。
/*!
*@file detect_i2c.ino
*@brief 连续扫描二维码,并将二维码中的信息输出到串口
*@copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
*@licence The MIT License (MIT)
*@author [fengli](li.feng@dfrobot.com)
*@version V1.0
*@date 2021-6-29
*@get from https://www.dfrobot.com
*@https://github.com/DFRobot/DFRobot_GM60
*/
#include <DFRobot_GM60.h>
/*!
* @brief Constructor
* @param pWire I2c controller
* @param addr I2C address(0x1A)
*/
DFRobot_GM60_IIC gm60;
void setup(){
// Serial1.begin(9600);
Serial.begin(115200);
//初始化芯片
gm60.begin();
//恢复出厂设置
gm60.reset();
/**
读出数据的编码方式
encode 编码方式
eGBK,//gbk编码
eUTF8,//utf8编码
*/
gm60.encode(gm60.eUTF8);
/*! 设置码配置,可以通过使用模块扫描二维码,更改芯片寄存器的值
on true(打开设置码)/false(关闭设置码)
content true(输出设置码内容)/false(不输出设置码内容)
*/
gm60.setupCode(/*on =*/true,/*content=*/true);
/**
设置二维码识别的种类设置
berCode:
eForbidAllBarcode, //禁止所有的二维码识别
eEnableAllBarcode, // 使能所有的二维码识别
eEnableDefaultcode, // 使能默认的二维码识别
*/
gm60.setIdentify(gm60.eEnableAllBarcode);
Serial.println("开始识别");
}
void loop(){
delay(50);
//检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据
Serial.println(gm60.detection());
}
示例结果:检测扫描到的二维码包含的数据,并以字符串的方式返回扫描到的数据打印在串口上
常见问题
还没有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们!
更多问题及有趣的应用,可以访问论坛进行查阅或发帖