Arduino 太空船介面
https://www.youtube.com/watch?v=k2PIo8Eys4s
打開塵封已久的Starter Kit
按部就班開始我的第二個project
硬體部分
我完全照書上的指示做了,沒甚麼特別大的問題
比較需要注意的是LED燈的正負極不能接反,
還有麵包板的連線方向小心短路
軟體部分
第一次在Arduino 16.5上面寫程式
由於是邊看影片邊學
這個"按開關閃爍,關開關亮綠燈"的程式我是先照著影片上的指示打
寫程式呢,初學者如我總是會遇到的一個問題就是一堆bug
不過這麼簡單的一個project還無法克服那我連小學生都不如了
兩個蠻重要的小tip就是
一句話結束後永遠要記得打分號";"
"//"的後面可以寫筆記,像是
void setup() {
// put your setup code here, to run once:
提醒自己寫這串編碼的目的是啥
first step,但其實也不一定要做的事
const int redLed1=5;
const int redLed2=4;
const int greenLed=3;
const int switchPin=2;
主要是把連接到arduino上的號碼跟麵包板上的物品作名稱上連結
這樣打到最後自己比較不會混亂現在2到底指的是哪個LED燈
書上是沒有這個步驟啦,影響不大
second step
void setup() {
// put your setup code here, to run once:
pinMode(redLed1,OUTPUT);
pinMode(redLed2,OUTPUT);
pinMode(greenLed,OUTPUT);
pinMode(switchPin,INPUT);
}
寫的是整個起始的狀態
告訴arduino哪個孔是輸出和輸入
以這個例子來說
Switch Pin(開關)是輸入,給arduino訊號
然後arduinio按上船的電腦程式解讀訊號然後做出反應
反應給我們看的道的是輸出,也就是LED燈
third step
告訴板子要不停重複實行的迴路
也是整個重頭戲
先宣告開關的存在
如果(if)開關關閉(Low)
綠色燈亮(HIGH)
紅色1,2都關(LOW);
不然(else)=>開關關閉的相反也就是"開關打開"
綠燈暗,紅燈1亮,紅燈2暗
延遲250微秒後
綠燈繼續暗,紅燈1暗,紅燈2亮
這樣就可以製造出兩個紅燈輪流亮起的效果了!
void loop() {
// put your main code here, to run repeatedly:
int switchState;
switchState=digitalRead(switchPin);
if(switchState==LOW){
//開關off
digitalWrite(greenLed,HIGH);
digitalWrite(redLed1,LOW);
digitalWrite(redLed2,LOW);
}
else{
digitalWrite(redLed1,HIGH);
digitalWrite(redLed2,LOW);
digitalWrite(greenLed,LOW);
delay(250);
digitalWrite(redLed1,LOW);
digitalWrite(redLed2,HIGH);
delay(250);
}
}
打完程式後按視窗左上角的勾勾幫你檢查程式是否有bug
沒問題的話就可以接上傳輸線,按下勾勾旁邊向右的箭頭上傳到arduino上
可能會遇到的一個上傳失敗小問題是
avrdude: ser_open(): can't open device "\\.\COM1": 系統找不到指定的文件
這可能是你的 工具=>序列阜=>"COMX"接錯個了
換一個可能就可以了
然後如果一切順利
LED燈就會像自己所寫的程式一樣亮起來啦~~
查看原文 >>