Sonda temperatura DS18B20

Salve,
inizio dicendo che sono alle prime armi con arduino quindi vi chiedo venia se dico qualche strafalcione,
ho comprato una sonda termica impermeabile modello DS18B20 ed ho alcune domande da porvi:
-cercando su internet come programmarla ho trovato due codici ma nessuno dei due funziona correttamente; qualcuno sa aiutarmi?

  • devo collegarla a un piedino digitale o analogico? le informazioni che ho trovato io sono molto confusionarie....
    Attendo risposta,
    Grazie mille

Prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione ...

... poi, in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) e quindi, a maggior ragione, il tuo post nell'area in Inglese è stato cancellato ...

... infine, essendo questo il tuo primo post, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il REGOLAMENTO ... Grazie.

Guglielmo

Usa un pin digitale qualunque. Eventualmente anche uno analogico, perché tutti i pin analogici di Arduino possono funzionare anche come digitali.

Detto questo, la sonda usa un protocollo di comunicazione chiamato OneWire, ma in prima approssimazione puoi non preoccupartene, visto che esiste un'ottima libreria che pensa a tutto: Miles Burton - Innovative engineering for pretty much anything. Tra gli esempi c'è praticamente tutto quel che ti serve.

Mi scuso con Guglielmo per non avere effettuato la presentazione subito...
per quanto riguarda il post cancellato avevo cercato di eliminarlo anche io una volta capito di aver sbagliato sezione e mi scusa di nuovo...
vado subito a leggere il regolamento!!

per quanto la libreria OneWire avevo già provato a usarla prendendo spunto da una sketch trovato in rete adesso provo ad usare gli esempi ufficiali... Intanto Grazie mille!

Uso il sensore DS18B20 con successo con questo codice:

// includo librerie per gestione DS18B20 

#include <OneWire.h>
#include <DallasTemperature.h>


// Il terminale "data" del DS18B20 è connesso alla porta 2 di Arduino e imposto la comunicazione con esso

#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);


DallasTemperature sensors(&oneWire);         // Passaggio oneWire reference alla Dallas Temperature. 


void setup(void)

{
  sensors.begin();                           // avvia libreria DS18B20
  Serial.begin(9600);
}

void loop(void)
{ 

  sensors.requestTemperatures();            // Invia il comando di lettura delle temperatura
  Serial.print("Temperatura di: ");         // stampa a video la temperatura
  Serial.print(sensors.getTempCByIndex(0));
  Serial.println(" C"); 
}

ricordati di cablare la resistenza da 4.7K come vedi in tutti gli schemi.

Ciao ciao

ciao,
la costante definita all' inizio corrisponde con il piedino a cui devo attaccare la sonda?
senza resistenza non funziona?

se ti riferisci a questo: #define ONE_WIRE_BUS 2

si in questo caso 2 è il pin digitale a cui cablare la sonda, ma può essere 10,9,8 ecc ecc

La resistenza è necessaria, a meno di non usate il sensore in modalità parassita, oppure con il pull-up interno, come descritto qua: Save the Earth One Resistor at a Time – External pull-up resistor no longer needed for DS18B20 temp sensor | josh.com.