void loop(){myservo.write(90);if( Serial.available() > 0){if(Serial.read() == 'D'){back(8);turnL(2);}if(Serial.read() == 'R'){back(1);turnR(6);}if(Serial.read() == 'L'){back(1);turnL(6);}if(Serial.read() == 'A'){advance(1);}}}
1 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
void loop() { char c; myservo.write(90); if ( Serial.available() > 0 ) { c=Serial.read(); switch ( c ) { case 'D' : back(8); turnL(2); break ; case 'R' : back(1); turnR(6); break ; case 'L' : back(1); turnL(6); break ; case 'A' : advance(1); break ; } } } 或者: |
void loop() { char c; myservo.write(90); if ( Serial.available() > 0 ) { c=Serial.read(); if ( c == 'D' ) { back(8); turnL(2); } else if ( c == 'R' ) { back(1); turnR(6); } else if ( c == 'L' ) { back(1); turnL(6); } else if ( c == 'A' ) { advance(1); } } } |
原因:我估计Serial.read()不可以多次读取,前一次读取的如果不是D那么再读取就是下一个字符了,那么前一次读取的就不会被处理了
添加回答
举报
0/150
提交
取消