Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2273|回復: 3
打印 上一主題 下一主題

按鈕程式問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2014-1-23 23:51:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 wayne831216 於 2014-1-23 23:53 編輯

小弟剛接處 Arduino 沒多久最近想寫一個紅綠燈的程式
功能想跟一般路口一樣
目前已完成"自動變號"跟閃黃燈"
可是還有一個功能目前還失敗
就是"手動的功能"
小弟想按一下按鈕
可以從路口一(紅)路口二(綠轉黃)在來路口一(紅轉綠)路口二(黃轉紅)

以此類推

已在網路及書籍找過一些資料
但還是失敗
求各位高手給我一些解答
謝謝:)

以下程式是手動功能的程式
int BUTTON_PIN = 7;
int LEDYellow1 = 8;
int LEDGreen1 = 9;
int LEDRed1 = 10;
int LEDYellow2 = 11;
int LEDGreen2 = 12;
int LEDRed2 = 13;
int BUTTON_STSTE;

void setup(){
   pinMode(LEDGreen1,OUTPUT);
   pinMode(LEDGreen2,OUTPUT);
   pinMode(LEDYellow1,OUTPUT);
   pinMode(LEDYellow2,OUTPUT);
   pinMode(LEDRed1,OUTPUT);
   pinMode(LEDRed2,OUTPUT);
   pinMode(BUTTON_PIN,INPUT);
}
void loop(){

    BUTTON_STSTE = digitalRead(BUTTON_PIN);

   if(BUTTON_STSTE == HIGH){

     digitalWrite(LEDRed2, HIGH);
     digitalWrite(LEDGreen1, HIGH);
      }
}
2#
發表於 2014-1-25 02:00:17 | 只看該作者
路口一(紅)路口二(綠轉黃)在來路口一(紅轉綠)路口二(黃轉紅)
這句話就是解答了

路口一(紅)路口二(綠轉黃)
digitalWrite(LEDRed1, HIGH);
digitalWrite(LEDGreen2, HIGH);
delay(2000);
digitalWrite(LEDGreen2, LOW);
digitalWrite(LEDYellow2 , HIGH);

在來路口一(紅轉綠)路口二(黃轉紅)
digitalWrite(LEDRed1, LOW);
digitalWrite(LEDGreen1, HIGH);
digitalWrite(LEDYellow2 , LOW);
digitalWrite(LEDRed2, HIGH);

兩段加起來
    BUTTON_STSTE = digitalRead(BUTTON_PIN);

   if(BUTTON_STSTE == HIGH){

digitalWrite(LEDRed1, HIGH);
digitalWrite(LEDGreen2, HIGH);
delay(2000);
digitalWrite(LEDGreen2, LOW);
digitalWrite(LEDYellow2 , HIGH);

digitalWrite(LEDRed1, LOW);
digitalWrite(LEDGreen1, HIGH);
digitalWrite(LEDYellow2 , LOW);
digitalWrite(LEDRed2, HIGH);
}

這不是書中會有的答案,而是你得看懂書寫的東西
自己去想出來的流程
就好像課本只會教公式
遇到題目如何解你還是要自己想
3#
發表於 2014-1-25 02:03:20 | 只看該作者
至於裡面的DELAY要加哪裡
要看你對紅綠燈的想法
每個地方的紅綠燈不一樣

有些綠燈直接迅速就紅燈
有些綠燈要頓一陣,黃燈在頓一陣子才變紅燈
有些是黃燈頓很久... 有些是紅燈無敵久(往墾丁路上有999秒的XDD)
....

總之這程式還有很大改進空間哩
4#
 樓主| 發表於 2014-1-28 16:07:25 | 只看該作者
謝謝大大的答覆 : )
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-9-30 17:35 , Processed in 0.175848 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表