NodeMCU Motor Shield L293D for ESP12E + Blynk

Control DC Motor via WIFI using L293D Motor Shield Board for ESP8266 use the app Blynk

http://www.blynk.cc/

Link Sketch : https://github.com/makertut/NodeMCU-L298D

::::::::::: SUPPORT CHANNEL ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Please Donate To Help Me Afford New Equipment And Software To Make My Videos More : https://goo.gl/1m8Dg2

Don’t forget to subscribe!

, https://i.ytimg.com/vi/sEjhM3cMlhc/hqdefault.jpg

source

35 Comments

  1. OMFG FIIINNNAAALYYY.

    After 7 Hours of work and search i was nearly giving up. This tutorial not even gave me access to a Smartphone-control it even let me understand the shield. I wasnt able to let them run on my own. THANK YOU.

  2. hello. i am a newb. i need to know where and how to get the library/code to make this work. help me please

  3. Hello, I want to know what is the librairy for the code. I upload all the possible librairy but it doesn't work
    ty and have a good day or night

  4. are there any schematics or datasheet for the expansion module board ( L298) ? How do you know what GPIO control the motors?

  5. Potential malware on the qBqDBa link, lots of redirects. Poster please fix that link or remove it. Good video besides that. Thank you.

  6. #define BLYNK_PRINT Serial

    #include <ESP8266WiFi.h>

    #include <BlynkSimpleEsp8266.h>

    #define derechaMotorSpeed D5 //14

    #define derechaMotorDir D6 //12

    #define izquierdaMotorSpeed D7 //13

    #define izquierdaMotorDir D8 //15

    char outh[] = "copiar el token ";

    char ssid[] = "……….";

    char pass[] = "…….";

    int minRango = 312;

    int maxRango = 712;

    int minvelocidad = 450;

    int maxvelocidad = 1020;

    int novelocidad = 0;

    void moveControl(int x, int y)

    {

    if(y >= maxRango && x >= minRango && x<= maxRango)

    {

    digitalWrite(derechaMotorDir,HIGH);

    digitalWrite(izquierdaMotorDir,HIGH);

    analogWrite(derechaMotorSpeed, maxvelocidad);

    analogWrite(izquierdaMotorSpeed, maxvelocidad);

    }

    else if(x >= maxRango && y >= maxRango)

    {

    digitalWrite(derechaMotorDir, HIGH);

    digitalWrite(izquierdaMotorDir,HIGH);

    analogWrite(derechaMotorSpeed,minvelocidad);

    analogWrite(izquierdaMotorSpeed,maxvelocidad);

    }

    else if(x <= minRango && y >= maxRango)

    {

    digitalWrite(derechaMotorDir,HIGH);

    digitalWrite(izquierdaMotorDir,HIGH);

    analogWrite(derechaMotorSpeed,maxvelocidad);

    analogWrite(izquierdaMotorSpeed,minvelocidad);

    }

    else if(y < maxRango && y > minRango && x < maxRango && x > minRango)

    {

    analogWrite(derechaMotorSpeed,novelocidad);

    analogWrite(izquierdaMotorSpeed, novelocidad);

    }

    else if(y <= minRango && x >= minRango && x <= maxRango)

    {

    digitalWrite(derechaMotorDir,LOW);

    digitalWrite(izquierdaMotorDir,LOW);

    analogWrite(derechaMotorSpeed,maxvelocidad);

    analogWrite(izquierdaMotorSpeed,maxvelocidad);

    }

    else if(y <= minRango && x <= minRango)

    {

    digitalWrite(derechaMotorDir,LOW);

    digitalWrite(izquierdaMotorDir,LOW);

    analogWrite(derechaMotorSpeed,minvelocidad);

    analogWrite(izquierdaMotorSpeed,maxvelocidad);

    }

    else if(y <= minRango && x >= maxRango)

    {

    digitalWrite(derechaMotorDir,LOW);

    digitalWrite(izquierdaMotorDir,LOW);

    analogWrite(derechaMotorSpeed,maxvelocidad);

    analogWrite(izquierdaMotorSpeed,minvelocidad);

    }

    }

    void setup()

    {

    Serial.begin(9600);

    Blynk.begin(outh, ssid, pass);

    pinMode(derechaMotorSpeed, OUTPUT);

    pinMode(izquierdaMotorSpeed, OUTPUT);

    pinMode(derechaMotorDir, OUTPUT);

    pinMode(izquierdaMotorDir, OUTPUT);

    digitalWrite(derechaMotorSpeed, LOW);

    digitalWrite(izquierdaMotorSpeed, LOW);

    digitalWrite(derechaMotorDir, HIGH);

    digitalWrite(izquierdaMotorDir, HIGH);

    }

    void loop()

    {

    Blynk.run();

    }

    BLYNK_WRITE(V1)

    {

    int x = param[0].asInt();

    int y = param[1].asInt();

    moveControl(x,y);

    }

  7. #define BLYNK_PRINT Serial

    #include <ESP8266WiFi.h>

    #include <BlynkSimpleEsp8266.h>

    #define derechaMotorSpeed D5 //14

    #define derechaMotorDir D6 //12

    #define izquierdaMotorSpeed D7 //13

    #define izquierdaMotorDir D8 //15

    char outh[] = "copiar el token ";

    char ssid[] = "……….";

    char pass[] = "…….";

    int minRango = 312;

    int maxRango = 712;

    int minvelocidad = 450;

    int maxvelocidad = 1020;

    int novelocidad = 0;

    void moveControl(int x, int y)

    {

    if(y >= maxRango && x >= minRango && x<= maxRango)

    {

    digitalWrite(derechaMotorDir,HIGH);

    digitalWrite(izquierdaMotorDir,HIGH);

    analogWrite(derechaMotorSpeed, maxvelocidad);

    analogWrite(izquierdaMotorSpeed, maxvelocidad);

    }

    else if(x >= maxRango && y >= maxRango)

    {

    digitalWrite(derechaMotorDir, HIGH);

    digitalWrite(izquierdaMotorDir,HIGH);

    analogWrite(derechaMotorSpeed,minvelocidad);

    analogWrite(izquierdaMotorSpeed,maxvelocidad);

    }

    else if(x <= minRango && y >= maxRango)

    {

    digitalWrite(derechaMotorDir,HIGH);

    digitalWrite(izquierdaMotorDir,HIGH);

    analogWrite(derechaMotorSpeed,maxvelocidad);

    analogWrite(izquierdaMotorSpeed,minvelocidad);

    }

    else if(y < maxRango && y > minRango && x < maxRango && x > minRango)

    {

    analogWrite(derechaMotorSpeed,novelocidad);

    analogWrite(izquierdaMotorSpeed, novelocidad);

    }

    else if(y <= minRango && x >= minRango && x <= maxRango)

    {

    digitalWrite(derechaMotorDir,LOW);

    digitalWrite(izquierdaMotorDir,LOW);

    analogWrite(derechaMotorSpeed,maxvelocidad);

    analogWrite(izquierdaMotorSpeed,maxvelocidad);

    }

    else if(y <= minRango && x <= minRango)

    {

    digitalWrite(derechaMotorDir,LOW);

    digitalWrite(izquierdaMotorDir,LOW);

    analogWrite(derechaMotorSpeed,minvelocidad);

    analogWrite(izquierdaMotorSpeed,maxvelocidad);

    }

    else if(y <= minRango && x >= maxRango)

    {

    digitalWrite(derechaMotorDir,LOW);

    digitalWrite(izquierdaMotorDir,LOW);

    analogWrite(derechaMotorSpeed,maxvelocidad);

    analogWrite(izquierdaMotorSpeed,minvelocidad);

    }

    }

    void setup()

    {

    Serial.begin(9600);

    Blynk.begin(outh, ssid, pass);

    pinMode(derechaMotorSpeed, OUTPUT);

    pinMode(izquierdaMotorSpeed, OUTPUT);

    pinMode(derechaMotorDir, OUTPUT);

    pinMode(izquierdaMotorDir, OUTPUT);

    digitalWrite(derechaMotorSpeed, LOW);

    digitalWrite(izquierdaMotorSpeed, LOW);

    digitalWrite(derechaMotorDir, HIGH);

    digitalWrite(izquierdaMotorDir, HIGH);

    }

    void loop()

    {

    Blynk.run();

    }

    BLYNK_WRITE(V1)

    {

    int x = param[0].asInt();

    int y = param[1].asInt();

    moveControl(x,y);

    }

  8. Amigo, seguindo teus tutoriais, cheguei neste projeto muito bacana, que estou com um parecido mais enrosquei no scetch, percebo que o amigo é bom de coração. Gostaria se possível o Sr. enviar o sketh deste projeto no meu e-mail santosre04@yahoo.com.br, fico agradecido.

  9. #define BLYNK_PRINT Serial

    #include <ESP8266WiFi.h>

    #include <BlynkSimpleEsp8266.h>

    #define RightMotorSpeed 5

    #define RightMotorDir 0

    #define LeftMotorSpeed 4

    #define LeftMotorDir 2

    char outh[] = "………………";

    char ssid[] = "…………..";

    char pass[] = "……………";

    int minRange = 312;

    int maxRange = 712;

    int minSpeed = 450;

    int maxSpeed = 1020;

    int noSpeed = 0;

    void moveControl(int x, int y)

    {

    if(y >= maxRange && x >= minRange && x<= maxRange)

    {

    digitalWrite(RightMotorDir,HIGH);

    digitalWrite(LeftMotorDir,HIGH);

    analogWrite(RightMotorSpeed, maxSpeed);

    analogWrite(LeftMotorSpeed, maxSpeed);

    }

    else if(x >= maxRange && y >= maxRange)

    {

    digitalWrite(RightMotorDir, HIGH);

    digitalWrite(LeftMotorDir,HIGH);

    analogWrite(RightMotorSpeed,minSpeed);

    analogWrite(LeftMotorSpeed,maxSpeed):

    }

    else if(x <= minRange && y >= maxRange)

    {

    digitalWrite(RightMotorDir,HIGH);

    digitalWrite(LeftMotorDir,HIGH);

    analogWrite(RightMotorSpeed,maxSpeed);

    analogWrite(LeftMotorSpeed,minSpeed);

    }

    else if(y < maxRange && y > minRange && x < maxRange && x > minRange)

    {

    analogWrite(RightMotorSpeed,noSpeed);

    analogWrite(LeftMotorSpeed, noSpeed);

    }

    else if(y <= minRange && x >= minRange && x <= maxRange)

    {

    digitalWrite(RightMotorDir,LOW);

    digitalWrite(LeftMotorDir,LOW);

    analogWrite(RightMotorSpeed,maxSpeed);

    analogWrite(LeftMotorSpeed,maxSpeed);

    }

    else if(Y <= minRange && x <= minRange)

    {

    digitalWrite(RightMotorDir,LOW);

    digitalWrite(LeftMotorDir,LOW);

    analogWrite(RightMotorSpeed,minSpeed);

    analogWrite(LeftMotorSpeed,maxSpeed);

    }

    else if(y <= minRange && x >= maxRange)

    {

    digitalWrite(RightMotorDir,LOW);

    digitalWrite(LeftMotorDir,LOW);

    analogWrite(RightMotorSpeed,maxSpeed);

    analogWrite(LeftMotorSpeed,minSpeed):

    }

    }

    void setup()

    {

    Serial.begin(9600);

    Blynk.begin(outh, ssid, pass);

    pinMode(RightMotorSpeed, OUTPUT);

    pinMode(LeftMotorSpeed, OUTPUT);

    pinMode(RightMotorDir, OUTPUT);

    pinMode(LeftMotorDir, OUTPUT);

    digitalWrite(RightMotorSpeed, LOW);

    digitalWrite(LeftMotorSpeed, LOW);

    digitalWrite(RightMotorDir, HIGH);

    digitalWrite(LeftMotorDir, HIGH);

    }

    void loop()

    {

    Blynk.run();

    }

    BLYNK_WRITE(V1)

    {

    int x = param[0].asInt();

    int y = param[1].asInt();

    moveControl(x,y);

    }

  10. I am having difficulty getting to your sketch the URL is bad. I would really like to see it, thanks in advance

  11. The link to the code is to site no longer in use. The redirection doesn't work as the page (domain) is not found.

  12. I have a problem, the problem is that the phone won't connect with the robot and they said wasn't online yet while I do a perfect televerering. Can anybody answer me ?

  13. I was happy to make my car working yesterday using the almost the same setup of Maker Tutor including the sketch code (thanks Make Tutor). I added to the Sketch forward turn left and right and a "shortcut" on the Motor Shield board (vin and vm)(look closely at the image: img_2304). I used 1S battery (I burned three NodeMCU module boards due to inappropriated voltages!). I add some photos here: http://tomatofamily.net/personal/IMG_2300.jpg; http://tomatofamily.net/personal/IMG_2301.jpg; http://tomatofamily.net/personal/IMG_2302.jpg; http://tomatofamily.net/personal/IMG_2303.jpg; http://tomatofamily.net/personal/IMG_2304.jpg. The different colour wires soldered on the motors give proper directions, which I experimented before.

  14. Спасибо, за идею, класс! Это третий вариант который я пытался запустить. Бился, но скетчи не загружались, думал проблеммы с библиотеками. Оказалось что антивирус мне всё портил, отключил, прошилось! Но появитась вторая проблемма, 2 x шилда которые я заказал оказались бракованными (((( Жду новые.

  15. Actually you can use any motor shield for esp models and it's work just choose right female to male jumpier Wires

  16. класс. спасибо .завелось с первого раза .вы лучшие !!!!!

  17. I have one problem can you help me?
    When I upload sketch to nodeMCU board, arduino program repords error "lynkSimpleEsp8266.h: No such file or directory"

Leave a Reply

Your email address will not be published. Required fields are marked *