基于Arduino使用灰度传感器
产品用途
1.电度表脉冲数据采样 2.传真机碎纸机纸张检测 3.障碍检测 4.黑白线检测
(灰度传感器)
产品介绍
- 采用TCRT5000红外反射传感器
- 检测反射距离:1mm~25mm适用
- 工作电压:3.3-5V
- 输出形式:数字信号(0和1)
- 设有固定螺栓孔,方面安装
- 小板PCB尺寸:35mm*10mm
- 单重:4.5g
使用说明
TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为高电平,指示二极管被点亮。
接线方式
(灰度传感器 反面)
灰度传感器 <------> Arduino Nano VCC <------> 3.3V/5V GND <------> GND OUT <------> 8
程序测试——读取检测黑白线数值
编写打印串口程序,观察灰度传感器检测到黑线与白线时,串口打印数值为多少。
Mixly图形化编程程序
(串口打印程序)
串口监视器显示,灰度传感器检测到白线时,输出高电平,即串口显示数值1;检测到黑线时,输出低电平,串口显示数值0。
(串口监视器显示)
程序实现代码
- 读取检测黑白线值
- void setup(){
- pinMode(8, INPUT);
- Serial.begin(9600);
- }
- void loop(){
- Serial.println(digitalRead(8));
- }
复制代码
同理,灰度传感器也可检测障碍物,如果灰色传感器前方没有障碍物,输出低电平(0),检测到前方有障碍物,输出高电平(1)。
灰度传感器基础小案例
用灰度传感器进行计数,当有物品从灰度传感器上方快速划过,灰度传感器检测到,在LCD1602显示屏上显示数字,记录物品经过灰度传感器的次数。
接线方式
(LCD1602液晶显示屏)
灰度传感器 <------> Arduino Nano VCC <------> 3.3V GND <------> GND OUT <------> 8
LCD1602 <------> Arduino Nano GND <------> GND VCC <------> 5V SDA <------> A4 SCL <------> A5
Mixly图形化编程程序
对显示屏进行初始化,显示屏最初状态显示数值为0,设置一个item整数为0的变量,item就是次数。如果灰度传感器等于高时,说明检测到物品,item赋值为item+1,即每次检测到物品,item值都会在原有的值基础上加上一,添加一个延时模块,然后再LCD1602显示屏中显示会发生变化的item值。
(图形化程序)
程序实现代码
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- volatile int item;
- LiquidCrystal_I2C mylcd(0x27,16,2);
- void setup(){
- mylcd.init();
- mylcd.backlight();
- item = 0;
- mylcd.setCursor(1-1, 1-1);
- mylcd.print(0);
- pinMode(8, INPUT);
- }
- void loop(){
- if (digitalRead(8) == HIGH) {
- item = item + 1;
- delay(50);
- mylcd.setCursor(1-1, 1-1);
- mylcd.print(item);
- }
- }
复制代码 |