Код, который возвращает аналоговое чтение из arduino при вводе определенного ключа - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь создать код arduino, который отображает аналоговые значения выводов A0, A1 и A2, когда 1 проходит через последовательный монитор.Arduino должен прекратить передачу значений при нажатии чего-либо еще, скажем, 0. Он должен начаться снова при нажатии 1 и так далее.Мой код (ниже), кажется, не работает.Пожалуйста, помогите.

int oldv;
int newv;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available()>0){
    newv=(Serial.read());
    if(newv==1){
      //newv=1;
      Serial.print(analogRead(A0));
      Serial.print(",");
      Serial.print(analogRead(A1));
      Serial.print(",");
      Serial.print(analogRead(A2));
      Serial.println(",");
      oldv=1;}
    else{
       oldv=0;
    }
  }
   else{
    newv=oldv;
        if(newv==1){
          Serial.print(analogRead(A0));
          Serial.print(",");
          Serial.print(analogRead(A1));
          Serial.print(",");
          Serial.print(analogRead(A2));
          Serial.println(",");
          oldv=1;}
        else{
           oldv=0;
        }
    }
  }

1 Ответ

0 голосов
/ 27 июня 2019

Вы передаете текст через последовательный порт, поэтому вы должны проверить

if(newv=='1'){

Вам также следует учитывать, что могут появиться символы новой строки '\ r' или '\ n'.

Лучше явно указать «0» или «1» и прочитать, но игнорировать все остальное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...