|
- const int buttonPin = 2; // 按鈕的pin
- const int ledPin = 13; // LED的pin
- // variables will change:
- int buttonState = 0; // 設一個變數來存放按鈕的狀況:通電時為1,不通電時為0
- void setup() {
- // LED的pin設為output
- pinMode(ledPin, OUTPUT);
- // 按鈕的pin設為input
- pinMode(buttonPin, INPUT);
- }
- void loop(){
- // 反覆偵測第二個pin接受到的值,並指定給buttonState
- buttonState = digitalRead(buttonPin);
- // 反覆偵測按鈕狀態
- // 如果被按下,則會收到HIGH,HIGH代表1,LOW代表0
- if (buttonState == HIGH) {
- // turn LED on:
- digitalWrite(ledPin, HIGH);
- }
- else {
- // turn LED off:
- digitalWrite(ledPin, LOW);
- }
- }
複製代碼
這段示範碼是當按下按鈕時,燈會亮,當放開按鈕時,燈會暗
但是您的需求是按一下,燈一直亮,再按一下,燈一直暗
所以後面IF的地方要做修改
可以改成
buttonState改成boolean函數,要嘛0(false),要嘛1(true)
boolean ledState = 0; //怕您看不懂,我把它改成ledState,代表小弟希望燈的狀態為0或1
後面的程式碼就變成
//一接收到按下按鈕,就改變ledState
if (digitalRead(2) == HIGH){
ledState = ledState + 1; //每次pin 2 收到GIGH,我的ledState就加1,因為是boolean,所以不是0就是1
digitalWrite(ledPin,ledState); //按一下,就改一次ledState,然後13pin就送出0或1
}
這樣可以嗎? |
|