Advertisement
Guest User

ultrasonic-led.ino

a guest
Sep 20th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Servo.h>
  2.  
  3. const int trigPin = 2;
  4. const int echoPin = 3;
  5.  
  6. long duration;
  7. int distance;
  8. Servo myServo;
  9.  
  10. void setup() {
  11.   pinMode(trigPin, OUTPUT);
  12.   pinMode(echoPin, INPUT);
  13.   Serial.begin(9600);
  14.   myServo.attach(5);
  15. }
  16.  
  17. void loop() {
  18.   for (int i = 15; i <= 165; i++) {
  19.     myServo.write(i);
  20.     delay(30);
  21.     distance = calculateDistance();
  22.  
  23.     Serial.print(i);
  24.     Serial.print(",");
  25.     Serial.print(distance);
  26.     Serial.print(".");
  27.   }
  28.  
  29.   for (int i = 165; i > 15; i--) {
  30.     myServo.write(i);
  31.     delay(30);
  32.     distance = calculateDistance();
  33.    
  34.     // cm
  35.     long cm = distance / 29.1;
  36.     if (cm >= 20) {
  37.         digitalWrite(8, HIGH);
  38.         digitalWrite(9, LOW);
  39.         digitalWrite(10, LOW);
  40.  
  41.     //
  42.     } else if (distance >= 15) {
  43.         digitalWrite(8, LOW);
  44.         digitalWrite(9, HIGH);
  45.         digitalWrite(10, LOW);
  46.     } else {
  47.         digitalWrite(8, LOW);
  48.         digitalWrite(9, LOW);
  49.         digitalWrite(10, HIGH);
  50.     }  
  51.  
  52.     Serial.print(i);
  53.     Serial.print(",");
  54.     Serial.print(distance);
  55.     Serial.print(".");
  56.   }
  57. }
  58.  
  59. int calculateDistance() {
  60.   digitalWrite(trigPin, LOW);
  61.   delayMicroseconds(2);
  62.   digitalWrite(trigPin, HIGH);
  63.   delayMicroseconds(10);
  64.   digitalWrite(trigPin, LOW);
  65.   duration = pulseIn(echoPin, HIGH);
  66.   distance = duration * 0.034 / 2;
  67.   return distance;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement