https://www.youtube.com/watch?v=k2PIo8Eys4s

打開塵封已久的Starter Kit

按部就班開始我的第二個project

硬體部分

我完全照書上的指示做了,沒甚麼特別大的問題

比較需要注意的是LED燈的正負極不能接反,

還有麵包板的連線方向小心短路

lesson2

軟體部分

第一次在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燈就會像自己所寫的程式一樣亮起來啦~~

 

arrow
arrow
    全站熱搜

    R 發表在 痞客邦 留言(0) 人氣()