本節為通過按鍵控制LED燈的亮滅,LED依然設置為輸出模式,二按鍵則就需要設置為輸入模式,為了增加抗干擾增強,將按鍵所對應的IO口設置為上拉輸入模式
代碼部分:
int LED=16;//LED對應着GPIO16
int KEY=5;//KEY對應值GPIO5
char flag=1;
bool temp=0;
void setup()
{
Serial.begin (9600);
pinMode(KEY,INPUT_PULLUP);//將GPIO16設置為上拉輸入模式
pinMode(LED,OUTPUT);
digitalWrite(LED,HIGH);//默認將LED拉高,也就是熄滅lED
}
void KEY_PROS()
{
if(digitalRead(KEY)==0&&flag==1)
{
delay(5);flag=0;//延時5ms,消除抖動造成的誤操作影響
if(digitalRead(KEY)==0)
{
temp=!temp;//啊啊啊,這個地方有坑呀,習慣C語言里面的"~"取反了,然后不行***********
}
}
else if(digitalRead(KEY)==1)
{
flag=1;
}
switch (temp)//
{
case 1:digitalWrite(LED,LOW);break;
case 0:digitalWrite(LED,HIGH);break;
}
}
void loop()
{
KEY_PROS();
Serial.println(temp);
}