/* Colani.nl Meerdere DS18B20 Temperatuur Sensors op 1 draad (1wire) Verbindingen: DS18B20 Pinnen (van links naar rechts, pinnen naar beneden, platte kant naar boven) - Links = GND - Midden = Signaal (Pin 3): (met een 3.3K aan +3 Volt of een 4.7K weerstand aan +5 Volt) - Rechts = +5 or +3.3 Volt Vragen: arduino@colani.nl Gebaseerd op een voorbeeld van Rik Kretzinger /*-----( Importeer benodigde libraries )-----*/ // Download 1-wire Library hier: http://colani.nl/arduino/category/libraries/ #include // Download DallasTemperature Librarie hier: http://colani.nl/arduino/category/libraries/ #include /*-----( Verklaar Constanten en Pin Nummers )-----*/ #define ONE_WIRE_BUS_PIN 3 /*-----( Verklaar objecten )-----*/ // Setup een oneWire voorbeeld om te communiceren met OneWire sensoren OneWire oneWire(ONE_WIRE_BUS_PIN); // Geef de oneWire gegevens door aan Dallas Temperature. DallasTemperature sensors(&oneWire); /*-----( Verklaar Variablelen )-----*/ // Geef de addressen op van je 1-Wire temperatuur sensors. // Gebruik deze sketch om de adressen van je sensors te achterhalen. // http://colani.nl/arduino/wp-content/uploads/sketchbook/lees_DS18B20_adressen.ino // Ik heb er hier 5 in gebruik, maar deze lijst kun je naar behoefte aanpassen. DeviceAddress Probe01 = { 0x28, 0xFF, 0x82, 0x61, 0x2B, 0x04, 0x00, 0x71 }; DeviceAddress Probe02 = { 0x28, 0xFF, 0x06, 0x6A, 0x2D, 0x04, 0x00, 0xE0 }; DeviceAddress Probe03 = { 0x28, 0xFF, 0x26, 0x84, 0x2C, 0x04, 0x00, 0xEF }; DeviceAddress Probe04 = { 0x28, 0xFF, 0x45, 0x5B, 0x2B, 0x04, 0x00, 0x51 }; DeviceAddress Probe05 = { 0x28, 0xFF, 0xFD, 0xBE, 0x22, 0x14, 0x00, 0x8A }; void setup() /****** SETUP: Een keer ******/ { // starten van seriele poort om resultaten te tonen Serial.begin(9600); Serial.print("Initialiseren Temperatuur Control Library Versie "); Serial.println(DALLASTEMPLIBVERSION); // Initializeren temperatuur meet librarie sensors.begin(); // Stel de resloutie in op 10 bit // Dit kan van 9 tot 12 bits .. lager is sneller sensors.setResolution(Probe01, 10); sensors.setResolution(Probe02, 10); sensors.setResolution(Probe03, 10); sensors.setResolution(Probe04, 10); sensors.setResolution(Probe05, 10); }//--(Einde setup )--- void loop() /****** LOOP: loopt voor eeuwig ******/ { delay(1000); Serial.println(); Serial.print("Aantal sensoren gevonden op pin / bus 2 = "); Serial.println(sensors.getDeviceCount()); Serial.print("Opvragen temperatuur... "); Serial.println(); // Temperatuur opvragen alle sensoren op bus 2 sensors.requestTemperatures(); Serial.print("Sensor 01 temperatuur is: "); printTemperature(Probe01); Serial.println(); Serial.print("Sensor 02 temperatuur is: "); printTemperature(Probe02); Serial.println(); Serial.print("Sensor 03 temperatuur is: "); printTemperature(Probe03); Serial.println(); Serial.print("Sensor 04 temperatuur is: "); printTemperature(Probe04); Serial.println(); Serial.print("Sensor 05 temperatuur is: "); printTemperature(Probe05); Serial.println(); }//--(einde loop )--- /*-----( Verklaren door gebruiker geschreven functies )-----*/ void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); if (tempC == -127.00) { Serial.print("Fout bij opvragen temperatuur "); } else { Serial.print("C: "); Serial.print(tempC); Serial.print(" F: "); Serial.print(DallasTemperature::toFahrenheit(tempC)); } }// Einde printTemperatuur //*********( Einde )***********