Go Down

Topic: problema lettura secondi RTC (Read 8 times) previous topic - next topic

danidiscus

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
Code: [Select]
#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

UweFederer

cosa pensi che faccia Arduino nel loop(); durante il
"delay(1000); "
? Siccuramnete non aggiorna i secondi.

Ciao Uwe

danidiscus

credo ritarda un secondo!?
ma arrivo alla soluzione, non vedo l'errore..........

Ciao Daniele

uwefed

#3
Dec 24, 2012, 11:00 pm Last Edit: Dec 24, 2012, 11:06 pm by uwefed Reason: 1
Se fai aspettare Arduino per un secondo é normale che non scrive in quel tempo i secondi sul display e percui salta dei numeri.
Ciao Uwe

danidiscus

Scusami ma non sono un esperto sto imparando da solo. Ho tolto il ritardo ma fa lo stesso, potresti indicarmi quale riga correggere e come?
Grazie

Go Up