#define FRONT_LEFT_MOTOR_PIN 15
#define FRONT_RIGHT_MOTOR_PIN 2
#define REAR_RIGHT_MOTOR_PIN 0
#define REAR_LEFT_MOTOR_PIN 4
#define FRONT_LEFT_BUTTON_PIN 18
#define FRONT_RIGHT_BUTTON_PIN 5
#define REAR_RIGHT_BUTTON_PIN 17
#define REAR_LEFT_BUTTON_PIN 16
#define FRONT_PAIR_BUTTON_PIN 14
#define REAR_PAIR_BUTTON_PIN 27
#define LEFT_PAIR_BUTTON_PIN 26
#define RIGHT_PAIR_BUTTON_PIN 12
#define ROCKER_SWITCH_PIN_A 25
#define ROCKER_SWITCH_PIN_B 33
bool rockerState; // Define rocker switch state variable
void setup() {
// Initialize motor driver pins as outputs
pinMode(FRONT_LEFT_MOTOR_PIN, OUTPUT);
pinMode(FRONT_RIGHT_MOTOR_PIN, OUTPUT);
pinMode(REAR_RIGHT_MOTOR_PIN, OUTPUT);
pinMode(REAR_LEFT_MOTOR_PIN, OUTPUT);
// Initialize push button pins as inputs
pinMode(FRONT_LEFT_BUTTON_PIN, INPUT_PULLUP);
pinMode(FRONT_RIGHT_BUTTON_PIN, INPUT_PULLUP);
pinMode(REAR_RIGHT_BUTTON_PIN, INPUT_PULLUP);
pinMode(REAR_LEFT_BUTTON_PIN, INPUT_PULLUP);
pinMode(FRONT_PAIR_BUTTON_PIN, INPUT_PULLUP);
pinMode(REAR_PAIR_BUTTON_PIN, INPUT_PULLUP);
pinMode(LEFT_PAIR_BUTTON_PIN, INPUT_PULLUP);
pinMode(RIGHT_PAIR_BUTTON_PIN, INPUT_PULLUP);
// Initialize rocker switch pins as inputs
pinMode(ROCKER_SWITCH_PIN_A, INPUT_PULLUP);
pinMode(ROCKER_SWITCH_PIN_B, INPUT_PULLUP);
// Initialize Serial communication
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
// Read the state of the rocker switch
if (digitalRead(ROCKER_SWITCH_PIN_A) == HIGH){
rockerState = true;
} else if (digitalRead(ROCKER_SWITCH_PIN_B) == HIGH) {
rockerState = false;
}
// Determine motor direction based on the rocker switch state
int motorDirection = rockerState ? HIGH : LOW;
Serial.println(motorDirection);
if(motorDirection == HIGH){
Serial.println("I am set to Forward Motion");
}else if(motorDirection == LOW){
Serial.println("I am set to Reverse Motion");
}
// Check if any of the specified pins are pressed
if (digitalRead(FRONT_LEFT_BUTTON_PIN) == LOW ||
digitalRead(FRONT_RIGHT_BUTTON_PIN) == LOW ||
digitalRead(REAR_RIGHT_BUTTON_PIN) == LOW ||
digitalRead(REAR_LEFT_BUTTON_PIN) == LOW ||
digitalRead(FRONT_PAIR_BUTTON_PIN) == LOW ||
digitalRead(REAR_PAIR_BUTTON_PIN) == LOW ||
digitalRead(LEFT_PAIR_BUTTON_PIN) == LOW ||
digitalRead(RIGHT_PAIR_BUTTON_PIN) == LOW)
{
// Read the state of individual buttons and activate corresponding motors
if (digitalRead(FRONT_LEFT_BUTTON_PIN) == LOW) {
digitalWrite(FRONT_LEFT_MOTOR_PIN, motorDirection);
Serial.println("Front Left - Motors 1 is Activated");
}
if (digitalRead(FRONT_RIGHT_BUTTON_PIN) == LOW) {
digitalWrite(FRONT_RIGHT_MOTOR_PIN, motorDirection);
Serial.println("Front Right - Motors 2 is Activated");
}
if (digitalRead(REAR_RIGHT_BUTTON_PIN) == LOW) {
digitalWrite(REAR_RIGHT_MOTOR_PIN, motorDirection);
Serial.println("Rear Right - Motors 3 is Activated");
}
if (digitalRead(REAR_LEFT_BUTTON_PIN) == LOW) {
digitalWrite(REAR_LEFT_MOTOR_PIN, motorDirection);
Serial.println("Rear Left - Motors 4 is Activated");
}
//////////////////////////////////////////////////////////////////////////////////////
if (digitalRead(FRONT_PAIR_BUTTON_PIN) == LOW) {
digitalWrite(FRONT_LEFT_MOTOR_PIN, motorDirection);
digitalWrite(FRONT_RIGHT_MOTOR_PIN, motorDirection);
Serial.println("Front Pair Motor 1 & 2");
}
if (digitalRead(REAR_PAIR_BUTTON_PIN) == LOW) {
digitalWrite(REAR_LEFT_MOTOR_PIN, motorDirection);
digitalWrite(REAR_RIGHT_MOTOR_PIN, motorDirection);
Serial.println("Rear Pair Motor 3 & 4");
}
if (digitalRead(LEFT_PAIR_BUTTON_PIN) == LOW) {
digitalWrite(FRONT_LEFT_MOTOR_PIN, motorDirection);
digitalWrite(REAR_LEFT_MOTOR_PIN, motorDirection);
Serial.println("Left Pair Motor 1 & 4");
}
if (digitalRead(RIGHT_PAIR_BUTTON_PIN) == LOW) {
digitalWrite(FRONT_RIGHT_MOTOR_PIN, motorDirection);
digitalWrite(REAR_RIGHT_MOTOR_PIN, motorDirection);
Serial.println("Right Pair Motor 2 & 3");
}
}
else {
// If no buttons are pressed, stop all motors
digitalWrite(FRONT_LEFT_MOTOR_PIN, LOW);
digitalWrite(FRONT_RIGHT_MOTOR_PIN, LOW);
digitalWrite(REAR_RIGHT_MOTOR_PIN, LOW);
digitalWrite(REAR_LEFT_MOTOR_PIN, LOW);
Serial.println("Motors Stopped");
}
}