Menu
CoddyTech

Sensore di parcheggio: distanza

Fa parte della sezione Progetti del percorso Arduino di Coddy. Lezione 9 di 24.

Le auto hanno sensori di parcheggio che emettono segnali acustici sempre più rapidi mentre fai retromarcia verso un muro. Questo progetto ne realizza uno: un sensore di distanza, tre spie di avvertimento, un cicalino e uno schermo, tutti già collegati. Il primo passaggio è la misurazione.

Come in Displays and Sensors, un impulso di 10 microsecondi su TRIG invia un ping e pulseIn(echoPin, HIGH) restituisce per quanto tempo ECHO è rimasto HIGH, in microsecondi. Il suono impiega circa 58 microsecondi per percorrere un centimetro e tornare indietro, quindi la distanza in cm è quel tempo diviso per 58 (lo stesso risultato di duration * 0.034 / 2). Tieni tutto in un'unica funzione:

long readDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration / 58;
}

Misura circa dieci volte al secondo: il sensore ha bisogno di una breve pausa tra un ping e l'altro, altrimenti un'eco tardiva del ping precedente potrebbe essere scambiata per quella nuova.

challenge icon

Sfida

Facile

Il sensore ha TRIG sul pin 9 ed ECHO sul pin 10:

  • scrivi readDistance(): l'impulso di trigger, pulseIn() e il tempo diviso per 58
  • in loop(), stampa la distanza con Serial.println() ogni 100 ms

Premi Run, trascina la distanza sul sensore, poi Check.

Provalo tu

// Il sensore di distanza
const int trigPin = 9;
const int echoPin = 10;

// Invia un impulso e restituisce la distanza in cm.
long readDistance() {

}

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  // stampa la distanza, poi attendi 100 ms

}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Progetti

Esercitati da solo: Playground Arduino