/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: Obstcal_line - Source Code compiled for: Arduino Uno - Source Code created on: 2023-12-05 22:31:06 - Source Code generated by: Khalid ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* iam making an a robot I'm using ardunio uno and */ /* l293d motor shield I'm using 2 motors m1 and m2 in */ /* the motor shield and I'm using 3 cannel ir sensor */ /* to detect the black line and follow it ant it is */ /* connected to the shield in pin(#define left A0 */ /* #defi */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include #include /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* iam making an a robot I'm using ardunio uno and */ /* l293d motor shield I'm using 2 motors m1 and m2 in */ /* the motor shield and I'm using 3 cannel ir sensor */ /* to detect the black line and follow it ant it is */ /* connected to the shield in pin(#define left A0 */ /* #defi */ /****** END SYSTEM REQUIREMENTS *****/ /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); /***** DEFINITION OF PWM OUTPUT PINS *****/ const int Servo_Servomotor_PWMSignal_PIN_D3 = 3; /***** DEFINITION OF MOTOR SHIELD PINS *****/ const int Motor_M1_Enable_PIN_9 = 9; const int Motor_M2_Enable_PIN_10 = 10; const int Motor_M1_Input1_PIN_2 = 2; const int Motor_M1_Input2_PIN_4 = 4; const int Motor_M2_Input3_PIN_6 = 6; const int Motor_M2_Input4_PIN_8 = 8; /***** DEFINITION OF IR SENSOR PINS *****/ const int IR_Sensor_Left_PIN_A0 = A0; const int IR_Sensor_Center_PIN_A1 = A1; const int IR_Sensor_Right_PIN_A2 = A2; /****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/ Servo myservo; // Creating an instance of the Servo class void setup(void) { // put your setup code here, to run once: pinMode(Servo_Servomotor_PWMSignal_PIN_D3, OUTPUT); myservo.attach(Servo_Servomotor_PWMSignal_PIN_D3); // Attaching the servo to the designated pin pinMode(Motor_M1_Enable_PIN_9, OUTPUT); pinMode(Motor_M2_Enable_PIN_10, OUTPUT); pinMode(Motor_M1_Input1_PIN_2, OUTPUT); pinMode(Motor_M1_Input2_PIN_4, OUTPUT); pinMode(Motor_M2_Input3_PIN_6, OUTPUT); pinMode(Motor_M2_Input4_PIN_8, OUTPUT); pinMode(IR_Sensor_Left_PIN_A0, INPUT); pinMode(IR_Sensor_Center_PIN_A1, INPUT); pinMode(IR_Sensor_Right_PIN_A2, INPUT); } void loop(void) { // put your main code here, to run repeatedly: // Read the values from the IR sensors int leftSensorValue = digitalRead(IR_Sensor_Left_PIN_A0); int centerSensorValue = digitalRead(IR_Sensor_Center_PIN_A1); int rightSensorValue = digitalRead(IR_Sensor_Right_PIN_A2); // Line following logic if (leftSensorValue == LOW && centerSensorValue == LOW && rightSensorValue == LOW) { // All sensors detect the black line, go straight digitalWrite(Motor_M1_Input1_PIN_2, HIGH); digitalWrite(Motor_M1_Input2_PIN_4, LOW); digitalWrite(Motor_M2_Input3_PIN_6, HIGH); digitalWrite(Motor_M2_Input4_PIN_8, LOW); } else if (leftSensorValue == HIGH && centerSensorValue == LOW && rightSensorValue == LOW) { // Left sensor detects the black line, turn left digitalWrite(Motor_M1_Input1_PIN_2, LOW); digitalWrite(Motor_M1_Input2_PIN_4, HIGH); digitalWrite(Motor_M2_Input3_PIN_6, HIGH); digitalWrite(Motor_M2_Input4_PIN_8, LOW); } else if (leftSensorValue == LOW && centerSensorValue == LOW && rightSensorValue == HIGH) { // Right sensor detects the black line, turn right digitalWrite(Motor_M1_Input1_PIN_2, HIGH); digitalWrite(Motor_M1_Input2_PIN_4, LOW); digitalWrite(Motor_M2_Input3_PIN_6, LOW); digitalWrite(Motor_M2_Input4_PIN_8, HIGH); } else { // No black line detected, stop the motors digitalWrite(Motor_M1_Input1_PIN_2, LOW); digitalWrite(Motor_M1_Input2_PIN_4, LOW); digitalWrite(Motor_M2_Input3_PIN_6, LOW); digitalWrite(Motor_M2_Input4_PIN_8, LOW); } }