This circuit is designed to control a variety of components including motors, sensors, and actuators using an Arduino UNO as the central microcontroller. The circuit features motor drivers for controlling gearmotors, an ultrasonic sensor for distance measurement, IR sensors for object detection, a Bluetooth module for wireless communication, LEDs for visual feedback, a buzzer for audio alerts, a relay for controlling a water pump, and a switch for power control. The system is powered by an 11.1V Li-ion battery.
#define in1 5 //L298n Motor Driver pins.
#define in2 6
#define in3 10
#define in4 11
#define EXTRA 4
const int trigPin = 9;
const int echoPin = 18;
long duration;
int distance;
#define light_FR 13 //LED Front Right pin A0 for Arduino Uno
//#define light_FL 15 //LED Front Left pin A1 for Arduino Uno
#define light_BR 12 //LED Back Right pin A2 for Arduino Uno
//#define light_BL 17 //LED Back Left pin A3 for Arduino Uno
#define horn_Buzz 7 //Horn Buzzer pin A4 for Arduino Uno
int command; //Int to store app command state.
int Speed = 204; // 0 - 255.
int Speedsec;
int buttonState = 0;
int lastButtonState = 0;
int Turnradius = 0; //Set the radius of a turn, 0 - 255 Note:the robot will malfunction if this is higher than int Speed.
int brakeTime = 45;
int brkonoff = 1; //1 for the electronic braking system, 0 for normal.
boolean lightFront = false;
boolean lightBack = false;
boolean horn = false;
boolean extra = false;
void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT);
pinMode(EXTRA,OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(14,INPUT);
pinMode(light_FR, OUTPUT);
// pinMode(light_FL, OUTPUT);
pinMode(light_BR, OUTPUT);
// pinMode(light_BL, OUTPUT);
pinMode(horn_Buzz, OUTPUT);
Serial.begin(9600); //Set the baud rate to your Bluetooth module.
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2;
// Prints the distance on the Serial Monitor
Serial.println(distance);
if(distance<25){Stop();
delay(100);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
delay(500);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
if(distance<25){digitalWrite(horn_Buzz,1);
delay(50);
digitalWrite(horn_Buzz,0);
delay(50);
digitalWrite(horn_Buzz,1);
delay(50);
digitalWrite(horn_Buzz,0);
delay(50);
digitalWrite(horn_Buzz,1);
delay(50);
digitalWrite(horn_Buzz,0);
}
//FRONT IR 1
if (digitalRead(14)== HIGH){Stop();
delay(100);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
delay(300);
digitalWrite(in1,