» elettronica » Arduino »Telemetro ultrasonico molto preciso

Telemetro ultrasonico molto preciso



Questo telemetro a ultrasuoni HC-SR04 è stato migliorato con il sensore di temperatura LM35.

Da scuola puoi ricordare che la velocità del suono dipende dalla densità dell'aria e che la densità dell'aria dipende dalla temperatura.
Calcoleremo la temperatura usando questa formula
temp2 = (temp / 1023.0) * 5.0 * 1000/10;

Dove temp2 è il valore di temperatura finito dopo la formula,
E dove temp è il valore grezzo del sensore.

Di cosa abbiamo bisogno:
  • Telemetro ad ultrasuoni HC-SR04
  • Arduino
  • scheda di prototipazione
  • ponticelli
  • Termistore LM35 (sensore di temperatura)


Tieni presente che HC-SR04 è disponibile in due forme:
Qui ne ho uno buono e misura stabilmente la distanza.
Entrambi misurano da 4 cm a 400 cm.
Alimentato da 3,3 a 5 v


Per cominciare, prendiamo in giro tutto su una breadboard.

Sensore ad ultrasuoni:
  • GND - gnd
  • Eco - 3 pin
  • Trig - 2 pin
  • Vcc - 5v

Termistore LM35:
  • 1 - 5v
  • 2 - A0
  • 3 - GND

Telemetro ultrasonico molto preciso

Dovrebbe essere così:

Successivamente compiliamo lo schizzo.
Scarica la libreria per il sensore HC-SR04 -
iarduino_hc-sr04.zip [299.69 Kb] (download: 207)

Scarica schizzo -
sketch_mar23f.zip [338 b] (download: 157)

#include  // collega la libreria per lavorare con il sensore a ultrasuoni HC-SR04
iarduino_HC_SR04 hcsr (2,3); // indica i contatti Trig ed Echo
int temp = 0; // temperatura grezza
float temp2 = 0; // valore di temperatura pronto

void setup () {// esegui 1 volta
  Serial.begin (9600); // avvia il monitor della porta
  pinMode (A0, INPUT); // indica il contatto A0 come input
}

void loop () {// ripete un numero infinito di volte
  temp = analogRead (A0); // legge il valore del contatto A0 e gli assegna la variabile temp
  temp2 = (temp / 1023.0) * 5.0 * 1000/10; // calcola il valore grezzo in base alla formula per ottenere il valore di temperatura finito
  Serial.println (hcsr.distance (temp2)); // scrive l'intervallo pronto nel monitor della porta
  ritardo (1000); // ritardo di 1 secondo
}

Ed ecco uno schizzo per un display LCD-
Scarica schizzo -
sketch_mar23f-1.zip [861 b] (download: 139)


#include  // collega la libreria per lavorare con il sensore a ultrasuoni HC-SR04
#include  // collega la libreria per lavorare con il display sul bus I2C

LiquidCrystal_I2C lcd (0x27, 16, 2); // denota (indirizzo, colonne, linee)
iarduino_HC_SR04 hcsr (2,3); // indica i contatti Trig ed Echo

int temp = 0; // temperatura grezza
float temp2 = 0; // valore di temperatura pronto

void setup () {// esegui 1 volta
  lcd.init (); // inizializza il display
  lcd.backlight (); // attiva la retroilluminazione del display
  pinMode (A0, INPUT); // indica il contatto A0 come input
}

void loop () {// ripete un numero infinito di volte
  temp = analogRead (A0); // legge il valore del contatto A0 e gli assegna la variabile temp
  temp2 = (temp / 1023.0) * 5.0 * 1000/10; // calcola il valore grezzo in base alla formula per ottenere il valore di temperatura finito
  lcd.setCursor (2, 0); // posiziona il cursore su 2 colonne e 0 righe
  lcd.print (temp2); // scrivi la distanza
  lcd.setCursor (5,0); // posiziona il cursore sulla 5a colonna e 0a riga
  lcd.print ("cm"); // scrivi cm
  ritardo (1000); // ritardo di 1 secondo
}


Scrivi commenti e domande, risponderò a tutto!
10
10
10

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
13 commento
Ospite Alexander
Da dove viene questa formula:
temp2 = (temp / 1023.0) * 5.0 * 1000/10
Potresti dirmi più in dettaglio, da dove provengono questi valori?
Vorrei anche aggiungere il punto 4. Non utilizzare per le misurazioni, solo per i dispositivi di automazione!
Capisco (a giudicare dai parametri sopra) che le istruzioni per questo assomigliano a questo:
1. Prendi l'HC-SR04 nella mano sinistra e l'Atoruchka, o indicatore, nella tua destra.
2. Stimare la distanza a occhio e annotarla.
3. Riposizionare l'HC-SR04 nella confezione.
bene
Citazione: “Caratteristiche del telemetro ad ultrasuoni HC-SR04
Campo di misura: da 2 cm a 400 cm.
Precisione di misurazione: ± 1 cm (alla massima distanza ± 3 cm).

Domanda: Quanto è "pesante" la correzione della temperatura nell'errore totale?
Credo che il prodotto fatto in casa non sia stato implementato, non ci sono foto del dispositivo finito e del suo funzionamento.
Considero questo prodotto fatto in casa come "infantile", ma l'articolo non mostra o mastica come collegare il display. Per i principianti, i nostri siti non sono chiari, ma quelli esperti non ne hanno bisogno. Masticare e mostrare tutto il fatto in casa.
Citazione: Anton Martyanov
In realtà, differiscono non solo nell'iscrizione ma anche nella precisione!

Secondo la documentazione o ti sei imbattuto in questo?
L'autore
In realtà, differiscono non solo nell'iscrizione ma anche nella precisione!
Ma non è abbastanza ??? capo Ad esempio, anche a me non piace quando i segni sono scritti sotto il mezzo metro !!! sorrisi DONTKNOW
E perché è ancora male, tranne per l'altezza della marcatura?
L'autore
La cattiva è la scritta HC-SR04 0,5 cm più in basso
Molto preciso
E qual è la precisione? Cosa è stato usato come riferimento? Qual è l'errore di temperatura?
Tieni presente che HC-SR04 è disponibile in due forme:
Ne ho una buona
E quale pensi che sia cattivo?
Ti dirò dalla mia esperienza che un telemetro ad ultrasuoni, come la "roulette senza contatto", è un piacere !!!
Uno è in giro come inutile ...
E non a causa della precisione insufficiente, ma perché possono misurare solo la distanza da una parete sufficientemente grande di materiale solido ... Ma dalla parete posteriore di una nicchia in questa parete - assolutamente no !!! E non funzionerà anche se questo muro è disseminato di mobili e altre cose, e c'è solo una piccola "finestra" libera da disordine ... (In questo caso, è più facile non liberare il muro da tutto questo, ma usare solo la roulette normale).
Ancora una volta, prova a misurare la distanza da un piolo guidato nel terreno !!!

E alla serra?)))
E al muro coperto di tessuto?)))
E alla facciata, già incollata con lastre di lana minerale, ma ancora senza il rivestimento finale?))))
E prima di ciascuna delle dieci travi disposte in fila?
E dal muro all'estremità della tavola già inchiodata al soffitto per tagliare la lunghezza richiesta e chiudere questo "buco" ???

Nessuna delle precedenti funzionerà per te !!!

E poi cosa misurare con esso durante la riparazione, o in un cantiere, ad esempio ??? Solo le dimensioni e l'area dei locali, senza mobili ???

In breve, l'ho gettato sullo scaffale un paio di anni fa e, ricordando il proverbio sull'avarizia che paga due volte, ho deciso che dovevo comprare un laser ...

Ti consigliamo di leggere:

Passalo per lo smartphone ...