Hei,
Har problemer med oppdatering av temperaturer på LCD 16,2.
Den oppdaterer korrekte verdier ofte, men returnerer noen ganger bare et utvalg tegn (Se bilder)
Jeg skjønner ikke hvorfor. Noen som kan hjelpe?
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 8
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
//LCD
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;
int test = 27;
DallasTemperature sensors(&oneWire);
//Tildel Adresser og navn til sensorene.
DeviceAddress Probe1 = {0x28, 0x56, 0x2C, 0x94, 0x04, 0x00, 0x00, 0x2A};
DeviceAddress Probe2 = {0x28, 0x9E, 0x69, 0x93, 0x04, 0x00, 0x00, 0xA9};
DeviceAddress Probe3 = {0x28, 0x5D, 0x6A, 0x94, 0x04, 0x00, 0x00, 0xA7};
DeviceAddress Probe4 = {0x28, 0x4F, 0x36, 0x94, 0x04, 0x00, 0x00, 0x26};
void setup(void)
{
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
// Start up the library
sensors.begin();
//set the resolution to 10 bit
sensors.setResolution(Probe1, 10);
sensors.setResolution(Probe2, 10);
sensors.setResolution(Probe3, 10);
sensors.setResolution(Probe4, 10);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.print("xxx");
} else {
lcd.print(tempC);
}}
void loop(void)
{
delay(4000);
sensors.requestTemperatures();
lcd.begin(2,16); // columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear(); // start with a blank screen
lcd.setCursor(0,0);
printTemperature(Probe1);
lcd.setCursor(11,0);
printTemperature(Probe2);
lcd.setCursor(0,1);
printTemperature(Probe3);
lcd.setCursor(11,1);
printTemperature(Probe4);
}