按一下灯亮,再按一下灯灭。。。
本帖最后由 lisper 于 2014-5-17 22:27 编辑很多人问我这个怎么做,为了避免被人重复骚扰,只好发帖
/******* switch_led.ino *******/
#define BUTTON_PIN 6
#define LED 13
//
boolean button_now_state = LOW;
boolean button_old_state = LOW;
boolean led_state = LOW;
//
void setup () {
pinMode (BUTTON_PIN, INPUT);
pinMode (LED, OUTPUT);
}
//
void loop () {
button_now_state = digitalRead (BUTTON_PIN); //read button state
if (button_old_state == LOW && button_now_state == HIGH) { //if low -> high
led_state = !led_state; //switch state: true <-> false
digitalWrite (LED, led_state);
}
button_old_state = button_now_state; //save button state
}
/******* end of file *******/
发图一副,镇楼。
那就顶一下吧~ Jane 发表于 2014-5-17 20:08
那就顶一下吧~
饭啊。。 我觉得很多人是看了图就不想看帖子了,,,,你就不能放个好点的图?
比如这种https://mc.dfrobot.com.cn/data/attachment/forum/201311/25/165042vit9cz7t80g8qhc9.jpg Holiday 发表于 2014-6-12 17:16
我觉得很多人是看了图就不想看帖子了,,,,你就不能放个好点的图?
比如这种 ...
这个太随便了。。。 学习学习~~~~:D 敢不敢在工程师一点?
哈哈,这个貌似很多小朋友有问。。。
Arduino如何按键,开关,按一下亮灯,再按一下灭掉。;P
在这里看到真相了哈哈。 Rockets 发表于 2014-6-25 10:21
敢不敢在工程师一点?
还不够吗?下次努力。。。 楼主需要对按键抖动做下处理,不然很容易误触发。:lol 本帖最后由 Youyou 于 2014-7-18 19:05 编辑
byte LED = 13;
byte BUTTON = 3;
void setup(void)
{
pinMode(LED,OUTPUT);
pinMode(BUTTON,INPUT_PULLUP);
digitalWrite(LED,LOW);
}
void loop(void)
{
static unsigned long timepoint = millis();
static byte count = 0;
if(millis()-timepoint > 10)
{
timepoint = millis();
if(digitalRead(BUTTON)) count = 0;
if( (count<100) && (++count==10) )
digitalWrite(LED,digitalRead(LED)^1);
}
}
Youyou 发表于 2014-7-18 19:03
厉害~~~~ int BUTTON = 6;
int LED = 13;
int state = HIGH;
long timepoint = 0;
void setup()
{
pinMode(BUTTON, INPUT);
pinMode(LED, OUTPUT);
}
void loop()
{
if ( digitalRead(BUTTON) == HIGH && millis() - timepoint > 200)
{
timepoint = millis();
digitalWrite(LED, state++ % 2) ;
// digitalWrite(LED, state = (state == LOW)) ;
}
}
mmaer 发表于 2016-8-30 16:36
重点是讲原理。。。 感谢分享
页:
[1]