Hallo, hab ein kleines Problem, wollte meine Temperaturen von 3 Sensoren auf dem Display anzeigen. Klappt soweit auch ganz gut, aber er setzt immer wieder den aktuellen zustand hinten dran, und allgemein, alles immer zusammen.
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 12
OneWire oneWire(ONE_WIRE_BUS);
LiquidCrystal lcd(10, 11, 5, 4, 3, 2);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer_1 = { 0x28, 0xC0, 0x8B, 0xDB, 0x02, 0x00, 0x00, 0xE0 };
DeviceAddress Thermometer_2 = { 0x28, 0x51, 0xE0, 0xB6, 0x02, 0x00, 0x00, 0xA };
DeviceAddress Thermometer_3 = { 0x28, 0x27, 0x7B, 0xDB, 0x02, 0x00, 0x00, 0xEA };
void setup(void)
{
Serial.begin(9600);
sensors.begin();
lcd.begin(20, 4);
sensors.setResolution(Thermometer_1, 10);
sensors.setResolution(Thermometer_2, 10);
sensors.setResolution(Thermometer_3, 10);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00)
{
Serial.print("Error getting temperature");
lcd.print("Error getting temperature");
}
else
{
Serial.print("C: ");
Serial.print(tempC);
lcd.print("C: ");
lcd.print(tempC);
}
}
void loop(void)
{
delay(2000);
Serial.print("Getting temperatures...\n\r");
sensors.requestTemperatures();
Serial.print("Temp. 1: ");
lcd.print("Temp. 1: ");
printTemperature(Thermometer_1);
Serial.print("\n\r");
Serial.print("Temp. 2: ");
lcd.print("Temp. 2: ");
printTemperature(Thermometer_2);
Serial.print("\n\r");
Serial.print("Temp. 3: ");
lcd.print("Temp. 3: ");
printTemperature(Thermometer_3);
Serial.print("\n\r\n\r");
}
hätte gerne das die Temperatur in 3 Zeilen je eine Temperatur angezeigt wird und dass dann auch nicht einfach hinten dran gesetzt wird, sondern dauerhaft von vorne erscheint.
Was mach ich falsch, wer kann helfen'?
danke schonmal, Timo