键入特定键时返回从arduino读取的模拟量的代码

时间:2019-06-27 06:41:18

标签: arduino

我试图创建一个arduino代码,当通过串行监视器传递1时,该代码显示引脚A0,A1和A2的模拟读取值。按下其他任何东西(例如0)时,Arduino必须停止传输值。按下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 :(得分:0)

您通过串行传输文本,因此应检查

if(newv=='1'){

您还应该考虑可能会有换行符'\ r'或'\ n'。

更好地让您明确检查“ 0”或“ 1”并阅读,但忽略其余部分。