目的:使用一個按鈕控制LED燈亮度
元件:
1.Arduino UNO
2.LED
3.電阻1k歐姆
/*
*按鈕控制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);
}
沒有留言:
張貼留言