Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define PWMa 3
- #define PWMb 5
- #define AIN1 9
- #define AIN2 8
- #define BIN1 7
- #define BIN2 6
- #define Buzzer 2
- #define pingPin 4
- #define PhotoLeft 3
- #define PhotoRight 2
- #define Battery 1
- #define LED 11
- #define BumperLeft 10
- #define BumperRight 12
- long ping;
- boolean right;
- boolean left;
- int left_state;
- int right_state;
- void setup()
- {
- analogWrite(PWMa, 255);
- analogWrite(PWMb, 255);
- pinMode(AIN1, OUTPUT);
- pinMode(AIN2, OUTPUT);
- pinMode(BIN1, OUTPUT);
- pinMode(BIN2, OUTPUT);
- pinMode(LED, OUTPUT);
- pinMode(Buzzer, OUTPUT);
- pinMode(BumperLeft, INPUT);
- pinMode(BumperRight, INPUT);
- right = false;
- left = false;
- int left_state = LOW;
- int right_state = LOW;
- }
- void loop()
- {
- left_state = digitalRead(BumperLeft);
- right_state = digitalRead(BumperRight);
- ping = Distance();
- digitalWrite(LED, HIGH);
- Forward();
- if (ping < 19)
- {
- digitalWrite(LED, LOW);
- digitalWrite(Buzzer, HIGH);
- Right();
- delay(500);
- digitalWrite(Buzzer, LOW);
- }
- if (left_state == HIGH)
- {
- digitalWrite(LED, LOW);
- digitalWrite(Buzzer, HIGH);
- Backward();
- delay(500);
- digitalWrite(Buzzer, LOW);
- Right();
- delay(500);
- }
- if (right_state == HIGH)
- {
- digitalWrite(LED, LOW);
- digitalWrite(Buzzer, HIGH);
- Backward();
- delay(500);
- digitalWrite(Buzzer, LOW);
- Left();
- delay(500);
- }
- }
- long Distance()
- {
- long duration, cm;
- pinMode(pingPin, OUTPUT);
- digitalWrite(pingPin, LOW);
- delayMicroseconds(2);
- digitalWrite(pingPin, HIGH);
- delayMicroseconds(5);
- digitalWrite(pingPin, LOW);
- pinMode(pingPin, INPUT);
- duration = pulseIn(pingPin, HIGH);
- cm = microsecondsToCentimeters(duration);
- delay(100);
- return cm;
- }
- long microsecondsToCentimeters(long microseconds)
- {
- return microseconds / 29 / 2;
- }
- void Forward()
- {
- digitalWrite(AIN1, HIGH);
- digitalWrite(AIN2, LOW);
- digitalWrite(BIN1, HIGH);
- digitalWrite(BIN2, LOW);
- }
- void Backward()
- {
- digitalWrite(AIN1, LOW);
- digitalWrite(AIN2, HIGH);
- digitalWrite(BIN1, LOW);
- digitalWrite(BIN2, HIGH);
- }
- void Right()
- {
- digitalWrite(AIN1, HIGH);
- digitalWrite(AIN2, LOW);
- digitalWrite(BIN1, LOW);
- digitalWrite(BIN2, HIGH);
- }
- void Left()
- {
- digitalWrite(AIN1, LOW);
- digitalWrite(AIN2, HIGH);
- digitalWrite(BIN1, HIGH);
- digitalWrite(BIN2, LOW);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement