Advertisement
gabbyshimoni

Backards distance sensor

Sep 27th, 2022
856
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | Source Code | 0 0
  1. #define redLed 3
  2. #define yellowLed 4
  3. #define greenLed 5
  4. #define pbPin 6
  5. int pbState = 0;
  6. #define TRIG 7
  7. #define ECHO 8
  8. long distance, duration;
  9. #define buzPin 9
  10.  
  11. void setup() {
  12.   pinMode(redLed, OUTPUT);
  13.   pinMode(yellowLed, OUTPUT);
  14.   pinMode(greenLed, OUTPUT);
  15.   pinMode(pbPin, INPUT);
  16.   pinMode(TRIG, OUTPUT);
  17.   pinMode(ECHO, INPUT);
  18.   pinMode(buzPin, OUTPUT);
  19.   Serial.begin(9600);
  20.   digitalWrite(greenLed, LOW);
  21.   digitalWrite(yellowLed, LOW);
  22.   digitalWrite(redLed, LOW);
  23. }
  24.  
  25. void loop() {
  26.   pbState = digitalRead(pbPin);
  27.   if (pbState == HIGH) {
  28.     digitalWrite(TRIG, LOW);
  29.     delayMicroseconds(2);
  30.     digitalWrite(TRIG, HIGH);
  31.     delayMicroseconds(10);
  32.     digitalWrite(TRIG, LOW);
  33.     duration = pulseIn(ECHO, HIGH);
  34.     distance = duration / 2 / 29;
  35.  
  36.     if (distance >= 100) {
  37.       digitalWrite(greenLed, HIGH);
  38.       digitalWrite(yellowLed, LOW);
  39.       digitalWrite(redLed, LOW);
  40.     } else if (distance >= 50) {
  41.       digitalWrite(greenLed, LOW);
  42.       digitalWrite(yellowLed, HIGH);
  43.       digitalWrite(redLed, LOW);
  44.       tone(buzPin, 4000);
  45.       delay(1000);
  46.       noTone(buzPin);
  47.     } else {
  48.       digitalWrite(greenLed, LOW);
  49.       digitalWrite(yellowLed, LOW);
  50.       digitalWrite(redLed, HIGH);
  51.       tone(buzPin, 4000);
  52.       delay(500);
  53.       digitalWrite(redLed, LOW);
  54.       noTone(buzPin);
  55.     }
  56.  
  57.     Serial.print("distance=");
  58.     Serial.println(distance);
  59.   }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement