0

目前正在为我的学位做一个最终的团队项目。

我的项目是创建一个由 Blynk 控制的 WiFi 遥控车。这篇 Instructable 文章作为它的基础:https ://www.instructables.com/Simplest-Wifi-Car-Using-ESP8266-Motorshield/

我最初确实想使用操纵杆,但现在即使在按照 Blynk 论坛中的建议将操纵杆的数据流设置为字符串之后,也使用按钮作为操纵杆。

代码编译并发送数据,正如我在 Arduino IDE 的串行监视器中观察到的那样,但它没有移动。电机工作正常并且接线正确。只是不知道此时该怎么办。我在下面包含了我的代码和串行监视器输出的屏幕截图。任何帮助将不胜感激。

#define BLYNK_TEMPLATE_ID     "TMPLW7mslBrQ"
#define BLYNK_DEVICE_NAME "ESP8266RCCar"
#define BLYNK_AUTH_TOKEN "FKQjxWPrdOG7olZEhDUJfUbjoxBmC9pZ"

#define BLYNK_FIRMWARE_VERSION        "0.1.0"

#define BLYNK_PRINT Serial
#define BLYNK_DEBUG
#include  <ESP8266WiFi.h>
#include  <BlynkSimpleEsp8266.h>

#define APP_DEBUG


#define USE_NODE_MCU_BOARD


char auth[] = "FKQjxWPrdOG7olZEhDUJfUbjoxBmC9pZ"; 

// Your WiFi credentials. 
// Set password to "" for open networks. 
char ssid[] = "VM1804219"; 
char pass[] = "bsvb8hkMxtfw"; 

int PWMA=5;//Right side 
int PWMB=4;//Left side 
int DA=0;//Right reverse 
int DB=2;//Left reverse 

void setup()
{
  Serial.begin(115200);
  
  pinMode(PWMA, OUTPUT); 
  pinMode(PWMB, OUTPUT); 
  pinMode(DA, OUTPUT); 
  pinMode(DB, OUTPUT); 
 
 Blynk.begin(auth, ssid, pass);
}

void loop() {
  Blynk.run();

}

  

// Handling Button data 
BLYNK_WRITE(V0)
{ 
 int button_LeftBackward = param.asInt(); 

 if(button_LeftBackward == 1) {         //Backward and Left     
     digitalWrite(PWMA, LOW); 
     digitalWrite(DA, LOW); 
     Serial.print("going backwards and left");
     
     digitalWrite(PWMB, HIGH); 
     digitalWrite(DB, HIGH); 
      Blynk.virtualWrite(V0,1);
 }
}

BLYNK_WRITE(V1)

{
 int button_Left = param.asInt();

 if(button_Left == 1){        //Left Turn 
     digitalWrite(PWMA, 450); 
     digitalWrite(DA, HIGH); 
     Serial.print ("Going left");
    
     digitalWrite(PWMB, 450); 
     digitalWrite(DB, LOW);
     Blynk.virtualWrite(V1,1);
 }
}


BLYNK_WRITE(V2)
{
 int button_ForwardLeft = param.asInt();
 if(button_ForwardLeft == 1){        //Forward and Left     
     digitalWrite(PWMA, LOW); 
     digitalWrite(DA, LOW); 
     Serial.print ("Going forwward and left");    
     digitalWrite(PWMB, HIGH); 
     digitalWrite(DB, LOW);
     Blynk.virtualWrite(V2,1) ;
 }     
}

BLYNK_WRITE(V3)
{
  int button_Backward = param.asInt();
  if(button_Backward == 1){        //Backward     
     digitalWrite(PWMA, HIGH); 
     digitalWrite(DA, HIGH); 
     
     digitalWrite(PWMB, HIGH); 
     digitalWrite(DB, HIGH);
     Blynk.virtualWrite(V3,1);
  }
}

BLYNK_WRITE(V4)
{
   int button_Stop = param.asInt();

   if(button_Stop == 1){        //Stop robot
     digitalWrite(PWMA, LOW);  //Turn off all motors
     digitalWrite(DA, LOW); 
     
     digitalWrite(PWMB, LOW); 
     digitalWrite(DB, LOW);
     Blynk.virtualWrite(V4,1) ;
   }
}

BLYNK_WRITE(V5)
{  
  int button_Forward = param.asInt();
  if(button_Forward == 1 ){        //Forward 
     digitalWrite(PWMA, HIGH); 
     digitalWrite(DA, LOW); 
    
     digitalWrite(PWMB, HIGH); 
     digitalWrite(DB, LOW); 
     Blynk.virtualWrite(V5,1);
 }
}

BLYNK_WRITE(V6)
{
 int button_BackwardRight = param.asInt();
 if(button_BackwardRight == 1){        //Backward and Right     
     digitalWrite(PWMA, HIGH); 
     digitalWrite(DA, HIGH); 
     
     digitalWrite(PWMB, LOW); 
     digitalWrite(DB, LOW); 
     Blynk.virtualWrite(V6,1);
 }
}

BLYNK_WRITE(V7)
{
 int button_Right = param.asInt();
 if(button_Right == 1){        //Right turn 
     digitalWrite(PWMA, 450); 
     digitalWrite(DA, LOW); 
     
     digitalWrite(PWMB, 450); 
     digitalWrite(DB, HIGH); 
     Blynk.virtualWrite(V7,1);
  }
}


BLYNK_WRITE(V8)
{  
 int button_ForwardRight = param.asInt();
 if(button_ForwardRight){        //Forward and Right 
     digitalWrite(PWMA, HIGH); 
     digitalWrite(DA, LOW); 
     
     digitalWrite(PWMB, LOW); 
     digitalWrite(DB, LOW);
     Blynk.virtualWrite(V8,1);
 } 
} 

此处输出的屏幕截图:1

4

0 回答 0