目前正在为我的学位做一个最终的团队项目。
我的项目是创建一个由 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