这段程序只有接收到D才运动,其他没反应,是哪里错了,求指教!

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

猛跑小猪
浏览 116回答 1
1回答

慕哥9229398

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那么再读取就是下一个字符了,那么前一次读取的就不会被处理了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
Python