2020/01/06 星期一 作者:Astilbe
問(wèn)題:如何利用Stduino通過(guò)按鍵控制LED燈亮滅。
我們已經(jīng)學(xué)習(xí)過(guò)怎么點(diǎn)亮一顆LED燈,那么怎么用按鍵來(lái)控制它亮和滅呢? 簡(jiǎn)化一下我們需要達(dá)到的目標(biāo): 即按鍵按下LED燈亮,再按一次,LED燈滅。 那么只要讓處理器知道按鍵狀態(tài),再調(diào)整LED燈的引腳輸出電平(LOW還是HIGH)即可。 話不多說(shuō): int Button = 9;//設(shè)置按鍵為數(shù)字引腳9 int LED =13;//設(shè)置LED燈為數(shù)字引腳13 int Button_State=0; void setup() { // put your setup code here, to run once: pinMode(Button,INPUT);//數(shù)字輸入初始化,不拉高,得加電阻 pinMode(LED,OUTPUT);//數(shù)字輸出初始化 }
void loop() { // put your main code here, to run repeatedly: Button_State = digitalRead(Button) ;//讀取當(dāng)前按鍵狀況 if(Button_State){ digitalWrite(LED,HIGH); }else{ digitalWrite(LED,LOW); } } 一般按鍵按下時(shí),往往會(huì)出現(xiàn)所按的按鍵在閉合和斷開(kāi)位置之間跳幾下,才穩(wěn)定在閉合狀態(tài)——這就是按鍵抖動(dòng)。這可能會(huì)導(dǎo)致按下或松開(kāi)時(shí)電路不正常工作。 據(jù)此,在按下按鍵時(shí),延時(shí)10MS,就可消除抖動(dòng)。抖動(dòng)持續(xù)時(shí)間不一,一般不會(huì)大于10MS。在loop()中第一行加入 delay(10); 即可。
|