《Arduino入門》第三篇:用程式控制LED
在編寫Arduino程式之前,我們先利用Arduino Uno開發板,把LED點亮,練習一下接線。
LED燈(LED lamp)是指利用發光二極體(LED)作為光源的燈具,一般使用半導體LED製成。LED燈的壽命和發光效率可達白熾燈的幾倍。
而每種顏色所需的電壓都不太一樣:
紅色LED:2.1 - 2.6V
綠色LED:3.3 - 3.9V
藍色LED:3.2 - 4.0V
白色LED:3.1 - 4.0V
而Arduino Uno開發板上只提供5V或3.3V的電,所以基本上是過高了,所以為了避免LED燒掉,我們必須加上電阻。
但需要的電阻值是多少呢?很簡單,這可以透過「歐姆定律(Ohm's law)」算出來。
歐姆定律:
電路中流動的電流與施加的電壓成正比,與電路中的電阻成反比。
歐姆定律公式:
V = I R,電壓 = 電流x電阻
V = 以伏特表示的電壓
I = 以安培表示的電流
R = 以歐姆表示的電阻
要計算所需的電阻值,公式就變成:
R= V / I,電阻 = 電壓 / 電流
如果我們提供開發板上5V的電,LED的電壓我們以2V來算就好,多出來了3V,而電阻的作用就是把這3V給消除掉。
5mm的LED需要的電流大約是20ma,也就是0.02A,所以計算結果如下:
R = (5-2) / 0.02 = 150
答案出來了!我們用150歐姆的電阻就可以了。但一般Arduino套件中最小的電阻通常是220歐姆,基本上大一點也是OK的。
我們試著來接看看吧!
方法很簡單,準備好公對公的杜邦線,先把LED插到麵包板上,請注意,LED長腳是正極,短腳是負極,千萬別接錯了!傑森的習慣會把長腳折一下,變成像是梯型,這樣比較好插進麵包板,也可以避免接錯線。
有關麵包板的介紹,大家可以參考傑森的另一篇文章:《Arduino入門》番外篇:認識麵包板。
把開發板上的GND接到LED的負極,電阻不分正負極,所以只要其中一腳接到LED的正極,電阻另一腳接到開發板的5V。
如果這時你的Uno板已經接了USB線,這時你就會看到LED亮起來囉!
再來就要寫程式囉!還記得上一篇用到的Blink範例嗎?我們再打開它,點選主選單中的「檔案>範例>Basics>Blnik」。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
程式我們修改一下,把3個LED_BUILTIN都改成數字的8,也是我們用Pin 8來控制Led。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(8, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(8, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(8, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
接線我們也要修改一下,原本接在5V的線,也就是連結電阻和LED正極的那條線,改接到Uno板上的Pin 8。
點選左上角的「上傳(Upload)」按鈕,把改好的程式再上傳到開發板裡。
這時你就會發現LED燈開始閃爍了!嘿,是不是很簡單呢?
整個Arduino教學,傑森都會用這塊KEYES的Uno板來做示範,主要是品質很不錯、價格平實,紅色也搶眼,拍照好看^^