In this project, we are going to control the DC motor with the help of L293D motor driver connected to NodeMCU that has ESP8266 microcontroller.

In this project, we are going to control the DC motor with the help of L293D motor driver connected to NodeMCU that has ESP8266 microcontroller.


DC motor

Motor is a device that converts electrical energy into mechanical energy (rotation). The DC motor operates in dc voltage and current, and it does not have any specific positive and negative terminal. This means that the motor rotates in clockwise or anticlockwise direction based on the connection provided at the motor terminal. This direction can be controlled using L293D IC.


L293D is an IC that is used to control the motor direction. It acts as a bridge between a microcontroller and a motor. This IC has 8 pins in total and can control 2 motors simultaneously.

Pin Configuration of L293D

1. 4-Input pins: These pins are connected to the microcontroller circuits.

2. 4-Output pins: These pins provide input to the motor and controls its direction.

3. 2-Enable pins: This pin is used to enable input to the motors.

4. 4-Ground pins: This pin is connected to the ground of the circuit (0v).

5. Vcc pin: This pin is connected to +5v.

6. Vs pin: This pin is connected to the voltage pin to run motor (4.5v-36v).


A NodeMCU is a development board with an inbuilt Wi-Fi module in it. It is a basic and cost-efficient board to carry out projects using the internet of things. The NodeMCU has an ESP8266 microcontroller unit in it. The operation of this microcontroller is controlled with the programs used in Arduino thus making it very easier to use and also to learn basic IoT projects. This board has an inbuilt 2.4GHz antenna to receive Wi-Fi functions. This board has a memory of 4mb to store the data acting as ROM and 64Kb of RAM. This board operates at 3.3 volts and it is mandatory to operate the board at this voltage and not more than that as increasing the input voltage in this board may damage few GPIO pins (general input-output pins).

Pin Configuration

1. Vin: 3.3V can be provided at this pin as the supply to power on the board. This pin is used to power on the entire microcontroller.

2. GND: This pin is connected to the negative terminal of the battery.

3. RST: This pin resets the microcontroller and clears the memory.

4. EN: This pin is used to enable the operation of microcontroller.

5. 3V3: This pin provides 3V output and this can be used to power up some sensor units connected to the microcontroller.

6. SD1, CMD, SD0, CLK: These pins are used in SPI communication, that is it is used to transfer the signals between two microcontrollers, Rx and Tx modules with asynchronous transmission.

7. SD3, SD2: These pins can also function as asynchronous transmission or as GPIO pins.

8. RSV: These are two reserved pins used by the microcontroller and cannot be used in connecting any external circuits to it.

9. A0: This microcontroller only has one analog pin for Analog communication. This A0 pin is used in analog signal communication.

10. GPIO 1 – 16: This controller board has 16 input-output pins which be used as input or output pin based on the programming.

11. GP10 1, 3, 13, 15: This microcontroller has 2 UART communication pins, RX0, TX0 (GPIO 1 & GPIO 3) and RX1, TX1 (GPIO 13, GPIO15).



int IN1 = D1;
int IN2 = D2;
void setup() {
  pinMode(IN1,OUTPUT);     // SETS IN1 AS OUTPUT
  pinMode(IN2,OUTPUT);     // SETS IN2 AS OUTPUT
void loop() {

Error message here!

Show Error message here!

Forgot your password?

Error message here!

Send OTP

Error message here!

Show Error message here!

Lost your password? Please enter your email address. You will receive a password you Need.

Send Error message here!

Back to log-in