lisper 发表于 2014-5-17 18:46:31

按一下灯亮,再按一下灯灭。。。

本帖最后由 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:53

那就顶一下吧~

lisper 发表于 2014-5-17 20:33:21

Jane 发表于 2014-5-17 20:08
那就顶一下吧~

饭啊。。

Holiday 发表于 2014-6-12 17:16:20

我觉得很多人是看了图就不想看帖子了,,,,你就不能放个好点的图?
比如这种https://mc.dfrobot.com.cn/data/attachment/forum/201311/25/165042vit9cz7t80g8qhc9.jpg

lisper 发表于 2014-6-13 19:09:39

Holiday 发表于 2014-6-12 17:16
我觉得很多人是看了图就不想看帖子了,,,,你就不能放个好点的图?
比如这种 ...

这个太随便了。。。

YukTseng 发表于 2014-6-18 04:59:48

学习学习~~~~:D

Rockets 发表于 2014-6-25 10:21:52

敢不敢在工程师一点?

lauren 发表于 2014-6-25 21:38:01

哈哈,这个貌似很多小朋友有问。。。

Arduino如何按键,开关,按一下亮灯,再按一下灭掉。;P
在这里看到真相了哈哈。

lisper 发表于 2014-6-26 09:52:56

Rockets 发表于 2014-6-25 10:21
敢不敢在工程师一点?

还不够吗?下次努力。。。

Youyou 发表于 2014-7-18 18:49:25

楼主需要对按键抖动做下处理,不然很容易误触发。:lol

Youyou 发表于 2014-7-18 19:03:59

本帖最后由 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);
}
}

lisper 发表于 2014-9-2 22:10:36

Youyou 发表于 2014-7-18 19:03


厉害~~~~

mmaer 发表于 2016-8-30 16:36:27

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)) ;
}
}

lisper 发表于 2016-12-6 17:23:58

mmaer 发表于 2016-8-30 16:36


重点是讲原理。。。

gray6666 发表于 2017-3-27 14:33:00

感谢分享
页: [1]
查看完整版本: 按一下灯亮,再按一下灯灭。。。