const int sw=12; const int led=13; boolean ledStatus=LOW; int val; void setup() { Serial.begin(9600); pinMode(led,OUTPUT); pinMode(sw,INPUT_PULLUP); } void loop() { val=digitalRead(sw); if(val==LOW) { ledStatus=!ledStatus; digitalWrite(led,ledStatus); } } ``` 按下去放開,並不會很穩定的切換狀態,請問是為什麼?怎麼修改? 二、按鈕彈跳問題(bounce)原來是機械式按鈕,會有彈跳問題 須加以修改,才能穩定的呈現按鈕功能 範例程式: 深入討論:[http://yhhuang1966.blogspot.tw/2016/09/arduino\_11.html](http://yhhuang1966.blogspot.tw/2016/09/arduino_11.html) Arduino IDE 有內建的 debounce code 的範本,可直接拿來修改使用 ![](http://maker.tn.edu.tw/uploads/tad_book3/image/2018-01-30_212119.png) 三、練習如何修改為目前常見手電筒的模式呢?按一下LED開,再按一下LED閃爍,再按一下LED關閉。
進階搜尋