Devices & Components
Arduino Uno Rev3
L298N Motor Driver Module
Jumper-Wires
2WD Car Chassis Kit
IR Sensor Modules
2S LiPo Battery (7.4V) or External Power Supply
Software & Tools
Webotricks
Project description
Code
Arduino code to control the robot's movement based on the IR sensor readings.
null
1#define LEFT_SENSOR 11 2#define RIGHT_SENSOR 12 3#define MOTOR_LEFT_FORWARD 5 4#define MOTOR_LEFT_BACKWARD 6 5#define MOTOR_RIGHT_FORWARD 9 6#define MOTOR_RIGHT_BACKWARD 10 7 8void setup() { 9 pinMode(LEFT_SENSOR, INPUT); 10 pinMode(RIGHT_SENSOR, INPUT); 11 pinMode(MOTOR_LEFT_FORWARD, OUTPUT); 12 pinMode(MOTOR_LEFT_BACKWARD, OUTPUT); 13 pinMode(MOTOR_RIGHT_FORWARD, OUTPUT); 14 pinMode(MOTOR_RIGHT_BACKWARD, OUTPUT); 15} 16 17void loop() { 18 int leftState = digitalRead(LEFT_SENSOR); 19 int rightState = digitalRead(RIGHT_SENSOR); 20 21 if (leftState == LOW && rightState == LOW) { 22 moveForward(); 23 } else if (leftState == HIGH && rightState == LOW) { 24 turnRight(); 25 } else if (leftState == LOW && rightState == HIGH) { 26 turnLeft(); 27 } else { 28 stopMotors(); 29 } 30} 31 32void moveForward() { 33 digitalWrite(MOTOR_LEFT_FORWARD, HIGH); 34 digitalWrite(MOTOR_LEFT_BACKWARD, LOW); 35 digitalWrite(MOTOR_RIGHT_FORWARD, HIGH); 36 digitalWrite(MOTOR_RIGHT_BACKWARD, LOW); 37} 38 39void turnRight() { 40 digitalWrite(MOTOR_LEFT_FORWARD, HIGH); 41 digitalWrite(MOTOR_LEFT_BACKWARD, LOW); 42 digitalWrite(MOTOR_RIGHT_FORWARD, LOW); 43 digitalWrite(MOTOR_RIGHT_BACKWARD, HIGH); 44} 45 46void turnLeft() { 47 digitalWrite(MOTOR_LEFT_FORWARD, LOW); 48 digitalWrite(MOTOR_LEFT_BACKWARD, HIGH); 49 digitalWrite(MOTOR_RIGHT_FORWARD, HIGH); 50 digitalWrite(MOTOR_RIGHT_BACKWARD, LOW); 51} 52 53void stopMotors() { 54 digitalWrite(MOTOR_LEFT_FORWARD, LOW); 55 digitalWrite(MOTOR_LEFT_BACKWARD, LOW); 56 digitalWrite(MOTOR_RIGHT_FORWARD, LOW); 57 digitalWrite(MOTOR_RIGHT_BACKWARD, LOW); 58}
Comments
Only logged in users can leave comments