salve ragazzi, ho assemblato uno sketch dove leggere su lcd data ora più due temperature,
il problema nasce nella lettura dei secondi, che saltano due a due, allego il codice se qualcuno con piu esperienza ci butta un occhio per farmi capire dove sbaglio.
grazie
D
#include <DallasTemperature.h>
#include <OneWire.h>
#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 8
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float temperatura;
char buffer[10];
RTC_DS1307 RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup () {
sensors.begin();
Wire.begin();
RTC.begin();
lcd.begin(20, 4);
RTC.sqw(1);
if (! RTC.isrunning()) {
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
DateTime now = RTC.now();
sprintf(buffer, "%02d/%02d/%d", now.day(), now.month(), now.year());
lcd.setCursor(0, 1);
lcd.print("Data ");
lcd.print( buffer );
char buffer[10] = "";
sprintf(buffer, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
lcd.setCursor(0, 0);
lcd.print("Time ");
lcd.print( buffer );
delay(1000);
{
temperatura=analogRead(A0);
lcd.setCursor(0, 2);
lcd.print("Temp esterna ");
lcd.print((5.0*temperatura*100.0)/1024.0);
lcd.write(0b011011111);
lcd.print("C");
}
{
sensors.requestTemperatures(); // Invia il comando di lettura delle temperatura
lcd.setCursor(0, 3);
lcd.print("Temp H2o");
lcd.setCursor(10, 3);
lcd.print (sensors.getTempCByIndex(0));
lcd.print (" C");
lcd.write(0b11011111);
}
}
Buon Natale a tutti