简易交通灯控制是我们常做的一个控制实验,本文试图用arduino uno实现该控制,控制方法是将简易交通灯控制分成6个程序段,每段用一个控制函数表示,在函数内分别设置各个交通灯的状态,在loop程序中循环执行各个函数,完成交通灯的控制。
简易交通灯控制 将简易交通灯控制分成6个程序段,每段用一个控制函数表示,在函数内分别设置各个交通灯的状态,在loop程序中循环执行各个函数,完成交通灯的控制。 - 简易交通灯控制程序清单
- //为各个输出端起别名
- int Led0 = 2; //Red1
- int Led1 = 3; //Green1
- int Led2 = 4; //Yellow1
- int Led3 = 5; //Red2
- int Led4 = 6; //Green2
- int Led5 = 7; //Yellow2
-
- void setup() {
- unsigned char i;
- for (i = 2; i < 8; i++)
- pinMode(i, OUTPUT); //循环设置Ledi为输出
- digitalWrite(i, LOW); //熄灭Ledi
- }
- void Styl1(void) {
- digitalWrite(Led5, LOW); // 熄灭LED5(Yellow2)
- digitalWrite(Led0, LOW); // 熄灭LED0(Red1)
- digitalWrite(Led1, HIGH); //点亮LED1(Green1)
- digitalWrite(Led3, HIGH); //点亮LED3(Red2)
- delay(50000); //延时50秒
- }
- void Styl2(void) {
- unsigned char i;
- for (i = 0; i < 6; i++) {
- digitalWrite(Led1, LOW); // 熄灭LED1(Green1)
- delay(500); //等待500毫秒
- digitalWrite(Led1, HIGH); //点亮LED1(Green1)
- delay(500); //等待500毫秒
- }
-
- }
- void Styl3(void) {
- digitalWrite(Led1, LOW); // 熄灭LED1(Green1)
- digitalWrite(Led2, HIGH); //点亮LED2(Yellow1)
- delay(5000); //延时5秒
- }
- void Styl4(void) {
- digitalWrite(Led2, LOW); // 熄灭LED2(Yellow1)
- digitalWrite(Led3, LOW); // 熄灭LED3(Red2)
- digitalWrite(Led0, HIGH); //点亮LED0(Red1)
- digitalWrite(Led4, HIGH); //点亮LED4(Green2)
- delay(50000); //延时50秒
- }
- void Styl5(void) {
- unsigned char j;
- for (j = 0; j < 6; j++) {
- digitalWrite(Led4, LOW); // 熄灭LED4(Green2)
- delay(500); //等待500毫秒
- digitalWrite(Led4, HIGH); //点亮LED4(Green2)
- delay(500); //等待500毫秒
- }
-
- }
- void Styl6(void) {
- digitalWrite(Led4, LOW); // 熄灭LED4(Green2)
- digitalWrite(Led5, HIGH); //点亮LED5(Yellow2)
- delay(5000); //延时5秒
- }
-
- void loop() {
- Styl1();
- Styl2();
- Styl3();
- Styl4();
- Styl5();
- Styl6();
- }
复制代码
以上程序仅供参考。
全部资料51hei下载地址:
简易交通灯控制xiao.zip
(24.73 KB, 下载次数: 31)
|