Sensore ad ultrasuoni Arduino: come misurare le distanze
Con Arduino, puoi facilmente misurare le distanze usando un sensore a ultrasuoni. In questo suggerimento pratico, ti mostreremo come.
Sensore ad ultrasuoni Arduino: come misurare le distanze
Per misurare le distanze, è necessario disporre di una breadboard con alcuni cavi jumper e un modulo di misurazione ad ultrasuoni HC-SR04 oltre ad Arduino.
- Collegare il pin "Trigger" del modulo al pin 13 e il pin "Echo" al pin 12 dell'Arduino. Collegare anche il modulo di misurazione ad ultrasuoni HC-SR04 a 5 V e terra.
- Definire "trigger" come output ed "echo" come input. Sono inoltre necessarie le variabili lunghe "durata" e "distanza".
- Disattivare innanzitutto il trigger (»digitalWrite (trigger, LOW);«) e attendere 2 microsecondi (»delayMicroseconds (2);«). Quindi attivare il trigger (»digitalWrite (trigger, HIGH);«), attendere 10 microsecondi (»delayMicroseconds (10);«) e spegnerlo di nuovo (»digitalWrite (trigger, LOW);«). Utilizzare questo per calcolare la durata (»duration = pulseIn (eco, HIGH);«) e infine la distanza effettiva (»distance = (duration / 2) / 29.1;«).
- Con questa variabile puoi continuare a calcolare come desideri.
Arduino: codice di esempio per il sensore a ultrasuoni
Nell'immagine viene visualizzato il codice che è possibile utilizzare se si desidera utilizzare HC-SR04 in modo professionale. Puoi anche copiare il codice qui:
- #include #define trigger 13 #define echo 12 #define led_1 11 #define led_2 10 int value_tone; lunga durata, distanza; LiquidCrystal lcd (7, 6, 5, 4, 3, 2); void setup () {Serial.begin (9600); pinMode (trigger, OUTPUT); // Pin della modalità pin HC-SR04 (echo, INPUT); // Pin della modalità pin HC-SR04 (led_1, OUTPUT); // LED pinMode (led_2, OUTPUT); // LED pinMode (9, OUTPUT); // buzzer lcd.begin (16, 2); } void loop () {digitalWrite (trigger, LOW); delayMicroseconds (2); digitalWrite (trigger, HIGH); delayMicroseconds (10); digitalWrite (trigger, LOW); durata = impulsoIn (eco, ALTO); distanza = (durata / 2) / 29.1; if (distanza = 200 || distanza <= 0) {Serial.println ("Fuori portata"); } else {Serial.print (distanza); Serial.println ("cm"); } lcd.clear (); lcd.setCursor (1, 0); lcd.print ("Distanza:"); lcd.print (distanza); lcd.print ("cm"); if (distanza 0) {value_tone = map (distanza, 0, 200, 0, 5000); tono (9, value_tone); } else {} delay (500); }
Nel prossimo suggerimento pratico, ti mostreremo come impostare un modulo GSM su Arduino.