il codice e' alquanto loffio non riesce ad aggiornarmi l'orario.
anche i pulsanti non funzionano bene a volte entra nel menu altre no i secondi non riesco propio a vederli.
- Codice: Seleziona tutto
[*]
#include <Wire.h>
#include <RTClib.h>
#define SET A0
#define PIU A1
#define MENO A2
char buffer[9];
unsigned long time=0;
unsigned long timeSet=0;
int setModeTime=2000;
RTC_DS1307 RTC;
void setup () {
Serial.begin(115200);
Wire.begin();
RTC.begin();
if (! RTC.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
while (1) delay(10);
RTC.adjust(DateTime(__DATE__, __TIME__));
}
pinMode( SET, INPUT );
pinMode( PIU, INPUT );
pinMode( MENO, INPUT );
}
void loop () {
if ( analogRead( SET ) < 1000) { time = millis(); }
DateTime now = RTC.now();
char buffer[19] = "";
sprintf(buffer, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
Serial.println(buffer);
if (time > 0 && setModeTime < (millis() - time) ) { setMode( now ); }
delay(1000);
}
void setMode( DateTime now ) {
boolean setMode = true;
int setModeLevel = 0;
int _hour = now.hour();
int _min = now.minute();
int _sec = now.second();
delay( 1000 );
timeSet = millis();
while ( setMode ) {
if ( analogRead(SET) > 1000 || analogRead(PIU) > 1000 || analogRead(MENO) > 1000 ) { timeSet = millis(); }
// Set Hour
if ( setModeLevel == 0 ) {
if ( analogRead(PIU) > 1000 && _hour < 24) { _hour++; }
if ( analogRead(MENO) > 1000 && _hour > 1) { _hour--; }
delay(1000);
sprintf(buffer, "%s: %02d", "Ora", _hour);
Serial.println(buffer);
}
// Set Minute
if ( setModeLevel == 1 ) {
if ( analogRead(PIU) > 1000 && _min < 60) { _min++; }
if ( analogRead(MENO) > 1000 && _min > 1) { _min--; }
delay(1000);
sprintf(buffer, "%s: %02d", "Minuti", _min);
Serial.println(buffer);
}
// Set Second
if ( setModeLevel == 2 ) {
if ( analogRead(PIU) > 1000 && _sec < 60) { _sec++; }
if ( analogRead(MENO) > 1000 && _sec > 0) { _sec--; }
delay(1000);
sprintf(buffer, "%s: %02d", "Secondi", _sec);
Serial.println(buffer);
}
if ( analogRead(SET) > 1000 ) { setModeLevel++; }
if ( setModeLevel > 2 ) { setModeLevel=0; }
if (timeSet > 0 && (setModeTime*2) < (millis() - timeSet) ) {
RTC.adjust(DateTime(_hour,_min,_sec));
setMode = false;
}
delay(200);
}
}

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)