上一篇介紹序列埠顯示LED閃爍的訊息,那可不可以反向,在序列埠上輸入指令讓LED燈明滅呢?答案是有的,本單元將介紹透過電腦上的序列埠監控視窗,傳遞電腦的’1’或’0’,控制Arduino板子上的13腳LED燈明滅。
實驗準備材料
- Arduino UNO開發板
設計邏輯想法
不使用Arduino範例”Blink”,由13腳的LED自行閃爍,要由自己在電腦上輸入指令至序列埠上後,來開關這LED的明滅,並在序列埠上告知LED燈已”ON”或”OFF”。
程式流程圖

程式設計
const byte LED = 13;
char val;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(LED, OUTPUT);
Serial.println("Welcome to Arduino");
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available()) { //查看序列埠是否有指令
val = Serial.read(); //將讀取到的指令,付與給val
if (val == '1') { //如果val的值為1
digitalWrite(LED, HIGH); //開啟LED
Serial.println("LED ON"); //序列埠列印出LED ON
} else if (val == '0') { //否則如果val的值為0
digitalWrite(LED, LOW); //關閉LED
Serial.println("LED OFF"); //序列埠列印出LED OFF
}
}
}
實物執行影片
結論
在這篇「從序列埠控制LED開關」的教學文章中,又進一步了解到Arduino的程式設計與創新,實現未來人工智能的創新產品上多一項功能,能與機器對話,讓它來執行交辦的指令。
此篇參考Arduino官網資料連結:
https://www.arduino.cc/reference/en/language/functions/communication/serial/available/
有主意,就動手~
