17119| 18
|
Arduino小白教程第二弹 -- 按钮随心控制LED |
本帖最后由 wl4585 于 2015-1-31 00:22 编辑 我把delay(3000)放到以下位子,我以为是按钮按钮——灯灭——3s后按钮按钮——灯亮,可是实际效果,我按钮按钮后没任何反应,必须要按住按钮3s以上放开——灯灭——按3s以上——灯灭,这是为什么?只有吧delay(3000)放到取反的后面是没问题的 void loop(){ button_state1 = digitalRead (buttonPin); //读取按扭当前的状态 //判断按钮当前状态是否为高,并且前一个状态是否为低,同时满足执行语句 if (button_state1 == 1 && button_state2 == 0) { led_state = !led_state; // 取反 digitalWrite (ledPin, led_state); // 控制LED } button_state2 = button_state1; //把当前状态赋给前一个状态 delay(3000); } |
本帖最后由 wl4585 于 2015-1-31 00:23 编辑 我把delay(3000)放到以下位子,我以为是按钮按钮——灯灭——3s后按钮按钮——灯亮,可是实际效果,我按钮按钮后没任何反应,必须要按住按钮3s以上放开——灯灭——按3s以上——灯灭,这是为什么?只有吧delay(3000)放到取反的后面是没问题的 void loop(){ button_state1 = digitalRead (buttonPin); //读取按扭当前的状态 //判断按钮当前状态是否为高,并且前一个状态是否为低,同时满足执行语句 if (button_state1 == 1 && button_state2 == 0) { led_state = !led_state; // 取反 digitalWrite (ledPin, led_state); // 控制LED } button_state2 = button_state1; //把当前状态赋给前一个状态 delay(3000); } |
請問button_state2的作用是什麼呢? 還有請問在何時button_state1的值是1,何時又會變回0? |
© 2013-2023 Comsenz Inc. Powered by Discuz! X3.4 Licensed