Lettura della temperatura con DS18B20
Il circuito di prova è riportato in figura:
la resistenza può avere qualunque valore compreso tra 1KOHM e 10KOHM e serve per permettere la comunicazione sul bus OneWire.
Il codice da caricare è il seguente:
// Inclusione delle librerie #include <OneWire.h>#include <DallasTemperature.h> // Definizione del pin dove è connesso il sensore #define ONE_WIRE_BUS 2 // Si istanzia un bus OneWire OneWire oneWire(ONE_WIRE_BUS); // Si passa l'istanza del bus al protocollo Dallas che legge il sensore DallasTemperature sensors(&oneWire); void setup(void) { // Configurazione porta seriale Serial.begin(9600); Serial.println("Dallas Temperature IC Control Library Demo"); // Avvio dei sensori sensors.begin(); } void loop(void) { // invocando la funzione sensors.requestTemperatures() viene avviata // la lettura di TUTTI i sensori di temperatura connessi al bus Serial.print(" Requesting temperatures..."); sensors.requestTemperatures(); // Send the command to get temperature readings Serial.println("DONE"); // usando la funzione sensors.getTempCByIndex(N) si ottiene la // temperatura del sensore indicato sostituendo un numero al posto di N // il primo sensore del bus è ha indice N=0 Serial.print("Temperature is: "); Serial.println(sensors.getTempCByIndex(0)); delay(1000); }
Una volta caricato il codice sul monitor seriale è possibile leggere la temperatura rilevata
OSSERVAZIONI:
- Nel caso in cui un sensore non sia rilevato o tramite la funzione sensors.getTempCByIndex() venga richiesto un ID non presente il valore di temperatura indicato è -127.0 °C
Ultime modifiche: venerdì, 9 dicembre 2022, 15:52