与Arduino Serial进行通信

时间:2014-01-08 06:58:51

标签: serial-port arduino

我正尝试使用Serial:

通过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,最右边的LED将亮起,如果我发送1,中间的将会发出,如果我发送2最左边的将。但是,当我发送0,1或其他任何内容时,它会打印-1表示已触发默认开关。我该如何解决?

1 个答案:

答案 0 :(得分:4)

试试这个......

void loop(){
  if (Serial.available()) {
    char input = Serial.read();

    if(input == '0'){
       turnOn(8);
    }else if(input == '1'){
       turnOn(9);
    }else if(input == '2'){
       turnOn(10);
    }
  }
}

告诉我它是否有效然后我们可以继续:)