接著 starter kit 教我們怎麼利用簡單的 switch bottom 當作控制 LED 閃光的開關鍵,英文名稱取的很炫,spaceship interface - 太空艙操作介面!
Step .1 準備材料:
Switch bottom x1
LDE 紅色 x2
LDE 綠色 x1
電阻 10k ohm x1
電阻 220 ohm x2
Step .2 接線圖:
Step .3 原理與解說:
解說一下這個接線設計的原理與 coding 語言,首先 Arduino 右手邊一排為數位輸入/輸出 pin (相關介紹可以看這篇),這個設計中的按鈕式 switch bottom ,按下會使 Pin 2 收到 5V(HIGH) 的訊號;反之沒按的話,這組線路沒導通 Pin 2 收到的就是 0V(LOW) 的訊號,搭配 Pin 2 收到的訊號不同,我們可以隨意控制 LED 閃光的時機。
這邊說明幾個重要的 coding 語法:
pinMode(3,OUTPUT),設定 Arduino 的第 3 個 pin 為輸出訊號源
pinMode(2,INPUT),設定 Arduino 的第 2 個 pin 為輸入訊號源
digitalRead(2),令 Arduino 讀取來自 Pin 2 的訊號,這個例子裡按鈕按下去會是 HIGH,沒按會是 LOW
digitalWrite(3,HIGH),令 Arduino 由 Pin 3 發送 HIGH 的訊號,也就是 5V
digitalWrite(4,LOW),令 Arduino 由 Pin 4 發送 HIGH 的訊號,也就是 0V
delay(250),暫停所有動作 250 毫秒,注意單位是毫秒,1000 毫秒 = 1秒
完整 sketch,也可以在 IDE 中的 starter kit 中找到:
int switchstate = 0;
void setup(){
// 宣告各 pin 為 out/pin
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(2,INPUT);
}
void loop(){
// 讀取 pin2 的狀態 (HIGH or LOW)
switchstate = digitalRead(2);
// 如果按鈕被下壓,讓紅色 LED 閃光
if (switchstate == LOW) { // 按鈕沒被下壓的時候
digitalWrite(3, HIGH); //亮綠燈
digitalWrite(4, LOW); //紅燈不亮
digitalWrite(5, LOW);
}
// 按鈕被下壓時
else {
digitalWrite(3, LOW); // 綠燈不亮
digitalWrite(4, LOW); // 兩顆紅燈交互閃光
digitalWrite(5, HIGH);
delay(250);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
delay(250);
}
}
影片
沒有留言:
張貼留言
Anything That's Worth Chatting