ciao a tutti, io volevo collegare 2 sonde temperatura su 2pin diversi,
fino a qui ci sono arrivato.
ma oltre non so come correggere il codice
come chiamo il secondo sensore per ottenere il lì valore?
#include <OneWire.h>
#include <DallasTemperature.h>
// Il terminale data del sensore è connesso
// alla porta 2 e 3di Arduino
#define ONE_WIRE_BUS_IN 2
#define ONE_WIRE_BUS_OUT 3
// Imposta la comunicazione oneWire per comunicare
// con un dispositivo compatibile
OneWire oneWire(ONE_WIRE_BUS_IN);
OneWire oneWire(ONE_WIRE_BUS_OUT);
// Passaggio oneWire reference alla Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// Start up the library
sensors.begin();
Serial.begin(9600);
}
void loop(void)
{
sensors.requestTemperatures(); // Invia il comando di lettura delle temperatura
Serial.println("T1 ");
Serial.println(sensors.getTempCByIndex(0));
Serial.print (" C");
sensors.requestTemperatures(); // Invia il comando di lettura delle temperatura
Serial.println("T2 ");
Serial.println(sensors.getTempCByIndex(0)); \\come chiamp il secondo sensore
Serial.println (" C");
Perché li vuoi collegare su 2 pin diversi?
grazie della risposta per farlo piu' semplice visto che ho pin liberi mi evito
di cercare il loro indirizzo e anche per un eventuale cambio senza toccare il programma
Prova cosi:
#include <OneWire.h>
#include <DallasTemperature.h>
// Il terminale data del sensore è connesso
// alla porta 2 e 3di Arduino
#define ONE_WIRE_BUS_IN 2
#define ONE_WIRE_BUS_OUT 3
// Imposta la comunicazione oneWire per comunicare
// con un dispositivo compatibile
OneWire oneWireA(ONE_WIRE_BUS_IN);
OneWire oneWireB(ONE_WIRE_BUS_OUT);
// Passaggio oneWire reference alla Dallas Temperature.
DallasTemperature sensorsA(&oneWireA);
DallasTemperature sensorsB(&oneWireB);
per stampare cosi va bene il comando?
Serial.println("T1 ");
Serial.println(sensors.getTempCByIndex(0));
Serial.print (" C");
sensors.requestTemperatures(); // Invia il comando di lettura delle temperatura
Serial.println("T2 ");
Serial.println(sensors.getTempCByIndex(1)); \\come chiamp il secondo sensore
Serial.println (" C");
ho trovato questo, puo' funzionare ?
#include <OneWire.h>
#include <LiquidCrystal.h>
const byte PIN_SONDA1 = 2;
const byte PIN_SONDA2 = 3;
const byte PIN_SONDA3 = 4;
OneWire ds1(PIN_SONDA1);
OneWire ds2(PIN_SONDA2);
OneWire ds3(PIN_SONDA3);
LiquidCrystal lcd(8,9,4,5,6,7);
void setup(void) {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(" DS18B20 LCD ");
delay( 3000 );
}
void loop(void) {
float 1temperature = ds1.read();
float 2temperature = ds2.read();
float 3temperature = ds3.read();
Serial.println(1temperature);
Serial.println(2temperature);
Serial.println(3temperature);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Temperatura: ");
lcd.setCursor(0,1);
lcd.print(1temperature);
delay(1000); //just here to slow down the output so it is easier to read
}
per stampare cosi va bene il comando?
Non funziona quello che ti avevo messo?
ho trovato questo, puo' funzionare ?
Provando puoi risponderti da solo! 
Non era più semplice usare la libreria Dallas per leggere le temperature?
ho cercato per la libreria dallas ed ho trovato questo , ora non ho 2 sonde ma domani se mi arrivano lo provo
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS_1 2
#define ONE_WIRE_BUS_2 4
OneWire oneWire_in(ONE_WIRE_BUS_1);
OneWire oneWire_out(ONE_WIRE_BUS_2);
DallasTemperature sensor_inhouse(&oneWire_in);
DallasTemperature sensor_outhouse(&oneWire_out);
void setup(void)
{
Serial.begin(9600);
Serial.println("Dallas Temperature Control Library Demo - TwoPin_DS18B20");
sensor_inhouse.begin();
sensor_outhouse.begin();
}
void loop(void)
{
Serial.print("Requesting temperatures...");
sensor_inhouse.requestTemperatures();
sensor_outhouse.requestTemperatures();
Serial.println(" done");
Serial.print("Inhouse: ");
Serial.println(sensor_inhouse.getTempCByIndex(0));
Serial.print("Outhouse: ");
Serial.println(sensor_outhouse.getTempCByIndex(0));
}