2017年10月4日 星期三

Arduino 按鈕改變LED亮度練習

目的:使用一個按鈕控制LED燈亮度

元件:

1.Arduino UNO
2.LED
3.電阻1k歐姆
4.按鈕

線路圖


 /*
 *按鈕控制LED亮度
 */
#define LED 9
#define Button 10

int val=0;
int old_val=0;
int state=0;
int brightness=64;
unsigned long startTime=0;

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

void loop(){
   val=digitalRead(Button); //更新按鈕狀態
//按鈕剛按下時
  if((val==HIGH) && (old_val==LOW))
  {
    state=1-state;             //更改狀態(由OFF->ON)
    startTime=millis();    //儲存目前經過時間
    delay(10);
  }

//按鈕已按下時
if((val==HIGH) && (old_val==HIGH))
  {
     if(state==1&&(millis()-startTime)>500) //按鈕被按下超過500ms時
     {
    brightness++;
    delay(10);
    if(brightness>255)
    brightness=0;
      }
   }
old_val=val;  //儲存目前狀態

//當state為on時
 if(state==1)
analogWrite(LED,brightness);
else
analogWrite(LED,0);
}

沒有留言:

張貼留言

Arduino LCD1602練習筆記

LCD 1602顯示元件 目的 輸入字串顯示在LCD 元件 1.Arduino UNO 2.LCD1602+LCM1602IIC 線路圖 /*  * LCD練習  */ #include <LiquidCrystal_I2C.h> LiquidCryst...