简体   繁体   中英

Communicating with Arduino Serial

I am trying to communicate with my Arduino over the USB port by using Serial:

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());
      }
  }  
}

I am trying so that if I send a 0 the rightmost LED will light up, if I send 1, the middle one will and if I send a 2 the leftmost will. However when I send 0,1 or anything else it prints a -1 meaning the default switch has been triggered. How do I fix it?

Try this...

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);
    }
  }
}

Tell me if it works or not then we can proceed :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM