Skip to content
logo9minuti120x48
Menu
  • Home
  • Tutorial
    • Zaini
    • Stampa 3d
    • ebook
    • Informatica
  • Scritti
    • Racconti
    • Articoli
    • Temi
    • Storia
  • Video
  • Progetti
    • Progetto Carcere
    • Progetto Istruzione
    • Progetto Acque pulite
    • Progetto Tecnologia
  • Chi siamo
    • LinkTree
  • Privacy Policy
    • Cookie Policy (EU)
  • Blog
  • Donazioni
Menu
Sensore di prossimità ad ultrasuoni HC-SR04

Sensore di prossimità ad ultrasuoni HC-SR04

Posted on 8 Gennaio 201916 Settembre 2019 by Alessandro Oppo

Ben ritrovati su 9minuti.it, oggi vedremo quello che è, a mio parere, uno dei sensori ad ultrasuoni più versatili e divertenti da usare, ovvero il sensore di prossimità (o di distanza) HC-SR04.

Il sensore ad ultrasuoni HC-SR04 è composto da due ‘occhioni’, uno dei quali invia un’onda sonora, la quale rimbalza sulla superficie che si trova davanti e viene letta dall’altro ‘occhio’.

Se mi chiedessero quali sono i limiti del sensore ad ultrasuoni HC-SR04 risponderei che non fa il caffè.

Un limite che ho riscontrato, oltre ovviamente a non passare i vetri e non fare il caffè, cosa piuttosto ovvia, è che se posto contro una superficie molto irregolare, come ad esempio un maglione di lana a maglie larghe, smette di funzionare.

La lana infatti assorbe le onde e impedisce a queste di tornare indietro.

La precisione è notevole e su distanze di circa un paio di metri ha una tolleranza di pochi centrimetri.

Il collegamento

 

Sensore di prossimità ad ultrasuoni HC-SR04
Sensore di prossimità ad ultrasuoni HC-SR04

Lo sketch

Passiamo ora allo sketch e alla spiegazione riga per riga.

#define ultrasuoni_out 13
#define ultrasuoni_in 12
float durata;
float distanza;

void setup() {

  pinMode(ultrasuoni_out, OUTPUT);
  pinMode(ultrasuoni_in, INPUT);
  
  Serial.begin(9600);
}

void loop() {

  digitalWrite(ultrasuoni_out, HIGH);
  delay(10);
  digitalWrite(ultrasuoni_out, LOW);

  durata = pulseIn(ultrasuoni_in, HIGH);
  distanza = 0.034 * durata / 2;

  Serial.print(distanza);
  Serial.print(" cm\n");

  delay(100);
}

1 – Definiamo il pin 11 con il nome ultrasuoni_out
2 – Definiamo il pin 12 con il nome ultrasuoni_in
3 – Creiamo la variabile di tipo float durata
4 – Creaiamo la variabile di tipo float distanza
8 – Dichiariamo che il pin ultrasuoni_out verrà usato come OUTPUT
9 – Dichiariamo che il pin ultrasuoni_in verrà usato come INPUT
11 – Chiamiamo il metodo begin() dell’oggetto Serial per far partire la comunicazione seriale.
16 – Accendiamo il pin ultrasuoni_out
17 – Delay di 10 millisecondi
18 – Spegnamo il pin ultrasuoni_out
20 – Assegnamo alla variabile durata il valore restituito dalla funzione pulseIn(), la quale tiene conto del tempo in millisecondi da quando il pin è su HIGH e poi nuovamente su LOW. Se vi interessa approfondire QUA ci sono maggiori informazioni.
21 – Sapendo qual è la velocità del suono (0.034) e il tempo che le onde sonore hanno impiegato (durata) possiamo ricavare la distanza percorsa. Dividiamo per due perché abbiamo sia un’andata che un ritorno.
23, 24 – Facciamo una stampa sul Serial Monitor della nostra distanza appena calcolata.
26 – Delay di 100 millisecondi

Divertiamoci con il sensore di prossimità ad ultrasuoni

Non ci resta altro da fare, ormai abbiamo capito come utilizzarlo e lo possiamo impiegare in uno dei nostri progetti con Arduino.

Un esercizio carino che prevede l’utilizzo di questo sensore consiste nel illuminare un led a seconda di quant’è la distanza, utilizzando quindi gli if e gli else.

Ad esempio,

if ( distanza < 50){
   digitalWrite(13, HIGH);
}

else{
   digitalWrite(13, LOW);
}

Ovviamente dobbiamo ricordarci di aggiungere il pin 13 come OUTPUT nel setup().

Se ti è piaciuto l’articolo ti prego di farmelo sapere nei commenti e di condividerlo sulle tue pagine social in modo da supportare il blog.

Vi ringrazio per l’attenzione e rimango a disposizione per aiutarvi nel caso doveste averne bisogno.

Alessandro

Dammi un 5 virtuale, clicca like e condividi.

  • Fai clic qui per condividere su LinkedIn (Si apre in una nuova finestra)
  • Fai clic per condividere su Facebook (Si apre in una nuova finestra)
  • Fai clic qui per condividere su Twitter (Si apre in una nuova finestra)
  • Fai clic qui per condividere su Reddit (Si apre in una nuova finestra)
  • Fai clic per condividere su WhatsApp (Si apre in una nuova finestra)
  • Fai clic per condividere su Telegram (Si apre in una nuova finestra)
  • Fai clic per inviare un link a un amico via e-mail (Si apre in una nuova finestra)

Related

Cosa ne pensi? Fammelo sapere con un messaggio Annulla risposta

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Scoprici sui social

  • YouTube
  • Telegram
  • Facebook
  • RSS Feed

    Ultimi post

    • Buzzurretto e la scuola – Racconto breve
    • Il mio punto di vista sul progetto scuola
    • Di nuovo nuvole – Racconto breve
    • L’intelligenza artificiale, la forza della logica e la morale – ChatGPT
    • Videogrep, how to extract a certain word from a video (or more)
    • Brucerò tutto non appena è stato scritto – Racconto breve
    • C’è del lavoro da fare – Racconto breve

    Newsletter

    ©2023 9minuti | Design: Newspaperly WordPress Theme
    Manage Cookie Consent
    Usiamo cookie per ottimizzare il nostro sito web ed i nostri servizi.
    Cookie funzionali Sempre attivo
    The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
    Preferences
    The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
    Statistics
    The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
    Marketing
    The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
    Gestisci opzioni Gestisci servizi Gestisci fornitori Per saperne di più su questi scopi
    Visualizza preference
    {title} {title} {title}
     

    Caricamento commenti...