[RISOLTO]Codice per DALLAS DS18B20 senza alcuna libreria

Buonasera!
Volevo utilizzare un sensore DALLAS DS18B20 per la misurazione della temperatura... su internet ho trovato codici che usano delle librerie che io non ho mai utilizzato e non conosco..
la mia domanda da neofita era se era possibile creare un semplice codice che non utilizzi queste librerie (OneWire e DallasTemperature)...
Grazie mille!!

ciao LucaAlba98 :slight_smile:

le librerie hanno lo scopo principale di semplificare notevolmente lo sviluppo software di un programma :slight_smile:

Uso spesso il Sensore Dallas DS18B20 ... è uso sempre la sua libreria che è molto comoda :slight_smile:

Se vuoi ti posso postare un esempio semplice e commentato (anche se in rete ne esistono già) di come funziona la libreria :slight_smile:

così che ti fai un'idea della semplicità :slight_smile:

MD

va bene! grazie mille! voglio cercare di capire come funziona dato che ho dei problemini a quanto pare...

ecco un esempio moooolto semplice per far funzionare il sensore :slight_smile:

premesso che :
1- conosca bene la piedinatura del sensore ( pin 1 GND , pin 2 SEGNALE, pin 3 +5V)
2- collega GND (pin 1) del sensore con il GND di arduino
3- collega +5V (pin3) del sensore con i +5V di arduno
4- fai un ponticello con una resistenza da 4700 Ohm (4,7KOhm) tra il pin 2 e il pin 3
5- il pin 2 collegalo all’ingresso analogico A0

codice :

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 14
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);

void setup() 
{
delay(1000);
Serial.begin(9600);
Serial.println("Misura la temperatura ");
delay(1000);
sensors.begin();
}

void loop() 
{

sensors.requestTemperatures();
Serial.print(sensors.getTempCByIndex(0));
delay(500);
}

dal momento che mi hai detto di essere un neofita prendi per buono le prime 5 righe del codice che in poche parole inizializzano le due librerie necessarie :slight_smile:

i comandi a te necessari sono :

1- sensors.begin(); —> inizializza il sensore
2- sensors.requestTemperatures(); —> richiede al sensore di far partire la lettura
3- sensors.getTempCByIndex(0); —> richiede al sensore di INVIARTI la lettura

Se vuoi puoi salvare la lettura in una varibile di tipo float :

float lettura = sensors.getTempCByIndex(0);

spero di esserti stato di aiuto, ho cercato di semplificare al massimo le cose :slight_smile:

MD

ok gentilissimo! ultima cosa: da dove posso prendere la libreria "DallasTemperature" che usando linux non riesco ad utilizzarla..

io uso l'ide arduino 1.6.7 :slight_smile:
ma già dalle versioni precendenti puoi installare le librerie direttamente da li :slight_smile:

  • apri l'IDE
  • vai sul menù Sketch
  • Inclusioni librerie
  • Gestione librerie...
    e nel campo di ricerca inserisci la librerie che vuoi che venga scaricata :slight_smile:

spero che anche per l'ide di linux sia così :slight_smile:

buon lavoro :slight_smile:

P.S: nel programma scritto prima sostituisci nel void loop Serial.print con Serial.println ahaha se no non ci capisci niente nel monitor seriale :slight_smile:

MD

Oggi ho testato il codice e i collegamenti che mi hai consigliato ed è andato tutto alla perfezione!! Grazie mille!!!!!! :slight_smile:

Bene sono contento di esserti stato di aiuto :slight_smile:

Buon lavoro ahahah

MD