CONTENUTO ►
Come collegare il sensore di temperatura DS18B20 e DS18B22 ad Arduino per realizzare un termometro utilizzando la libreria OneWire – lo vedremo in questa lezione. A differenza del sensore di temperatura e umidità DHT22, il sensore funziona in un ampio intervallo di temperatura e può misurare temperature inferiori allo zero. Il sensore di temperatura integrato DS18B20 per Arduino Uno ha una risoluzione di misurazione fino a 0,0625 °C.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- sensore di temperatura DS18B20
- LED e resistenza
- breadboard
- cavi di collegamento
- libreria DallasTemperature.h e OneWire.h
Sensore di temperatura DS18B20 datasheet, pinout
Il sensore digitale DS18B20 invia i dati al microcontrollore tramite il bus Wire e può lavorare sulla stessa linea con molti altri dispositivi. Ogni sensore DS18B20 ha un codice personale a 64 bit, che consente al microcontrollore Arduino di comunicare con più moduli sullo stesso bus. Il sensore integrato DS18B22 converte la temperatura ambiente in un codice digitale, il che significa che non è necessario un ADC aggiuntivo per la connessione.
Caratteristiche del sensore di temperatura DS18B20 Arduino:
- Tensione di alimentazione: 3,3 – 5 V
- Campo di misura: da -55 a 125°C (da -67°F a +257°F)
- Precisione: ±0,5°C da -10°C a +85°C
- Risoluzione: da 9 a 12 bit configurabile
- Identificatore unico: a 64 bit
- Tempo di risposta: < 750 ms
- Possibilità di più sensori sullo stesso pin
Per collegare il DS18b20 ad Arduino, utilizzare una breadboard. La gamba centrale del sensore (DATA) deve essere collegata al pin A1 della scheda Arduino Uno e tirare questo bus attraverso una resistenza da 4,7 kOhm fino alla linea di +5 Volt. Collegare il sensore di temperatura DS18B20 al microcontrollore Arduino Uno secondo lo schema mostrato nella figura seguente e caricare il programma con la libreria DallasTemperature.
Come collegare sensore di temperatura DS18B20 Arduino
La libreria DallasTemperature Sensors OneWire per Arduino rende il lavoro con il sensore DS18B20 molto più facile e semplice. La descrizione della libreria DallasTemperature.h dice che il modulo del sensore è controllato da alcune semplici funzioni, che sono presentate nello sketch seguente. Lo schema di cablaggio del sensore è mostrato nell’immagine qui sopra; è possibile scaricare la libreria DallasTemperature.h per Arduino sul nostro sito web.
Programma Arduino per sensore di temperatura digitale DS18B20
#include "OneWire.h" #include "DallasTemperature.h" OneWire oneWire(A1); DallasTemperature ds(&oneWire); void setup() { Serial.begin(9600); ds.begin(); } void loop() { ds.requestTemperatures(); int t = ds.getTempCByIndex(0); Serial.print(t); Serial.println( "C"); if (t > 25) { digitalWrite(10, HIGH); } else { digitalWrite(10, LOW); } delay(1000); }
Spiegazione del codice per sensore digitale di temperatura DS18B20 Arduino:
- le informazioni vengono inviate alla porta seriale dell’IDE Arduino;
- le librerie DallasTemperature e OneWire devono essere installate prima di caricare il programma.
Come collegare del sensore digitale DS18B20 e LED
Il sensore digitale DS18B20 può essere realizzato in diverse varianti (vedi foto sopra), da cui dipende solo lo schema di collegamento del sensore di temperatura ad Arduino NANO o UNO. Nel primo caso è necessario utilizzare una resistenza di pull-up da 4,7 kOhm. Il sensore, sotto forma di modulo già pronto, è già dotato di una resistenza. La terza opzione è un sensore in un alloggiamento sigillato, che può essere utilizzato in sicurezza in acqua calda.
Programma Arduino per calibrazione dei sensori DS18B20
#include "OneWire.h" #include "DallasTemperature.h" OneWire oneWire(A1); DallasTemperature ds(&oneWire); void setup() { Serial.begin(9600); ds.begin(); pinMode(10, OUTPUT); } void loop() { ds.requestTemperatures(); int t = ds.getTempCByIndex(0); Serial.print(t); Serial.println( "C"); if (t > 25) { digitalWrite(10, HIGH); } else { digitalWrite(10, LOW); } delay(1000); }
Spiegazione del codice per calibrazione dei sensori DS18B20 Arduino:
- per il sensore impermeabile DS18B20 è possibile utilizzare qualsiasi porta generica del microcontrollore, specificandola nello sketch.
Conclusione. Il sensore impermeabile DS18B20 e DS18B22 funzionano tramite interfaccia a filo; questo metodo di connessione richiede solo un bus dati e un resistore da 4,7 kOhm come “Pull-up”. Tutti i sensori DS18B20 per Arduino contengono il proprio codice a 64 bit memorizzato nella ROM del dispositivo. Per questo motivo, il numero di sensori collegati al microcontrollore tramite un bus con la libreria OneWire.h è quasi illimitato.
Lascia un commento