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

2014-05-172.1万
AI 快速预览详细 收起
这个项目教程介绍了如何使用Arduino实现按钮控制LED开关。通过定义按钮和LED的引脚,读取按钮状态并切换LED状态,实现了按钮控制LED开关的功能。适合初学者和STEM教育场景,帮助用户轻松上手Arduino编程。


很多人问我这个怎么做,为了避免被人重复骚扰,只好发帖

  1. /*******    switch_led.ino    *******/
  2. #define BUTTON_PIN        6
  3. #define LED                13
  4. //
  5. boolean button_now_state = LOW;
  6. boolean button_old_state = LOW;
  7. boolean led_state = LOW;
  8. //
  9. void setup () {
  10.         pinMode (BUTTON_PIN, INPUT);
  11.         pinMode (LED, OUTPUT);
  12. }
  13. //
  14. void loop () {
  15.         button_now_state = digitalRead (BUTTON_PIN);        //read button state
  16.         if (button_old_state == LOW && button_now_state == HIGH) {        //if low -> high
  17.                 led_state = !led_state;                        //switch state: true <-> false
  18.                 digitalWrite (LED, led_state);
  19.         }
  20.         button_old_state = button_now_state;       //save button state
  21. }
  22. /*******    end of file    *******/
复制代码




发图一副,镇楼。


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







创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(9)
gray6666
gray6666
感谢分享
mmaer
mmaer
[code]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)) ;
}
}[/code]
lisper
lisper
作者
回复mmaer
重点是讲原理。。。
Youyou
Youyou
[code]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);
}
}[/code]
lisper
lisper
作者
回复Youyou
厉害~~~~
Youyou
Youyou
楼主需要对按键抖动做下处理,不然很容易误触发。:lol
lauren
lauren
哈哈,这个貌似很多小朋友有问。。。
Arduino如何按键,开关,按一下亮灯,再按一下灭掉。;P
在这里看到真相了哈哈。
微笑的rockets
微笑的rockets
敢不敢在工程师一点?
lisper
lisper
作者
回复微笑的rockets
还不够吗?下次努力。。。
YukTseng
YukTseng
学习学习~~~~:D
Holiday
Holiday
我觉得很多人是看了图就不想看帖子了,,,,你就不能放个好点的图?
比如这种
lisper
lisper
作者
回复Holiday
这个太随便了。。。
Jane
Jane
那就顶一下吧~
lisper
lisper
作者
回复Jane
饭啊。。
- 没有更多了 -