前言
生活中由于时间的影响相同道路不同时刻会有着不同车的流量,为了提高资源的利用,相同路段车流量小时如果交通灯时间等待过长,会造成当前时间段资源的浪费。如果该路段车流量较大而交通灯时间过短则会给予下一交通路段一定压力,严重时会导致交通混乱。为了防止此类情况的发生,设计一款智能交通信号灯以达到根据车流量的不同使得交通灯闪烁的时间不同来达到时空资源合理利用的目的。
一、设计任务
- 按键按下改变当前车流量。
- OLED屏幕显示当前车流量、红绿黄灯的工作周期。
- 红绿黄灯根据当前车流量常亮指定时间。
二、系统硬件设计
基于STM32智能交通灯的设计系统是典型的嵌入式技术应用于测控系统,以嵌入式为开发平台,系统以32位单片机STM32为主控制器对各传感器数据进行采集,经过分析后去控制各执行设备。
2.1 元器件选用
- 输入输出控制电路(按键、发光二极管)。
- STM32F103ZET6最小系统板1个。
- 3.6V电池3节。
- 电源管理模块1个。
- 稳压模块1个。
- 0.9寸OLED显示屏1个。
- 发光二极管3个。
- 按键3个。
- 导线若干根。
2.2 系统模型设计
模型无法实地检测车辆的数目故使用按键设置车流量的参数以达到模拟车流量的目的,同时,当前车流量会显示在OLED显示器上以便于观测。系统设置的算法根据当前车流量的不同进而控制信号灯的工作周期进行改变,以达到合理利用时空资源的目的。信号灯的工作周期也会实时显示在OLED显示器上。结构图如图所示。
2.3 硬件连接
按键连接STM32F103ZET6的PD2~PD7引脚,按键连接STM32的PE2、PE3、PE4引脚和GND,LED灯连接STM32的PF0、PF1、PF2引脚和GND,稳压连接单片机5V和GND引脚。
三、系统程序设计
程序流程
车流量设置三个阈值,分别是低流量、中流量和高流量,分别对应三组小灯不同的工作周期,系统通过按键改变车流量阈值并在OLED显示屏上显示。单片机接收到按键值与预设的系统值作比较,如果当前车流量达到中流量,则定时器启动中流量时间,此时点亮小灯,当定时器定时结束,切换到另一盏小灯继续工作以模拟红绿灯的工作原理,此时中流量小灯工作的时间显示在OLED显示器上。程序流程图如图所示。
总结
基于STM32智能交通灯是一个简单的stm32设计,交通灯的设计包含了GPIO的配置、OLED屏幕的使用、按键操作、中断的运用,适合stm32初学者在学习理论知识和例程之后对知识的融会贯通与应用。高度概括了学习stm32从点灯到点灯的理念(QvQ)。
注意:购买前请再三确认,商品一旦出售概不退货,如有疑问请转至 疑问帮助