// Define motor contr pins const int ENA = 5; // PWM pin for motor A speed const int ENB = 6; // PWM pin for motor B speed const int IN1 = 7; // Motor A direction control const int IN2 = 8; // Motor A direction control const int IN3 = 9; // Motor B direction control const int IN4 = 10; // Motor B direction control void setup() { // Initialize motor control pins as output pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); // Start Bluetooth communication on hardware UART Serial.begin(9600); // Bluetooth module baud rate Serial.println("Bluetooth RC Car Ready. Waiting for commands..."); } void loop() { if (Serial.available()) { char command = Serial.read(); // Read the command sent via Bluetooth Serial.println(command); // Debugging: Display the received command // Execute commands based on input switch (command) { case 'F': // Move forward moveForward(120); // Reduced speed break; case 'B': // Move backward moveBackward(120); // Reduced speed break; case 'L': // Turn left turnLeft(120); // Reduced turning speed break; case 'R': // Turn right turnRight(120); // Reduced turning speed break; case 'S': // Stop stopMotors(); break; default: Serial.println("Invalid command!"); break; } } } // Function to move forward void moveForward(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); Serial.println("Moving forward"); } // Function to move backward void moveBackward(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); Serial.println("Moving backward"); } // Function to turn left void turnLeft(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); Serial.println("Turning left"); } // Function to turn right void turnRight(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); Serial.println("Turning right"); } // Function to stop motors void stopMotors() { analogWrite(ENA, 0); analogWrite(ENB, 0); Serial.println("Stopping motors"); }