簡易交通燈控制是我們常做的一個控制實驗,本文試圖用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)
2018-2-20 05:31 上傳
點擊文件名下載附件
程序
|