发 帖  
原厂入驻New
wifi小车制作发送指令没有反应
83 WIFI TCP
分享
要求实现利用手机发送指令来控制小车运动,用的无线模块是ESP8266,将模块作为服务器,然后在手机上安装了一个网络调试助手连接,并发送指令。但是发送的指令只有“前进”是正确的,发送其他都没有反应,而且手机的TCP连接也经常显示断开。自己这方面不太懂,也找不到相应的资料,不知道什么原因,现在把代码贴出来,希望各位大神能给点帮助,我先在这里谢过了。
完整代码如下:
#include

SoftwareSerial WIFISerial(10, 11);// RX, TX
int IN1 = 6;
int IN2 = 7;
int IN3 = 8;
int IN4 = 9;
int ENA = 3;
int ENB = 5;
int lkf;

void setup()
{
   int i;
   for (i=6;i<=9;i++)
   pinMode(i,OUTPUT);
   for (i=6;i<=9;i++)
   digitalWrite(i,OUTPUT);
   pinMode(3,OUTPUT);
   pinMode(5,OUTPUT);


   Serial.begin(9600);
   lkf=0;
   pinMode(13, OUTPUT);
   WIFISerial.begin(115200);
   WIFISerial.println("AT+RST");
   delay(2000);
   WIFISerial.println("AT+CWMODE=2"); //ap+sta mode
   delay(2000);
   WIFISerial.println("AT+RST");
   delay(2000);
   WIFISerial.println("AT+CWSAP="SLH","11111111",11,0");
   delay(3000);
   WIFISerial.println("AT+CIPMUX=1");
   delay(2000);
   WIFISerial.println("AT+CIPSERVER=1,8080");
   delay(2000);
   }

void loop()
{
   if (WIFISerial.available())
   {
     lkf = WIFISerial.read();
      switch(lkf)
      {
    case \'A\':  //qianjin
      Move();
      lkf=0;  
      break;   
    case \'B\': //houtui
      Back();
      lkf=0;
      break;     
    case \'C\': //zuozhuan
      TurnLeft();
      lkf=0;
      break;
    case \'D\': //youzhuan
     TurnRight();
     lkf=0;
     break;
    case \'E\':
     stopMotor(true);
     delay(1000);
     stopMotor(false);
     lkf=0;
     break;  
      }
   }
   lkf=0;

}
void Move()
{
     digitalWrite(IN1,LOW);
    digitalWrite(IN2,HIGH);
    digitalWrite(IN3,LOW);
    digitalWrite(IN4,HIGH);
}
void Back()
{
    digitalWrite(IN1,HIGH);
    digitalWrite(IN2,LOW);
    digitalWrite(IN3,HIGH);
    digitalWrite(IN4,LOW);
}
void TurnLeft()//左转
{
   digitalWrite(IN1,HIGH);
   digitalWrite(IN2,HIGH);
   digitalWrite(IN3,LOW);
   digitalWrite(IN4,HIGH);  
}
void TurnRight()//右转
{
   digitalWrite(IN1,LOW);
   digitalWrite(IN2,HIGH);
   digitalWrite(IN3,HIGH);
   digitalWrite(IN4,HIGH);
}
void stopMotor(boolean r)//电机停转
{
   if (r)
   {
     analogWrite(ENA,0);
     analogWrite(ENB,0);
   }
   else
   {
     analogWrite(ENA,255);
     analogWrite(ENB,255);
   }
}
0
2020-4-1 05:05:58   评论 分享淘帖 邀请回答

相关问题

1个回答
云汉达人

只有“前进”是正确的,发送其他都没有反应
  可能是你的协议有问题,“前进”正确是只有一次可以,还是每次“前进”都是可以的?
  有可能执行一次后,wifi断了,或其他的指令没有被赋值。
  以下参考:
  http://blog.sina.com.cn/s/blog_6b8b295b01019aa6.html
  http://www.geekfans.com/article-4102-1.html
  http://blog.csdn.net/hnmsky/article/details/8517867
2020-4-1 10:04:58 评论

举报

只有小组成员才能发言,加入小组>>

244个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表