image.png
實(shí)際上一接線頓時(shí)就明白了践惑,這根本就是兩趟電路,一趟接的5V的電連接一個(gè)比較大的電阻嘶卧,另一個(gè)數(shù)字信號(hào)發(fā)出接上一個(gè)小電阻尔觉,通過大電阻的按鍵控制LED燈的開關(guān)。(當(dāng)然在板的內(nèi)部其實(shí)是有聯(lián)系的)
材料準(zhǔn)備
arduino 板1塊芥吟,按鍵開關(guān)1個(gè)侦铜,LED燈1個(gè),10KR電阻一個(gè)钟鸵,250R電阻一個(gè)钉稍,導(dǎo)線若干。
接線按上圖接線即可棺耍。
實(shí)際效果
代碼部分
const int buttonPin =2;//定義按鍵頻道
const int ledPin=13;//定義燈的頻道
int buttonState =0;//定義按鍵的狀態(tài)為0(關(guān))
void setup()
{
pinMode(ledPin,OUTPUT);//設(shè)置燈的信號(hào)和輸出模式
pinMode(buttonPin,INPUT); //設(shè)置按鍵的信號(hào)和輸出模式
}
void loop()
{
buttonState = digitalRead(buttonPin);//按鍵狀態(tài)等于數(shù)字信號(hào)讀取的2號(hào)信道的狀態(tài)贡未,當(dāng)然此刻是0或者說是LOW
if(buttonState == HIGH)
{
digitalWrite(ledPin,HIGH);//按下按鍵燈就亮
}
else
{
digitalWrite(ledPin,LOW);
}
}
實(shí)際效果
GIF.gif
修改電路圖用arduino板內(nèi)部的上拉電阻來控制燈的亮滅。
image.png
修改代碼
const int buttonPin =2;
const int ledPin=13;
int buttonState =0;
void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT_PULLUP);
}
void loop()
{
buttonState = digitalRead(buttonPin);
if(buttonState == HIGH)
{
digitalWrite(ledPin,HIGH);
}
else
{
digitalWrite(ledPin,LOW);
}
}
效果是一樣的不同的是LED燈是常亮的,按下按鍵會(huì)滅掉羞秤。
升級(jí)
按一下按鍵燈亮缸托,再按一下燈滅。
接線方式
與第一種一樣瘾蛋。
代碼部分
int buttonPin =2;
int ledPin=13;
boolean ledState = false;//定義燈的狀態(tài)為假
boolean buttonState =true;//定義按鍵的狀態(tài)為真
void setup()
{
pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT_PULLUP);
}
void loop()
{
while (digitalRead(buttonPin) == HIGH){//while循環(huán)如果按鍵頻道讀取為真時(shí)循環(huán)
if(ledState == true)//判斷燈的狀態(tài)為真時(shí)
{
digitalWrite(ledPin,LOW);//燈滅
ledState = !ledState;//更改燈的狀態(tài)俐镐,第一次變成假
}
else
{
digitalWrite(ledPin,HIGH);//燈亮
ledState = !ledState;//更改燈的狀態(tài),第一次變成假
}
delay(500);//延遲很重要哺哼,不然系統(tǒng)運(yùn)行速度過快按鍵可能失靈
}
}
運(yùn)行效果
GIF.gif