项目需求
1. 红外传感器检测有人通过并计数;
2. 计数值显示在LCD1602
3. 允许通过时,LED1闪烁,蜂鸣器不响,继电器不闭合;
4. 不允许通过时,LED2闪烁,蜂鸣器响,继电器闭合;
5. 每次允许通过5个人,之后转为不允许通过,3秒后再转为允许通过
硬件清单
继电器(模拟匣机)
蜂鸣器
红外避障模块
LCD1602
stm32开发板(核心板即可)
ST-Link
硬件连线
STM32 | LCD1602 | 继电器 | 蜂鸣器 | 红外 |
GND | GND | |||
5V | VDD | |||
GND | V0 | |||
B1 | R5 | |||
B2 | RW | |||
B10 | E | |||
A0 | D0 | |||
A1 | D1 | |||
A2 | D2 | |||
A3 | D3 | |||
A4 | D4 | |||
A5 | D5 | |||
A6 | D6 | |||
A7 | D7 | |||
3.3 | BLA | VCC | VCC | VCC |
GND | BLK | GND | GND | GND |
B4 | OUT | |||
B5 | I/O | |||
B6 | IN |
项目框图
红外跟随避障模块
在智能车、机器人和自动化等领域避障技术是确保安全和高效运行的关键。红外避障模块作为一种常见的避障解决方案,因其非接触、响应速度快和抗干扰能力强等优点而备受青睐。
型号介绍
红外避障模块不断发射红外信号,当红外信号:
- 有反射回来,OUT 输出低电平,输出指示灯(绿灯)亮。
- 没反射回来,OUT 输出高电平,输出指示灯(绿灯)灭。
红外避障模块常见用途:
- 机器人避障
- 小车避障、跟随
- 流水线计数
- 黑白线循迹
工作参数及引脚介绍
红外避障模块工作参数:
- 工作电压:DC 3.3 ~ 5V
- 工作温度:-10°C ~ +50°C
- 检测角度:35°
- 检测距离:2 ~ 30 CM可调(不同厂家略有差异),距离越近性能越稳定。
模块中蓝色的电位器用于调节灵敏度,顺时针旋转,灵敏度变高,检测距离变长;逆时针越小,灵敏度变低,检测距离变短。
上电后电源指示灯(绿灯)亮。
当红外反射回来,OUT 输出低电平,输出指示灯(绿灯)亮。
红外避障模块工作原理
红外避障模块上的一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器(LM393)电路处理之后,信号输出接口输出低电平信号,同时绿色指示灯会亮起。
因为黑色能够吸收红外线(红外线不反射),而白色不行(红外线反射),所以除了避障外可用作黑白线循迹、光电开关等等。
通信示意图
实现目标:我们有一个三色 LED 灯,当模块面前出现障碍物时,红灯亮,绿灯灭;没有障碍物时,红灯灭,绿灯亮。
这个小案例的应用场景可以应用在工业自动化,当物体或人在禁止区域或危险区域时,红灯亮起以提醒离开此区域。
LCD显示模块
LCD1602( Liquid Crystal Display 1602),一种常见的字符型液晶显示模块。它能够显示16列2行,共32个字符字符,每个字符都由5x8像素点阵构成,是一种专门用来显示字母、数字、符号等的液晶显示模块。CD 具有体积小、功耗低、显示内容丰富等特点,这种显示模块广泛应用于嵌入式系统和电子项目中,为开发者提供了简单而有效的文本和数字显示。
型号介绍
LCD,液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。
有很多种型号的 LCD。
- 根据显示字符:1602(16列2行)、2004(20列4行)、12864(128列64行)。
- 根据屏幕颜色:蓝屏(白字)、黄绿屏(黑字/白字)、灰屏(黑字)。
- 根据工作电压:5V、3.3V。
以上三种分类结果,排列组合,就成为了我们在橙色软件上看到的,眼花缭乱的型号选择。
工作参数
- 工作电压:5V
- 工作电流:2.0mA
- 工作温度:-20°C ~ +70°C
- 设备寿命:>100,000小时
LCD602指令
LCD1602 的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
LCD1602 内部的控制器共有11条控制指令,如表所示:
指令1:清显示,指令码 01H,光标复位到地址 00H 位置。
指令2:光标复位,光标返回到地址00H。
指令3:I/D:光标和显示模式设置,光标移动方向,高电平右移,低电平左移;
S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。
D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示;
C:控制光标的开与关,高电平表示有光标,低电平表示无光标;
B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:S/C:高电平时移动显示的文字,低电平时移动光标;
R/L:高电平时右移,低电平时左移。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线;
N:低电平时为单行显示,高电平时双行显示;
F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址,BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
基本时序操作
LCD1602 的基本的操作分为读操作和写操作。
其中读操作可以分为读状态和读数据;写操作可以分为写指令和写数据。
读状态:输入 RS=0、RW=1、E=1;输出:D0~7 读出为状态字;
读数据:输入 RS=1、RW=1、E=1;输出:D0~7 读出为数据;
写指令:输入 RS=0、RW=0、E=上升沿;写入控制指令;
写数据:输入 RS=1、RW=0、E=上升沿;写入需要显示的字符。