|
推大家落坑之:新手玩LED分享編07
==============================
因為這幾天工作太忙以至有所延誤,不好意思,而下一編亦用農歷年要做工人爸爸所以又要延誤一番了。
.
言歸正傳,上編講過了LED燈會每隔一秒便著和熄,大家都試過了嗎?今天會講講如何加一個開閉掣。
.
在Arduino的開關掣理念跟家中電燈的開關有點不同,家中的是把電線Cut斷再用開關撘通,但如果Arduino都用同一個方法,倒不如用電拖板的開關便算,而且你想想,如果我有3組燈在3個不同的Pin,今天我想按開關會三組燈都著晒,明天想改為只開二組,後天想改為一組,那要天天又剪線又駁線嗎?
.
所以Arduino改用程式碼去操控,如果程式偵測到開關掣通電,便比訊息Pin 1或Pin 2或者Pin 1,2,3同時著燈,那你每天只改一改少少程式碼便OK了,很方便吧.
.
先來一個懶人包吧,懶人們可以依照圖一連接LED和開閉掣,然後把下邊的Code上傳便立即可使用了。
.
.
附上接線圖
.
---------------程式碼如下------------
int ledPin = 13;
const int buttonPin = 2;
int buttonState = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH){
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
else{
digitalWrite(ledPin, LOW);
}
}
----------------------完----------------------
.
大家有留意到跟之前06編有什麼地方不同嗎?細心對比一下,你會發現多了:-
.
const int buttonPin = 2; <—這句意思是告訴底板現在有一個按鈕用了2號窿窿
.
int buttonState = 0; <— 比一個初始值佢,由0開始同埋0先代表熄燈
.
pinMode(buttonPin, INPUT); <— pinMode前一章講過了,係話比底板知,呢個窿窿係做輸出定輸入?
.
buttonState = digitalRead(buttonPin); <— 呢句係定義乜係buttonState? 原來ButtonState = 利用digitalRead (呢個指令係叫底板去讀一下而家個Pin咩情況) 去讀取 2 號窿窿嘅狀態
.
if (buttonState == HIGH){ <— 今次用了新野,就係 if …. else …. 即係如果 ButtonState == HIGH (==代表絕對等如) 便執行下邊間歇閃燈的動作,else 代表反之,便執行熄燈(用LOW去叫佢Cut電)的動作
.
好了,去到呢一編,大家可以把舊的模型,將3mm LED改做SMD貼片式LED,然後放入高達個頭裡邊,試下令佢眼仔會間歇閃燈吧,當係練習練習。
|
|