Arduino 4WD RC Car

Project tutorial by Andriy Baranov

  • 11,857 views
  • 2 comments
  • 35 respects

Fidget Spinner RPM Counter

by Andriy Baranov

  • 36,541 views
  • 27 comments
  • 94 respects

Toolbox 2


Replicated projects 0

 Andriy Baranov hasn't replicated any projects yet.

Arduino MKR1000 Getting Started

by Dr. Charif Mahmoudi

  • 44,853 views
  • 51 comments
  • 91 respects

Arduino Mega Chess

Project showcase by Sergey_Urusov

  • 22,118 views
  • 48 comments
  • 111 respects

IoT Made Easy w/ UNO, ESP-01, ThingSpeak & MIT App Inventor

Project tutorial by MJRoBot

  • 16,198 views
  • 13 comments
  • 30 respects

  • From BT To WiFi: Creating WiFi Controlled Arduino Robot Car 9 months ago

    Connections between NodeMCU and L298N are described in #define rows of the code.
    Or wait for my next project.

  • From BT To WiFi: Creating WiFi Controlled Arduino Robot Car 9 months ago

    #define ENA 14 // Enable/speed motors Right GPIO14(D5)
    #define ENB 12 // Enable/speed motors Left GPIO12(D6)
    #define IN_1 15 // L298N in1 motors Right GPIO15(D8)
    #define IN_2 13 // L298N in2 motors Right GPIO13(D7)
    #define IN_3 2 // L298N in3 motors Left GPIO2(D4)
    #define IN_4 0 // L298N in4 motors Left GPIO0(D3)

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>

    String command; //String to store app command state.
    int speedCar = 800; // 400 - 1023.
    int speed_Coeff = 3;

    const char* ssid = "NodeMCU Car";
    ESP8266WebServer server(80);

    void setup() {

    pinMode(ENA, OUTPUT);
    pinMode(ENB, OUTPUT);

    pinMode(IN_1, OUTPUT);
    pinMode(IN_2, OUTPUT);
    pinMode(IN_3, OUTPUT);
    pinMode(IN_4, OUTPUT);

    Serial.begin(115200);

    // Connecting WiFi

    WiFi.mode(WIFI_AP);
    WiFi.softAP(ssid);

    IPAddress myIP = WiFi.softAPIP();
    Serial.print("AP IP address: ");
    Serial.println(myIP);

    // Starting WEB-server
    server.on ( "/", HTTP_handleRoot );
    server.onNotFound ( HTTP_handleRoot );
    server.begin();

    }

    void goAhead(){

      digitalWrite(IN_1, LOW);
      digitalWrite(IN_2, HIGH);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, LOW);
      digitalWrite(IN_4, HIGH);
      analogWrite(ENB, speedCar);
    

    }

    void goBack(){

      digitalWrite(IN_1, HIGH);
      digitalWrite(IN_2, LOW);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, HIGH);
      digitalWrite(IN_4, LOW);
      analogWrite(ENB, speedCar);
    

    }

    void goRight(){

      digitalWrite(IN_1, HIGH);
      digitalWrite(IN_2, LOW);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, LOW);
      digitalWrite(IN_4, HIGH);
      analogWrite(ENB, speedCar);
    

    }

    void goLeft(){

      digitalWrite(IN_1, LOW);
      digitalWrite(IN_2, HIGH);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, HIGH);
      digitalWrite(IN_4, LOW);
      analogWrite(ENB, speedCar);
    

    }

    void goAheadRight(){

      digitalWrite(IN_1, LOW);
      digitalWrite(IN_2, HIGH);
      analogWrite(ENA, speedCar/speed_Coeff);
    
      digitalWrite(IN_3, LOW);
      digitalWrite(IN_4, HIGH);
      analogWrite(ENB, speedCar);
    

    }

    void goAheadLeft(){

      digitalWrite(IN_1, LOW);
      digitalWrite(IN_2, HIGH);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, LOW);
      digitalWrite(IN_4, HIGH);
      analogWrite(ENB, speedCar/speed_Coeff);
    

    }

    void goBackRight(){

      digitalWrite(IN_1, HIGH);
      digitalWrite(IN_2, LOW);
      analogWrite(ENA, speedCar/speed_Coeff);
    
      digitalWrite(IN_3, HIGH);
      digitalWrite(IN_4, LOW);
      analogWrite(ENB, speedCar);
    

    }

    void goBackLeft(){

      digitalWrite(IN_1, HIGH);
      digitalWrite(IN_2, LOW);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, HIGH);
      digitalWrite(IN_4, LOW);
      analogWrite(ENB, speedCar/speed_Coeff);
    

    }

    void stopRobot(){

      digitalWrite(IN_1, LOW);
      digitalWrite(IN_2, LOW);
      analogWrite(ENA, speedCar);
    
      digitalWrite(IN_3, LOW);
      digitalWrite(IN_4, LOW);
      analogWrite(ENB, speedCar);
    

    }

    void loop() {
    server.handleClient();

      command = server.arg("State");
      if (command == "F") goAhead();
      else if (command == "B") goBack();
      else if (command == "L") goLeft();
      else if (command == "R") goRight();
      else if (command == "I") goAheadRight();
      else if (command == "G") goAheadLeft();
      else if (command == "J") goBackRight();
      else if (command == "H") goBackLeft();
      else if (command == "0") speedCar = 400;
      else if (command == "1") speedCar = 470;
      else if (command == "2") speedCar = 540;
      else if (command == "3") speedCar = 610;
      else if (command == "4") speedCar = 680;
      else if (command == "5") speedCar = 750;
      else if (command == "6") speedCar = 820;
      else if (command == "7") speedCar = 890;
      else if (command == "8") speedCar = 960;
      else if (command == "9") speedCar = 1023;
      else if (command == "S") stopRobot();
    

    }

    void HTTP_handleRoot(void) {

    if( server.hasArg("State") ){
    Serial.println(server.arg("State"));
    }
    server.send ( 200, "text/html", "" );
    delay(1);
    }

  • From BT To WiFi: Creating WiFi Controlled Arduino Robot Car 9 months ago

    Hi, thanks. This is the code for almost the same car (my next project), but with one L298N (NodeMCU + L298N)

Add projectSign up / Login