Advertisement
Guest User

ultrasonic-led.ino

a guest
Sep 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Servo.h>
  2. #include <SoftwareSerial.h>
  3.  
  4. SoftwareSerial arduinoToProcessing;
  5. SoftwareSerial arduinoToMonitor;
  6.  
  7. const int trigPin = 2;
  8. const int echoPin = 3;
  9.  
  10. long duration;
  11. int distance;
  12. Servo myServo;
  13.  
  14. void setup() {
  15.   pinMode(trigPin, OUTPUT);
  16.   pinMode(echoPin, INPUT);
  17.   arduinoToProcessing.begin(9600);
  18.   arduinoToMonitor.begin(57600);
  19.   myServo.attach(5);
  20. }
  21.  
  22. void loop() {
  23.   for (int i = 15; i <= 165; i++) {
  24.     myServo.write(i);
  25.     delay(30);
  26.     distance = calculateDistance();
  27.  
  28.     // cm
  29.     long cm = distance / 29.1;
  30.     long inch = distance / 74;
  31.     if (cm >= 20) {
  32.         digitalWrite(8, HIGH);
  33.         digitalWrite(9, LOW);
  34.         digitalWrite(10, LOW);
  35.  
  36.     //
  37.     } else if (distance >= 15) {
  38.         digitalWrite(8, LOW);
  39.         digitalWrite(9, HIGH);
  40.         digitalWrite(10, LOW);
  41.     } else {
  42.         digitalWrite(8, LOW);
  43.         digitalWrite(9, LOW);
  44.         digitalWrite(10, HIGH);
  45.     }  
  46.    
  47.     // processing
  48.     arduinoToProcessing.print(i);
  49.     arduinoToProcessing.print(",");
  50.     arduinoToProcessing.print(distance);
  51.     arduinoToProcessing.print(".");
  52.  
  53.     // monitor
  54.     arduinoToMonitor.print(inch);
  55.     arduinoToMonitor.print(" inch");
  56.     arduinoToMonitor.print("| ");
  57.     arduinoToMonitor.print(cm);
  58.     arduinoToMonitor.print(" cm");
  59.     arduinoToMonitor.println();
  60.   }
  61.  
  62.   for (int i = 165; i > 15; i--) {
  63.     myServo.write(i);
  64.     delay(30);
  65.     distance = calculateDistance();
  66.    
  67.     // cm
  68.     long cm = distance / 29.1;
  69.     long inch = distance / 74;
  70.     if (cm >= 20) {
  71.         digitalWrite(8, HIGH);
  72.         digitalWrite(9, LOW);
  73.         digitalWrite(10, LOW);
  74.  
  75.     //
  76.     } else if (distance >= 15) {
  77.         digitalWrite(8, LOW);
  78.         digitalWrite(9, HIGH);
  79.         digitalWrite(10, LOW);
  80.     } else {
  81.         digitalWrite(8, LOW);
  82.         digitalWrite(9, LOW);
  83.         digitalWrite(10, HIGH);
  84.     }  
  85.  
  86.     // processing
  87.     arduinoToProcessing.print(i);
  88.     arduinoToProcessing.print(",");
  89.     arduinoToProcessing.print(distance);
  90.     arduinoToProcessing.print(".");
  91.  
  92.     // monitor
  93.     arduinoToMonitor.print(inch);
  94.     arduinoToMonitor.print(" inch");
  95.     arduinoToMonitor.print("| ");
  96.     arduinoToMonitor.print(cm);
  97.     arduinoToMonitor.print(" cm");
  98.     arduinoToMonitor.println();
  99.   }
  100. }
  101.  
  102. int calculateDistance() {
  103.   digitalWrite(trigPin, LOW);
  104.   delayMicroseconds(2);
  105.   digitalWrite(trigPin, HIGH);
  106.   delayMicroseconds(10);
  107.   digitalWrite(trigPin, LOW);
  108.   duration = pulseIn(echoPin, HIGH);
  109.   distance = duration * 0.034 / 2;
  110.   return distance;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement