]> git.piffa.net Git - rover/blob - prototypes/ultra/ultrasonic_distance_simple/ultrasonic_distance_simple.ino
dc0e8ad5883b02df7b1698406a5e7678a5159f00
[rover] / prototypes / ultra / ultrasonic_distance_simple / ultrasonic_distance_simple.ino
1 /* Ultrasonic rilevatore distanza
2
3 Rilevatore distanza minore di 5cm.
4
5 HC-SR04 Ping distance sensor
6 VCC to arduino 5v - GND to arduino GND
7
8
9  */
10
11 // Ultrasuoni
12 const byte trig = 11;
13 const byte echo = 12;
14 const byte led = 13;
15 long duration, distance;
16
17 void setup() {
18     pinMode(trig, OUTPUT);
19     pinMode(echo, INPUT);
20     pinMode(led, OUTPUT);
21
22
23     //Debug
24     Serial.begin (9600);
25 }
26
27 void loop() {
28     digitalWrite(trig, LOW);  // Prepare for ping
29     delayMicroseconds(2); //
30     digitalWrite(trig, HIGH); // Send a ping
31     delayMicroseconds(10); //
32     digitalWrite(trig, LOW); // Set down ping
33     duration = pulseIn(echo, HIGH);
34     distance = (duration/2) / 29.1; // Speed is ~300m/s,
35     // so it takes ~29.1 milliseconds for a cm.
36     // Distance is half of (out + back)
37     if (distance < 5) {  // This is where the LED On/Off happens
38         digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
39     }
40     else {
41         digitalWrite(led,LOW);
42     }
43     delay(200);
44     Serial.println(distance);
45 }
46