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:

  1. 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