【交通灯扩展板】资料
资料下载链接
- 百度网盘资料:ttps://pan.baidu.com/s/1SDu0IlQGbO6XCU7iAtdnNA?pwd=LCKF 提取码: LCKF
- 开源工程:https://oshwhub.com/li-chuang-kai-fa-ban/tian-gang-xing-kuo-zhan-ban
一、原理图说明
1.原理图电路设计总览
原理图主要分为74HC595驱动数码管和驱动LED两部分。
- 该模块使用了4*5个74HC595芯片。
- 该模块使用了4*(38)个0603封装4.7K贴片电阻。
- 该模块使用了4*2个贴片数码管。(计时)
- 该模块使用了4*(8+3)个0603封装绿色贴片LED。(车流+红绿灯)
- 该模块使用了4*(7)个0402封装黄绿色贴片LED。(人流)
- 该模块使用了4*(1)个0603封装黄色贴片LED。(红绿灯)
- 该模块使用了4*(3)个0603封装红色色贴片LED。(红绿灯)
2. 数码管驱动电路
采用74hc595单独驱动数码管,常亮显示不闪烁,走线简洁,代码更简单。
3.车流/人流LED驱动电路
为防止LED损坏故加入限流电阻,一般芯片74hc595总驱动电流±75mA,io驱动电流20-35mA。也能有效保护75HC595芯片。
4.交通灯驱动电路
采用74hc595,引入了竖立焊接封装,让红绿灯能竖立起来。
二、PCB打板说明
1.实物展示
分为实际使用/拼板制板/拆分制板
2.PCB下单制板简述
考虑到不同用户的制板需求,整个工程分为拆分制板和拼接制板设计。
- 拆分制板-直角路灯4pcs/直路灯8pcs/主电路1pcs
- 拼接制板-交通灯扩展板(10*10cm 针对stm用户)
三、拼接使用说明
1.交通灯扩展模块组装说明
基础焊接不做说明,主要讲述一下竖立红绿灯电路板拼装事项。注意焊盘矩形对齐矩形,椭圆对准椭圆即可。
四、74HC595功能说明
1.芯片74hc595功能IO图
2.芯片74hc595驱动电路
3.芯片74hc595功能驱动图
4.芯片74hc595驱动代码
5.芯片74hc595在线PDF文档
五、数码管功能实现说明
1.数码管(共阳)内部结构
2.驱动数码管电路
3.数码管操作代码
采用共阳极数码管,显示的数字需取模后显示。
4.数码管在线PDF文档
5.数码管操作实现在线编程
六、红绿灯功能实现说明
1.驱动交通灯LED电路
2.红绿灯操作代码
红绿灯的显示控制需要按照走线定义,如以车参照红色:00101000(0x28)为拐角(车)红绿灯-红灯亮,直红绿灯-绿灯亮。即车禁止通行,人可以通行。
3.红绿灯操作实现在线编程
七、人流功能实现说明
1.驱动车流/人流LED电路
2.斑马线人流操作代码
人流穿行效果需要考虑LED排布顺序
c
//左下人行道滚动显示
void person_show_left_down(uint8_t right, uint8_t left)
{
hc595_buff[]=(((hc595_buff[]&0x1e)>>1) | ((hc595_buff[]&0xe0)<<1));
if(right<person_trng) hc595_buff[] |= 0x10;
if(left<person_trng) hc595_buff[] |= 0x20;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
- 常用流水灯效果移位(0x01<<1)
- person_trng 随机数占比(行人流入占比 40/255)
- n |= 0x01 常用流水灯引入一个点亮LED(引入人流)
3.人流操作实现在线编程
八、车流功能实现说明
1.驱动车流/人流LED电路
为防止LED损坏故加入限流电阻,一般芯片74hc595总驱动电流±75mA,io驱动电流20-35mA。也能有效保护75HC595芯片。
2.道路车流操作代码
车流穿行效果需要考虑LED排布顺序,目前分为两种效果 车流直行/车流转弯效果
c
//左下车流滚动显示
void car_show_left_down(uint8_t car)
{
hc595_buff[]=((hc595_buff[]&0x0f)>>1)&0x0f;
if(hc595_buff[] & 0x10) hc595_buff[] |= 0x08;
hc595_buff[]=((hc595_buff[]&0xf0)>>1)&0xf0;
if(car<car_trng) hc595_buff[] |= 0x80;
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 常用流水灯效果移位(0x01<<1)
- car_trng 随机数占比(车量流入占比 80/255)
- n |= 0x01 常用流水灯引入一个点亮LED(引入车流)
3.车流操作实现在线编程
九、综合功能实现说明
1.程序源代码设计说明
程序代码设计简单,注释清晰。
c
int main(void)
{
uint8_t i;
systick_config();
// led初始化
led_gpio_config();
////交通灯595初始化
hc595_gpio_config();
for(i=0;i<hc595_number;i++) hc595_buff[] = 0x00;
hc595_send_bytes(hc595_buff,hc595_number);
//秒钟RTC初始化
rtctime_init();
//随机数初始化
trng_configuration();
while(1)
{
//东西方向运行
north_south_run();
north_south_warn();
//南北方向运行
east_west_run();
east_west_warn();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27