1 /* Ultrasonic rilevatore distanza
3 Rilevatore distanza minore di 5cm.
6 HC-SR04 Ping distance sensor
7 VCC to arduino 5v - GND to arduino GND
18 const int minDistance = 10;
21 pinMode(trig, OUTPUT);
30 Serial.begin(9600); // Need for distanceMonitor
34 if (distanceCheck()) {
35 digitalWrite(led,HIGH);
37 digitalWrite(led,LOW);
39 Serial.println(distanceMonitor());
44 boolean distanceCheck() {
45 digitalWrite(trig, LOW); // Prepare for ping
46 delayMicroseconds(2); //
47 digitalWrite(trig, HIGH); // Send a ping
48 delayMicroseconds(10); //
49 digitalWrite(trig, LOW); // Set down ping
50 duration = pulseIn(echo, HIGH);
51 //distance = (duration / 2) / 29.1; // Speed is ~300m/s,
52 // so it takes ~29.1 milliseconds for a cm.
53 distance = (duration / 58.2); // Atmegas are not found of divisions
54 // Distance is half of (out + back)
55 distance = constrain(distance,4,35);
57 Serial.print("Distanza oggetto: ");
58 Serial.println(distance);
60 if (distance < minDistance) { // This is where the LED On/Off happens
68 int distanceMonitor() {
69 digitalWrite(trig, LOW); // Prepare for ping
70 delayMicroseconds(2); //
71 digitalWrite(trig, HIGH); // Send a ping
72 delayMicroseconds(10); //
73 digitalWrite(trig, LOW); // Set down ping
74 duration = pulseIn(echo, HIGH);
75 //distance = (duration / 2) / 29.1; // Speed is ~300m/s,
76 // so it takes ~29.1 milliseconds for a cm.
77 distance = (duration / 58.2); // Atmegas are not found of divisions
78 distance = constrain(distance,4,35);
79 // Distance is half of (out + back)