| 人<----->晶片 Serial Monitor 與 Arduino 通訊 |
#define led 12 void setup(){ Serial.begin(115200); pinMode(led,OUTPUT); digitalWrite(led,LOW); } void loop(){ if(Serial.available()){ if(Serial.read()==49) digitalWrite(led,HIGH); else digitalWrite(led,LOW); delay(2000); } } ![]() ![]() //試試 Serial.read()==1 //試試 Serial.read()=='1' |
| Serial monitor 以ASCII code傳送資料 使用Serial.read();讀取序列埠視窗傳來的數字時 1.會回傳ASC II碼 2.將一個數字一個數字讀取,必須使用字串的方式存取傳來的數字 3.翻譯ASC II碼,C語言內有幾個重要的函式可以負責。
|
| 使用 Serial.parseInt()(Arduino.cc) Serial.parseFloat()(Arduino.cc) |
| void setup(){ Serial.begin(115200); Serial.setTimeout(10); // 設定為每10毫秒結束一次讀取(數字愈小愈快) } void loop(){ if(Serial.available()){ int x = Serial.parseInt(); Serial.println(x); } }
![]()
int x,y; void setup(){ Serial.begin(115200); Serial.setTimeout(10); // 設定為每10毫秒結束一次讀取(數字愈小愈快) } void loop(){ while(Serial.available()){ x = Serial.parseInt(); y = Serial.parseInt(); Serial.print(x); // 這邊的x就是我們輸入的值 Serial.print(" , "); Serial.println(y); //這邊的y就是回傳的中止碼0 } }
float x; int y; void setup(){ Serial.begin(115200); Serial.setTimeout(10); // 設定為每10毫秒結束一次讀取(數字愈小愈快) } void loop(){ while(Serial.available()){ x = Serial.parseFloat(); y = Serial.parseInt(); Serial.println(x*0.6+32); // 這邊的x就是我們輸入的值 } }
Servo servo; int x,y; void setup(){ Serial.begin(115200); Serial.setTimeout(10); // 設定為每10毫秒結束一次讀取(數字愈小愈快) servo.attach(9); } void loop(){ while(Serial.available()){ x = Serial.parseInt(); y = Serial.parseInt(); Serial.print(x); Serial.print(" , "); Serial.println(y); servo.write(x); delay(100); } } |