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
Dovrebbe essere così:
Successivamente compiliamo lo schizzo.
Scarica la libreria per il sensore HC-SR04 -
Scarica schizzo -
#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 -
#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!