教學影片的第二課是要製作一個70年代電中的太空船介面
這個程式在Arduino的官網中有一個StarterKit裡面就有程式和電路
https://www.arduino.cc/en/ArduinoStarterKit/Prj02
程式也不用再輸入了,只要執行Arduino程式後
點選那個往上的箭頭就是開啟舊檔,選擇10.StarterKit_BasicKit的P02—SpaceshipInterface開啟即可
官網中有詳細的接線圖
只是官網中的程式和Massimo Banzi先生影片中的程式剛好相反
影片中是按鈕前二個紅色LED閃爍,按下按鈕後亮綠色LED
而Starterkit網頁中的程式則是一開始亮綠色LED,按下按鈕後二個紅色LED閃爍
原因就是在程式中的IF敘述順序不同,可以和影片比對便知道當條件成立後執行的動作是不同的。
if
(switchstate == LOW) { //當條件成立(按鈕沒按下)
digitalWrite(3, HIGH); // turn the green LED on pin 3 on將位於PIN腳3的LED點亮
digitalWrite(4, LOW); // turn the
red LED on pin 4 off將位於PIN腳4的LED關閉
digitalWrite(5, LOW); // turn the
red LED on pin 5 off將位於PIN腳5的LED關閉
}
//
this else is part of the above if() statement.
//
if the switch is not LOW (the button is pressed)
//
turn off the green LED and blink alternatively the red LEDs
else { //否則(按鈕按下)
digitalWrite(3, LOW); // turn the
green LED on pin 3 off 將位於PIN腳3的LED關閉
digitalWrite(4, LOW); // turn the
red LED on pin 4 off 將位於PIN腳4的LED關閉
digitalWrite(5, HIGH); // turn the red LED on pin 5 on 將位於PIN腳5的LED點亮
// wait for a quarter second before changing the light
delay(250); //(延遲0.25秒)
digitalWrite(4, HIGH); // turn the red LED on pin 4 on 將位於PIN腳4的LED點亮
digitalWrite(5, LOW); // turn the red LED on pin 5 off 將位於PIN腳5的LED關閉
// wait for a quarter second before changing the light
delay(250);
}
這個程式和第一個程式的最大不同就是在增加了PIN腳2的輸入選項
//
declare the switch pin as an input
pinMode(2, INPUT);
和第一個閃爍LED程式只有輸出是不同的
另外開始使用了
if(){
...
}
eles{
...
}
的條件敘述語法來作判斷
另外在影片中的程式Massimo Banzi先生在程式的一開始就定義了
const int redLed1=5;
const int redLed2=4;
const int greenLed2=3;
所以程式中的
digitalWrite(4, LOW);
就可以寫成
digitalWrite(redLed2, LOW);
這樣的寫法增加了程式的可讀性,減少了程式變大時偵錯的困難
當然最後還是要放一張我做完成果的相片啦!
哈哈!沒錯,我多買了一塊麵包板,還把電池接上去用電池供電了。