0
我想通過串口與我的Arduino通過USB端口進行通信溝通:與Arduino的串行
int previous;
int current = 0;
void turnOn(int pinNumber){
previous = current;
current = pinNumber;
if(previous!=0){
digitalWrite(previous, LOW);
digitalWrite(current, HIGH);
}else{
digitalWrite(current, HIGH);
}
}
void setup(){
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
Serial.write(1);
}
void loop(){
delay(1);
if(Serial.available()>0){
switch(Serial.read()){
case 0:
turnOn(8);
break;
case 1:
turnOn(9);
break;
case 2:
turnOn(10);
break;
default:
Serial.println(Serial.read());
}
}
}
我想這樣,如果我發送一個0最右邊的指示燈會亮起,如果我送1,中間一個會,如果我發送一個2最左邊的意志。但是,當我發送0,1或其他任何內容時,它會打印-1表示默認開關已被觸發。我如何解決它?
由於它的工作! –
您的代碼無法工作的原因是因爲您比較的數字在ASCII表中並不是真正的數字。所以你應該把它們放在引號中,以表示你想直接比較字符。如果你想比較數字,那麼你應該找到數字48,49,50,它們是ASCII表中的'0','1','2'。 –
哦,我明白了。非常感謝! –