]> git.piffa.net Git - rover/blobdiff - prototypes/ultra/ultrasonic_distance_simple/ultrasonic_distance_simple.ino
Merge branch 'andrea' with motors functions
[rover] / prototypes / ultra / ultrasonic_distance_simple / ultrasonic_distance_simple.ino
diff --git a/prototypes/ultra/ultrasonic_distance_simple/ultrasonic_distance_simple.ino b/prototypes/ultra/ultrasonic_distance_simple/ultrasonic_distance_simple.ino
new file mode 100644 (file)
index 0000000..dc0e8ad
--- /dev/null
@@ -0,0 +1,46 @@
+/* Ultrasonic rilevatore distanza
+
+Rilevatore distanza minore di 5cm.
+
+HC-SR04 Ping distance sensor
+VCC to arduino 5v - GND to arduino GND
+
+
+ */
+
+// Ultrasuoni
+const byte trig = 11;
+const byte echo = 12;
+const byte led = 13;
+long duration, distance;
+
+void setup() {
+    pinMode(trig, OUTPUT);
+    pinMode(echo, INPUT);
+    pinMode(led, OUTPUT);
+
+
+    //Debug
+    Serial.begin (9600);
+}
+
+void loop() {
+    digitalWrite(trig, LOW);  // Prepare for ping
+    delayMicroseconds(2); //
+    digitalWrite(trig, HIGH); // Send a ping
+    delayMicroseconds(10); //
+    digitalWrite(trig, LOW); // Set down ping
+    duration = pulseIn(echo, HIGH);
+    distance = (duration/2) / 29.1; // Speed is ~300m/s,
+    // so it takes ~29.1 milliseconds for a cm.
+    // Distance is half of (out + back)
+    if (distance < 5) {  // This is where the LED On/Off happens
+        digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
+    }
+    else {
+        digitalWrite(led,LOW);
+    }
+    delay(200);
+    Serial.println(distance);
+}
+