Skip to content
View Sammy12357's full-sized avatar

Block or report Sammy12357

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Sammy12357/README.md

const int motor1Pin1 = 2; // Motor 1 pins const int motor1Pin2 = 4; const int motor2Pin1 = 7; // Motor 2 pins const int motor2Pin2 = 8; const int trigPin = 12; // Ultrasonic sensor pins const int echoPin = 13; const int IR_left = A0; // IR sensor pins const int IR_right = A1; const int maxDistance = 40; // Maximum distance to detect obstacles (in cm) const int minReverseDistance = 5; // Distance to start reversing (in cm) const float cmToInch = 0.393701; // Conversion factor from cm to inches const float reverseDistanceInch = 2.0; // Reverse distance in inches

long duration; int distance;

void setup() { pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(IR_left, INPUT); pinMode(IR_right, INPUT); Serial.begin(9600); }

void loop() { int leftSensor = digitalRead(IR_left); int rightSensor = digitalRead(IR_right);

digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH); distance = duration * 0.034 / 2;

Serial.print("Distance: "); Serial.print(distance); Serial.print(" cm, Left Sensor: "); Serial.print(leftSensor); Serial.print(", Right Sensor: "); Serial.println(rightSensor);

if (distance <= maxDistance && distance >= minReverseDistance) { if (leftSensor == LOW && rightSensor == LOW) { moveForward(); } else if (leftSensor == LOW) { turnLeft(); } else if (rightSensor == LOW) { turnRight(); } else { continueStraight(); } } else if (distance < minReverseDistance && distance >= 0) { reverse(); delay(reverseDuration(distance)); // Delay for the reverse duration } else { stopMoving(); } }

void moveForward() { analogWrite(motor1Pin1, 255); analogWrite(motor1Pin2, 0); analogWrite(motor2Pin1, 255); analogWrite(motor2Pin2, 0); }

void turnRight() { analogWrite(motor1Pin1, 255); analogWrite(motor1Pin2, 0); analogWrite(motor2Pin1, 0); analogWrite(motor2Pin2, 255); }

void turnLeft() { analogWrite(motor1Pin1, 0); analogWrite(motor1Pin2, 255); analogWrite(motor2Pin1, 255); analogWrite(motor2Pin2, 0); }

void stopMoving() { analogWrite(motor1Pin1, 0); analogWrite(motor1Pin2, 0); analogWrite(motor2Pin1, 0); analogWrite(motor2Pin2, 0); }

void continueStraight() { analogWrite(motor1Pin1, 255); analogWrite(motor1Pin2, 0); analogWrite(motor2Pin1, 255); analogWrite(motor2Pin2, 0); }

void reverse() { analogWrite(motor1Pin1, 0); analogWrite(motor1Pin2, 255); analogWrite(motor2Pin1, 0); analogWrite(motor2Pin2, 255); }

float reverseDuration(int distance) { return (distance * cmToInch) / reverseDistanceInch * 1000; // Convert distance in cm to inches and calculate the reverse duration in milliseconds }

Popular repositories Loading

  1. Sammy12357 Sammy12357 Public

    Config files for my GitHub profile.

  2. SafeScan-QR SafeScan-QR Public

    Python 1

  3. SafeScan-QR-App SafeScan-QR-App Public

    TypeScript

  4. SafeScan-QR-App-test SafeScan-QR-App-test Public

    TypeScript

  5. SafeScan-QR-test SafeScan-QR-test Public

    Python

  6. SafeScan-Android-main SafeScan-Android-main Public

    Jupyter Notebook