我试图创建一个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;
}
}
}
答案 0 :(得分:0)
您通过串行传输文本,因此应检查
if(newv=='1'){
您还应该考虑可能会有换行符'\ r'或'\ n'。
更好地让您明确检查“ 0”或“ 1”并阅读,但忽略其余部分。