I add another ds18B20 and I can display temperature correctly, but the output "tank3" is not working with tank3temp. He is only reacting if tank2temp reaches that temperature.
What I did wrong in the code?
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int tank1BLED = 37;
int tank1GLED = 39;
int tank1RLED = 41;
int tank2BLED = 43;
int tank2GLED = 45;
int tank2RLED = 47;
// Data wire is plugged into pin 8 on the Arduino
#define ONE_WIRE_BUS 8
// Setup a oneWire instance to
//communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// Assign the addresses of your 1-Wire temp sensors.
DeviceAddress tank1Thermometer = { 0x28, 0x87, 0x57, 0xDB, 0x02, 0x00, 0x00, 0x6F };
DeviceAddress tank2Thermometer = { 0x28, 0x12, 0xB8, 0x5F, 0x04, 0x00, 0x00, 0x86 };
DeviceAddress tank3Thermometer = { 0x28, 0x6A, 0xBD, 0x60, 0x03, 0x00, 0x00, 0xC5 };
int tank1 = 31; // pump control pins
int tank2 = 33; // pump control pins
int tank3 = 35; // pump control pins
float tank1temp = 0;
float tank2temp = 0;
float tank3temp = 0;
void setup(void)
{
 // Start up the library
 sensors.begin();
 // set the resolution to 10 bit (good enough?)
 sensors.setResolution(tank1Thermometer, 10);
 sensors.setResolution(tank2Thermometer, 10);
 sensors.setResolution(tank3Thermometer, 10);
Â
Â
 pinMode(tank1BLED, OUTPUT); // Tank LED's
 pinMode(tank1GLED, OUTPUT);
 pinMode(tank1RLED, OUTPUT);
 pinMode(tank2BLED, OUTPUT);
 pinMode(tank2GLED, OUTPUT);
 pinMode(tank2RLED, OUTPUT);
 Â
 digitalWrite(tank1BLED, HIGH); // set Tank LED's off
 digitalWrite(tank1GLED, HIGH);
 digitalWrite(tank1RLED, HIGH);
 digitalWrite(tank2BLED, HIGH);
 digitalWrite(tank2GLED, HIGH);
 digitalWrite(tank2RLED, HIGH);
Â
lcd.begin(20,4);
// columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear();
// start with a blank screen
pinMode(tank1, OUTPUT); // Tank heaters
pinMode(tank2, OUTPUT);
pinMode(tank3, OUTPUT);
}
void printTemperature(DeviceAddress deviceAddress)
{
 float tempC = sensors.getTempC(deviceAddress);
 float t1tempC = sensors.getTempC(tank1Thermometer);
 float t2tempC = sensors.getTempC(tank2Thermometer);
 float t3tempC = sensors.getTempC(tank2Thermometer);
 if (tempC == -127.00) {
lcd.print("Err");
} else {
// lcd.print(tempC);
// lcd.print("/");
tank1temp = t1tempC;
tank2temp = t2tempC;
tank3temp = t3tempC;
lcd.print(tempC);
 }
}
void loop(void)
{
 delay(2000);
 sensors.requestTemperatures();
Â
lcd.setCursor(0,0);
lcd.print("T1:");
printTemperature(tank1Thermometer);
lcd.setCursor(8,0);
lcd.print("T2:");
printTemperature(tank2Thermometer);
lcd.setCursor(0,1);
lcd.print("T3:");
printTemperature(tank3Thermometer);
if (tank1temp <= 25)
{
 digitalWrite(tank1, LOW); // pump1 ON
 digitalWrite(tank1RLED, HIGH); // read led OFF
 digitalWrite(tank1GLED, HIGH); // green led OFF
 digitalWrite(tank1BLED, HIGH); // blue led ON
}
if (tank1temp >= 26.5 && tank1temp <= 28)
{
 digitalWrite(tank1, HIGH);
 digitalWrite(tank1RLED, HIGH);
 digitalWrite(tank1GLED, HIGH);
 digitalWrite(tank1BLED, HIGH);
}
if (tank1temp >= 28)
{
 digitalWrite(tank1, LOW);
 digitalWrite(tank1RLED, HIGH);
 digitalWrite(tank1GLED, HIGH);
 digitalWrite(tank1BLED, HIGH);
}
if (tank2temp <= 25)
{
 digitalWrite(tank1, HIGH);
 digitalWrite(tank2BLED, HIGH);
 digitalWrite(tank2GLED, HIGH);
 digitalWrite(tank2RLED, HIGH);
}
if (tank2temp >= 24 && tank2temp <= 26)
{
 digitalWrite(tank2GLED, HIGH);
 digitalWrite(tank2RLED, HIGH);
 digitalWrite(tank2BLED, HIGH);
}
if (tank2temp >= 25)
{
 digitalWrite(tank1, LOW);
 digitalWrite(tank2, LOW);
 digitalWrite(tank1RLED, HIGH);
 digitalWrite(tank1GLED, HIGH);
 digitalWrite(tank1BLED, HIGH);
 digitalWrite(tank2RLED, HIGH);
 digitalWrite(tank2GLED, HIGH);
 digitalWrite(tank2BLED, HIGH);
}
if (tank3temp >= 26 && tank3temp <= 28)
{
 digitalWrite(tank3, HIGH);
}
}