DC motor control through voice using Arduino, I2C & LCD in proteus

DC motor control through voice using Arduino, I2C & LCD in proteus

In this article we will learn how to interface arduino with DC motor through I2C and LCD in proteus.
In the last post we will learn how to interface arduino with Rain sensor & LCD in proteus. You can visit our website,
I hope you appreciate my work, let’s discuss about today’s project.

Components which we use in this project are listed below:

  1. Arduino UNO
  2. Bluetooth module (HC-05)
  3. I2C
  4. Virtual terminal
  5. DC motor
  6. LCD display
  7. Jumper wires

Diagram of this project is below:

DC motor control through voice using Arduino, I2C & LCD in proteus
DC motor control through voice using Arduino, I2C & LCD in proteus

Construction of DC motor control through voice using Arduino, I2C & LCD in proteus:

  • Connect the pin 0 of arduino UNO with the pin TXD of Bluetooth module
  • Connect the pin 1 of arduino UNO with the pin RXD of Bluetooth module
  • Connect the A4 pin of arduino UNO with the pin 15 of I2C
  • Connect the A5 pin of arduino UNO with the pin 14 of I2C
  • Connect the pin 1,9 of I2C with the +ve
  • Connect the pin 5 of arduino UNO with the pin 15 of I2C
  • Connect the A0,A1,A2 with the GND point
  • Connect the pin 6 of arduino UNO with the pin 10 of I2C
  • Connect the pin 11 of arduino UNO with the pin 7 of I2C
  • Connect the pin 12 of arduino UNO with the pin 2 of I2C
  • Connect the VSS and VS pin of I2C with the +ve
  • Connect the GND pin of I2C with the GND
  • Connect the pin 3 of I2C with the one side of DC motor 1
  • Connect the pin 6 of I2C with the other side of DC motor 1
  • Connect the pin 11 of I2C with the one side of DC motor 2
  • Connect the pin 14 of I2C with the other side of DC motor 2
  • Connect the VSS pin of LCD display with the GND
  • Connect the VDD pin of LCD display with the +ve point
  • Connect the P0 pin of I2C with the pin RS of LCD  display
  • Connect the P1 pin of I2C with the pin RW of LCD display
  • Connect the P2 pin of I2C with the pin E of LCD display
  • Connect the P3 pin of I2C with the pin D3 of LCD display
  • Connect the P4 pin of I2C with the pin D4 of LCD display
  • Connect the P5 pin of I2C with the pin D5 of LCD display
  • Connect the P6 pin of I2C with the pin D6 of LCD display
  • Connect the P7 pin of I2C with the pin D7 of LCD display

Working of DC motor control through voice using Arduino, I2C & LCD in proteus:

Controlling a DC motor through voice using Arduino involves several steps, including speech recognition, processing the voice commands, and driving the motor.

Application of DC motor control through voice using Arduino, I2C & LCD in proteus:

  1. Smart Home Automation
  2. Robotic Systems
  3. Gaming and Entertainment
  4. Healthcare and Accessibility
  5. Industrial Automation

Advantages of DC motor control through voice using Arduino, I2C & LCD in proteus:

  1. Hands-free Operation
  2. Accessibility
  3. Convenience
  4. Versatility

Program code of this project is below:

#include <LiquidCrystal_I2C.h >

LiquidCrystal_I2C lcd(0x20, 16, 2);

 

 

#define led 13

#define m1 5

#define m2 6

#define m3 12

#define m4 11

 

void setup() {

lcd.begin(16, 2);

lcd.init();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

pinMode(led,OUTPUT);

pinMode(m1,OUTPUT);

pinMode(m2,OUTPUT);

pinMode(m3,OUTPUT);

pinMode(m4,OUTPUT);

Serial.begin(9600);

 

}

void loop () {

 

String voice= Serial.readString();

Serial.println(voice);

if(voice == “hello”)

{

lcd.clear();

lcd.setCursor(1,0);

lcd.print (“Hello”);

Serial.println(“hello”);

digitalWrite(led,HIGH);

 

}

else if (voice == “forward”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“Forward”);

 

Serial.println(“Forward”);

digitalWrite(m1,HIGH);

digitalWrite(m2,LOW);

digitalWrite(m3,HIGH);

digitalWrite(m4,LOW);

}

else if (voice==”reverse”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“Reverse”);

digitalWrite(m1,LOW);

digitalWrite(m2,HIGH);

digitalWrite(m3,LOW);

digitalWrite(m4,HIGH);

delay (1000);

}

 

else if (voice==”right”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“right”);

 

digitalWrite(m1,HIGH);

digitalWrite(m2,LOW);

delay (1000);

}

else if (voice==”left”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“left”);

 

digitalWrite(m3,HIGH);

digitalWrite(m4,LOW);

delay (1000);

}

else if (voice == “stop”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“left”);

digitalWrite(m1,LOW);

digitalWrite(m2,LOW);

digitalWrite(m3,LOW);

digitalWrite(m4,LOW);

delay (1000);

}

else if (voice == “right stop”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“left”);

digitalWrite(m1,LOW);

digitalWrite(m2,LOW);

 

delay (1000);

}

else if (voice == “left stop”)

{

lcd.clear();

lcd.setCursor(0,0);

lcd.print (“Projectiot123”);

lcd.setCursor(1,0);

lcd.print (“Dir:”);

lcd.setCursor(1,5);

lcd.print (“left”);

digitalWrite(m3,LOW);

digitalWrite(m4,LOW);

 

delay (1000);

}

 

 

}