Advertisement
Guest User

ultrasonic-led.ino

a guest
Sep 20th, 2018
85
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.     // cm
  24.     long cm = distance / 29.1;
  25.     if (cm >= 20) {
  26.         digitalWrite(8, HIGH);
  27.         digitalWrite(9, LOW);
  28.         digitalWrite(10, LOW);
  29.  
  30.     //
  31.     } else if (distance >= 15) {
  32.         digitalWrite(8, LOW);
  33.         digitalWrite(9, HIGH);
  34.         digitalWrite(10, LOW);
  35.     } else {
  36.         digitalWrite(8, LOW);
  37.         digitalWrite(9, LOW);
  38.         digitalWrite(10, HIGH);
  39.     }  
  40.  
  41.     Serial.print(i);
  42.     Serial.print(",");
  43.     Serial.print(distance);
  44.     Serial.print(".");
  45.   }
  46.  
  47.   for (int i = 165; i > 15; i--) {
  48.     myServo.write(i);
  49.     delay(30);
  50.     distance = calculateDistance();
  51.    
  52.     // cm
  53.     long cm = distance / 29.1;
  54.     if (cm >= 20) {
  55.         digitalWrite(8, HIGH);
  56.         digitalWrite(9, LOW);
  57.         digitalWrite(10, LOW);
  58.  
  59.     //
  60.     } else if (distance >= 15) {
  61.         digitalWrite(8, LOW);
  62.         digitalWrite(9, HIGH);
  63.         digitalWrite(10, LOW);
  64.     } else {
  65.         digitalWrite(8, LOW);
  66.         digitalWrite(9, LOW);
  67.         digitalWrite(10, HIGH);
  68.     }  
  69.  
  70.     Serial.print(i);
  71.     Serial.print(",");
  72.     Serial.print(distance);
  73.     Serial.print(".");
  74.   }
  75. }
  76.  
  77. int calculateDistance() {
  78.   digitalWrite(trigPin, LOW);
  79.   delayMicroseconds(2);
  80.   digitalWrite(trigPin, HIGH);
  81.   delayMicroseconds(10);
  82.   digitalWrite(trigPin, LOW);
  83.   duration = pulseIn(echoPin, HIGH);
  84.   distance = duration * 0.034 / 2;
  85.   return distance;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement