查看: 713|回复: 3
打印 上一主题 下一主题

wifi小车制作问题

[复制链接] qrcode

0

主题

95

帖子

22

积分

新手上路

Rank: 1

积分
22
楼主
发表于 2016-3-28 09:59 AM | 显示全部楼层
要求实现利用手机发送指令来控制小车运动,用的无线模块是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);
  }


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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