panda 发表于 2011-12-17 23:39:38

[胖熊笔记]小白的第二个程序,按键控制开关灯

本帖最后由 panda 于 2011-12-18 09:51 编辑

今天收到了买的元件立刻尝试做了用按键开关灯的实验。

    代码如下
   /*
Panda Learning Arduino
Exp:02
Date:2011-12-15
Program: Test the LED on UNO board.
*/

//define const
#define LED 13                                //setting the LED on the PIN 13
#define BUTTON 7                        //setting the Botton input from the PIN 7
#define SHORT 100                //setting the short delay is 100ms
#define LONG 200                        //setting the long delay is 200ms

//Define Variable
boolean ledStat = false;                                //save the led stat

//setup
void setup() {
        pinMode(LED,OUTPUT);       
        pinMode(BUTTON,INPUT);
}

//function: the LED flashing
void ledFlash() {
        digitalWrite(LED,HIGH);
        delay(LONG);
        digitalWrite(LED,LOW);
        delay(SHORT);
}

//function: the LED flashing return the button action
void ledChecking(boolean f) {
        switch (f) {
                case 0:
                        for(int i=0;i<=2;i++) ledFlash();// close LED
                        break;
                case 1:
                        for(int i=0;i<=3;i++) ledFlash();// open LED
                        break;       
        }
}

//main
void loop() {
        if(digitalRead(BUTTON)==HIGH) {
            delay(10);
          if(digitalRead(BUTTON) == LOW) {
                ledStat = (!ledStat);
                ledChecking(ledStat);
                digitalWrite(LED,ledStat);
            }
        }

}
一开始的时候始终不行,后来请教了叫兽,才知道电路接的有问题,我只接了从 5V ----button---- pin7, 这样按键下去 pin7 会有5v, 原先想的是不按就没有了。叫兽说这样板子会读不到pin7,然后就开始随便给值,所谓的抽风。 于是改为现在的接法, ok了。

程序内部用了下降沿触发。
另外 自己搞了个让led闪的函数,呵呵,开灯闪三下,灭灯闪两下。

http://player.youku.com/player.php/sid/XMzMzNTcxOTcy/v.swf

panda 发表于 2011-12-18 09:52:35

有个问题,感觉开灯的时候闪了4下再亮的,为啥呢?

弘毅 发表于 2011-12-18 19:44:29

{:soso_e142:}支持分享自己的学习过程和心得~

不外接led,只是板子上的13号口的led会闪4次吗?

panda 发表于 2011-12-18 19:59:29

呵呵,看了程序是自己写的问题
i=0; i<=3;i++
0,1,2,3 就是4下

panda 发表于 2011-12-18 20:00:53

灭灯其实是闪三下,因为第一下开始灯是亮着的,所以看上去是闪了两下。{:soso_e112:}
页: [1]
查看完整版本: [胖熊笔记]小白的第二个程序,按键控制开关灯