Hardware :- Nodemcu v3
L298N Motor Driver
12V DC motor
Water pump
So I connected NodeMcu with blynk. I want to control my motors in forward and backward direction. I’ve set up Virtual Pins as V0 for forward and V1 for backward. But for some reason it only works in forward direction. Here’s the screenshot of blynk app adn the code i used.
#define BLYNK_PRINT Serial
#define ENB D3
#define MOTORB_1 D4
#define MOTORB_2 D5
#define MOTORA_1 D7
#define MOTORA_2 D6
#define ENA D8
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "FCBsrr5J4HDrAyOwScjR-gV7_iI1nw_g";
char ssid[] = "sincerite";
char pass[] = "Hirachand@123456";
void setup()
{
pinMode(ENA, OUTPUT);
pinMode(MOTORA_1, OUTPUT);
pinMode(MOTORA_2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(MOTORB_1, OUTPUT);
pinMode(MOTORB_2, OUTPUT);
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
BLYNK_WRITE(V0) {
int button = param.asInt();
if (button == 1) {
Serial.println("Moving forward");
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HIGH);
digitalWrite(MOTORA_1,HIGH);
digitalWrite(MOTORA_2,LOW);
digitalWrite(MOTORB_1,LOW);
digitalWrite(MOTORB_2,HIGH); }
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(MOTORA_1,LOW);
digitalWrite(MOTORA_2,LOW);
digitalWrite(MOTORB_1,LOW);
digitalWrite(MOTORB_2,LOW); }
}
BLYNK_WRITE(V1) {
int button = param.asInt();
if (button == 1) {
Serial.println("Moving backward");
digitalWrite(ENA,HIGH);
digitalWrite(ENB,HIGH);
digitalWrite(MOTORA_1,LOW);
digitalWrite(MOTORA_2,HIGH);
digitalWrite(MOTORB_1,HIGH);
digitalWrite(MOTORB_2,LOW); }
else {
Serial.println("Stop");
digitalWrite(ENA,LOW);
digitalWrite(ENB,LOW);
digitalWrite(MOTORA_1,LOW);
digitalWrite(MOTORA_2,LOW);
digitalWrite(MOTORB_1,LOW);
digitalWrite(MOTORB_2,LOW); }
}