How to Control DC Motor via Bluetooth using arduino ?

In this project we will control a DC motor with a smartphone via bluetooth.


project is great to learn more about: -DC motor -Interfacing Arduino with your smartphone -Bluetooth module -L293D


Step 1: Parts required

1x Arduino Uno 1x Bluetooth Module (for example: HC-05) 1x Smartphone (any Android will work) BlueTerm application 1x L293D IC 1x DC motor 1x Breadboard Jumper Cables


FLGUVFVHD4VGYKU.MEDIUM


Two common mistakes:

-You need to remove the RX and TX cables when you’re uploading the sketch to your Arduino. -Sometimes people connect the TX from the bluetooth module to the TX of the Arduino… that’s wrong and it won’t work. Make sure you connect it properly, the TX into RX and the RX into the TX.

Note: If the HC-05 Bluetooth Module asks for a password, It’s ‘1234’.


Step 3: Arduino Code

int motorPin1 = 3; // pin 2 on L293D IC
int motorPin2 = 4; // pin 7 on L293D IC
int enablePin = 5; // pin 1 on L293D IC
int state;
int flag=0; //makes sure that the serial only prints once the state
void setup() {
// sets the pins as outputs:
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(enablePin, OUTPUT);
// sets enablePin high so that motor can turn on:
digitalWrite(enablePin, HIGH);
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop() {
//if some date is sent, reads it and saves in state
if(Serial.available() > 0){
state = Serial.read();
flag=0;
}
// if the state is ‘0’ the DC motor will turn off
if (state == 0) {
digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
if(flag == 0){
Serial.println(Motor: off);
flag=1;
}
}
// if the state is ‘1’ the motor will turn right
else if (state == 1) {
digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
digitalWrite(motorPin2, HIGH); // set pin 7 on L293D high
if(flag == 0){
Serial.println(Motor: right);
flag=1;
}
}
// if the state is ‘2’ the motor will turn left
else if (state == 2) {
digitalWrite(motorPin1, HIGH); // set pin 2 on L293D high
digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
if(flag == 0){
Serial.println(Motor: left);
flag=1;
}
}
}

Leave a Reply