Robofun 機器人論壇
標題:
請問Aruduino用電腦輸入並顯示的問題
[打印本頁]
作者:
pipi74319
時間:
2014-4-25 08:55
標題:
請問Aruduino用電腦輸入並顯示的問題
各位前輩好小弟最近剛開始接觸
買了一本入門書來學習
其中有兩個習題
1.一顆led,電腦鍵盤輸入0>led關, 輸入1>led開 , 輸入2>led快閃 , 輸入3>led慢閃.
2.同上,加上顯示提示訊息.(就是Serial Monitor要顯示提示)
目前小弟寫了一個可以達成1的程式如下:
int led=13,Key;
void setup()
{
Serial.begin(9600),pinMode(13,OUTPUT);
}
void loop()
{
if (Serial.available()>0)
Key=Serial.read(),Key=Key-'0';
if (Key==0)
{
digitalWrite(led,LOW);
}
else if (Key==1)
{
digitalWrite(led,HIGH);
}
else if (Key==2)
{
digitalWrite(led,HIGH),delay(100);
digitalWrite(led,LOW),delay(100);
}
else if (Key==3)
{
digitalWrite(led,HIGH),delay(1000);
digitalWrite(led,LOW),delay(1000);
}
}
但是小弟在第二題遇到問題
如果把Serial.println()插入 會有重複不斷顯示的情況
沒辦法只顯示一次 因為它是loop
請問各位前輩我該怎麼寫程式才能解決第2題的要求呢?
謝謝各位
作者:
sinyotsai
時間:
2014-5-4 04:38
測試過了 都有達到您的要求囉 :)
Serial也只會顯示一次
void setup() {
Serial.begin(9600);
pinMode(13,OUTPUT);
}
char SerialValue=' ';
void loop(){
if(Serial.available()){
SerialValue=Serial.read();
Serial.print("Value: ");
Serial.println(SerialValue);
}
if(SerialValue=='1'){
digitalWrite(13,LOW);
}
else if(SerialValue=='2'){
digitalWrite(13,HIGH);
}
else if(SerialValue=='3'){
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
}
else if(SerialValue=='4'){
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
}
作者:
pipi74319
時間:
2014-5-5 09:38
感謝S大 終於解決了 謝謝~
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2