如何讓Uno讀取鍵盤輸入,改變Status LED的明暗並且回傳訊息給電腦呢?有三個方式:
1: Arduino 的 Serial monitor
2:puttty,,, 不知道怎麼用 telnet 連接到USB...
3:CU ,和putty有共同的問題,沒法exit,而且一次只讀一個字元
程式碼如下:
const unsigned int LED_PIN = 13;
const unsigned int BAUD_RATE = 9600;
void setup(){
pinMode(LED_PIN,OUTPUT);
Serial.begin(BAUD_RATE);
}
void loop(){
if (Serial.available()>0){
int command = Serial.read();
if (command == '1'){
digitalWrite(LED_PIN,HIGH);
Serial.println("LED on");
} else if (command == '2') {
digitalWrite(LED_PIN,LOW);
Serial.println("LED off");
} else {
Serial.print("Unknown command:");
Serial.println(command,HEX);
}
}
}
以上這段程式碼的意思就是 如果有data進來(Serial.available() > 0) ,就進入if 判斷式,如果是1,Status LED就亮;如果是2,Status LED就暗;如果都不是,就print "Unknown command:" ,同時在下一行把輸入的內容以16進位 print出來。
1: 打開Arduino 的 Tools -> Serial monitor來測試。輸入1,按send ,燈就亮了。輸入2 後面加中文字,燈還是會變暗,後面的中文字的code point就已16進位print出來。可能每個loop只能讀一個字元,才會有這樣的情況。
2:Putty就不多作介紹了。
3:cu ,這命令我是第一次用,網上的介紹不多。連接Uno的指令如下:
cu -l /dev/ttyACM0 ,和Putty一樣,沒法exit。只好kill掉了。
|