Sommario:

Calibrazione del sensore DS18B20 con Arduino UNO: 3 passaggi (con immagini)
Calibrazione del sensore DS18B20 con Arduino UNO: 3 passaggi (con immagini)

Video: Calibrazione del sensore DS18B20 con Arduino UNO: 3 passaggi (con immagini)

Video: Calibrazione del sensore DS18B20 con Arduino UNO: 3 passaggi (con immagini)
Video: Sensore di umidità del terreno (Sensori con Arduino) 2024, Luglio
Anonim
Calibrazione del sensore DS18B20 con Arduino UNO
Calibrazione del sensore DS18B20 con Arduino UNO
Calibrazione del sensore DS18B20 con Arduino UNO
Calibrazione del sensore DS18B20 con Arduino UNO
Calibrazione del sensore DS18B20 con Arduino UNO
Calibrazione del sensore DS18B20 con Arduino UNO

DISCLAIMER:

Il dispositivo che vedete nelle immagini viene utilizzato in un altro progetto come termostato per il processo di sviluppo del film. Puoi trovare quel progetto qui. Per calibrare un sensore, o più di uno, ti servirà proprio quello che troverai in questo progetto, niente di più, ed è anche piuttosto semplice! Andiamo!

Passaggio 1: prepara il tuo dispositivo

Prepara il tuo dispositivo
Prepara il tuo dispositivo

Ecco un elenco di ciò di cui hai bisogno:

  1. Arduino UNO (o MEGA)
  2. Sensore/i DS18B20
  3. Resistenza 4kOhm - 5kOhm (ho usato una 5k1Ohm)
  4. Schermo LCD per leggere i valori (puoi anche usare un laptop e leggerli semplicemente su un monitor seriale)
  5. Uno schizzo che usa il sensore e mostra in qualche modo i valori

Prima di tutto devi collegare i moduli e il sensore al controller. Lascio a te la parte complicata dell'LCD per la ricerca sul web e ti dirò solo come collegare il sensore.

Di solito questi sensori sono dotati di tre fili colorati: nero, rosso, giallo. I primi due sono per l'energia e il terzo è per i dati. Collega il nero a GNN, il rosso a Vcc (5V) e il giallo su un ingresso analogico, diciamo A0.

Ora collega la resistenza tra il giallo e il rosso per completare i collegamenti.

Collega anche il display LCD (suggerisco un semplice LCD 16x2 con connessione i2c per utilizzare solo 4 fili in totale) e il gioco è fatto con fili e cavi.

Ora lo schizzo che è semplicissimo:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasSensore di temperatura1(&ourWire1); #include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd(0x27, 16, 2); float RawValue =0;

void setup(){ lcd.init(); lcd.backlight(); sensore1.begin(); sensor1.setResolution(11); } void loop(){ sensor1.requestTemperatures(); float RawValue = sensor1.getTempCByIndex(0); lcd.setCursor(0, 0); lcd.print("Sens.1"); lcd.print(RawValue, 1); }

Come puoi vedere utilizziamo la libreria Dallas Temperature e uno schermo LCD con connessione i2c.

Nel setup avviamo LCD e sensore e nel loop richiediamo semplicemente la temperatura e memorizziamo il valore all'interno della variabile RawValue per visualizzarla sul display LCD.

Se vuoi renderlo più semplice, usa semplicemente il monitor seriale con il seguente schizzo

#include "Wire.h"#include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasSensore di temperatura1(&ourWire1);

float RawValue =0;

void setup(){

ritardo(1000); Serial.begin(9600); sensore1.begin(); sensore1.setResolution(11);

}

void loop(){ sensor1.requestTemperatures(); float RawValue = sensor1.getTempCByIndex(0); Serial.print("Sens.1"); Serial.println(RawValue, 1); }

Ora seguimi nel cuore del progetto per calibrare il sensore.

Passaggio 2: calibrazione a due punti

Calibrazione a due punti
Calibrazione a due punti
Calibrazione a due punti
Calibrazione a due punti
Calibrazione a due punti
Calibrazione a due punti

Qualcosa da sapere prima

Per calibrare un termosensore, devi misurare qualcosa di cui conosci la temperatura. Il modo più semplice per farlo a casa è usare acqua bollente e un bagno di ghiaccio fondente, chiamato anche bagno a "punto triplo". In quei casi sappiamo che l'acqua bolle a 100°C sul livello del mare. Tieni presente che per effettuare una misurazione precisa dovresti conoscere la tua altitudine e calcolare la temperatura di ebollizione corretta lì.

Puoi verificarlo qui!

Ad essere onesti dovresti controllare la pressione atmosferica e non l'altitudine. Ma quel modo è abbastanza preciso.

Il bagno a triplo punto, o bagno di ghiaccio, è la temperatura alla quale l'acqua esiste nei tre stati solido, liquido e gas, tale temperatura è 0, 01°C. Useremo, per semplificare, 0°C.

Conoscendo il valore letto dal sensore e il valore che dovrebbe essere, possiamo modificare il valore grezzo del DS18B20 in qualcosa di più corretto.

NOTA: potresti anche usare più temperatura per calibrare il sensore semplicemente mettendolo in qualche altra sostanza di cui conosci il punto di ebollizione come Etere (35°C), Pentano (36, 1°C), Acetone (56°C) o Etanolo (78, 37°C), ma quelle sostanze bollenti producono gas altamente infiammabili! Quindi non farlo!

Acqua bollente:

Mettere un po' d'acqua in una pentola e scaldarla finché non bolle (si formano bolle di gas e l'acqua si agita). Immergi il sensore dove non tocca nient'altro che l'acqua. Attendi un paio di minuti e leggi l'LCD o il monitor seriale

La temperatura dovrebbe rimanere la stessa per almeno un minuto. Se è così, scrivi quel valore. Questo è il tuo: RawHigh value.

Bagno triplo:

Ora prendi un bicchiere grande (non ti serve niente di enorme né una pentola) e riempilo fino al bordo di cubetti di ghiaccio. Prova a usare cubetti di ghiaccio di piccole dimensioni. Ora riempi l'80% del bicchiere con acqua fredda. Riempi di ghiaccio se la leva cerca di abbassarsi.

Ora metti il tuo sensore all'interno della cosa acqua/ghiaccio e aspetta un minuto e mezzo. Leggere la temperatura che dovrebbe rimanere la stessa per almeno 30 secondi. Se è così, scrivilo, che è il tuo valore RawLow.

Passaggio 3: usa i valori che ottieni nel modo giusto

Quindi, ora hai alcuni valori importanti:

  • RawAlto
  • RawLow
  • RiferimentoAlto
  • RiferimentoBasso

I valori di riferimento sono ovviamente 99,9°C per l'acqua bollente (alla mia altitudine di 22m), e 0°C per il bagno di ghiaccio fondente. Ora calcola gli intervalli per quei valori:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Ora sei pronto per utilizzare quel sensore in qualsiasi altro progetto, assicurandoti che ti darà una misurazione corretta. Come? Usando il valore che hai ottenuto qui nel progetto creerai con quel sensore.

Nel tuo futuro progetto dovrai usare i valori che hai letto in questo e ti suggerisco di farlo usando gli stessi nomi che ho usato qui.

Dichiara le variabili prima della sezione void setup() in questo modo:

float RawHigh = 99,6;float RawLow = 0,5;float ReferenceHigh = 99,9;float ReferenceLow = 0;float RawRange = RawHigh - RawLow;float ReferenceRange = ReferenceHigh - ReferenceLow;

Quindi, ogni volta che utilizzerai il sensore, potrai utilizzare la seguente formula per calcolare il CorrectedValue:

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue è ovviamente la lettura del sensore.

Questo è tutto!

Ora sai come calibrare il tuo sensore DS18B20 o qualsiasi altro sensore che utilizzerai! Divertiti!

Consigliato: