#ifndef MOTORS_H
#define MOTORS_H
#include "Arduino.h""
// Define motor control pins
#define LEFT_MOTOR_FWD 5
#define LEFT_MOTOR_BWD 6
#define RIGHT_MOTOR_FWD 9
#define RIGHT_MOTOR_BWD 10
// Define speed (0-255)
#define MOTOR_SPEED 150
class MotorControl {
public:
// Constructor
MotorControl() {}
// Initialize motor pins
void begin() {
pinMode(LEFT_MOTOR_FWD, OUTPUT);
pinMode(LEFT_MOTOR_BWD, OUTPUT);
pinMode(RIGHT_MOTOR_FWD, OUTPUT);
pinMode(RIGHT_MOTOR_BWD, OUTPUT);
stopMotors();
// Move Forward
void moveForward() {
analogWrite(LEFT_MOTOR_FWD, MOTOR_SPEED);
analogWrite(RIGHT_MOTOR_FWD, MOTOR_SPEED);
digitalWrite(LEFT_MOTOR_BWD, LOW);
digitalWrite(RIGHT_MOTOR_BWD, LOW);
// Move Backward
void moveBackward() {
analogWrite(LEFT_MOTOR_BWD, MOTOR_SPEED);
analogWrite(RIGHT_MOTOR_BWD, MOTOR_SPEED);
digitalWrite(LEFT_MOTOR_FWD, LOW);
digitalWrite(RIGHT_MOTOR_FWD, LOW);
// Turn Left
void turnLeft() {
analogWrite(LEFT_MOTOR_FWD, 60);
analogWrite(RIGHT_MOTOR_FWD, MOTOR_SPEED);
digitalWrite(LEFT_MOTOR_BWD, LOW);
digitalWrite(RIGHT_MOTOR_BWD, LOW);
}
// Turn Right
void turnRight() {
analogWrite(LEFT_MOTOR_FWD, MOTOR_SPEED);
analogWrite(RIGHT_MOTOR_FWD, 60);
digitalWrite(LEFT_MOTOR_BWD, LOW);
digitalWrite(RIGHT_MOTOR_BWD, LOW);
// Stop Motors
void stopMotors() {
digitalWrite(LEFT_MOTOR_FWD, LOW);
digitalWrite(RIGHT_MOTOR_FWD, LOW);
digitalWrite(LEFT_MOTOR_BWD, LOW);
digitalWrite(RIGHT_MOTOR_BWD, LOW);
};
#endif