_
Quindi i passaggi che dovrei fare sono:
- levare la batteria (gia fatto)
-rimettere la batteria
-caricare questo sketch su arduino:
- Codice: Seleziona tutto
// di seguito includo la libreria per la comunicazione su bus I2C
#include <Wire.h>
#include "RTClib.h"
void setup()
{
// inizializzo la libreria
Wire.begin();
// adesso, inizializzo la comunicazione con il DS1307.
// L’indirizzo del DS1307 di default è 0x68
Wire.beginTransmission(0x68);
// il primo byte stabilisce il registro
Wire.write((byte)0x00);
// imposto il tempo e la data in esadecimale
Wire.write((byte)0x00); // 1° byte SECONDI impostabili da 0x00 a 0x59
Wire.write((byte)0x05); // 2° byte MINUTI impostabili da 0x00 a 0x59
Wire.write((byte)0x80 | 0x10); // 3° byte ORE impostabili da 0x00 a 0x24
Wire.write((byte)0x04); // 4° byte GIORNO della settimana impostabile da 0x01 a 0x07
Wire.write((byte)0x10); // 5° byte GIORNO del mese impostabile da 0x00 a 0x31
Wire.write((byte)0x12); // 6° byte MESE impostabile da 0x00 a 0x12
Wire.write((byte)0x15); // 7° byte ANNO impostabile da 0x00 a 0x99
Wire.endTransmission();
}
void loop()
{
delay(100);
}
( Al rigo 19, ovvero: Wire.write((byte)0x80 | 0x10); // 3° byte ORE impostabili da 0x00 a 0x24 metto 0x80 | 0x10 ??)
-Successivamente carico il codice dato da
- Codice: Seleziona tutto
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
int OnH = 16; //Ora On
int OnM = 8; //minuto On
int OnS = 01; //secondo on
int OffH = 16; // ora off
int OffM = 9; // minuto off
int OffS = 01; // secondo off
//orari in secondi
int ONsecondi = OnS + OnM*60 + OnH*3600;
int OFFsecondi = OffS + OffM*60 + OffH*3600;
int secondiAttuali = 0;
int relay = 2; // pin connesso al rele
boolean relayOn = false;
void setup () {
//inizializza librerie
Serial.begin(57600);
Wire.begin();
RTC.begin();
//imposto pin rele come uscita
pinMode(relay, OUTPUT);
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop () {
//se ti leggevi la descrizione della libreria, saltava fuori che la riga seguente
//ti estrae dal rtc in una sola chiamata tutti i dati che te servono
DateTime now = RTC.now();
//per poi essere estratti con le seguenti righe e girati alla seriale
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
//troviamo i secondi attuali
secondiAttuali = now.second() + now.minute() * 60 + now.hour() * 3600;
if ( secondiAttuali >= ONsecondi && secondiAttuali < OFFsecondi){
digitalWrite(relay, HIGH); // eccito il relè collegato al pin2
relayOn = true;
} else if (relayOn=true){
digitalWrite(relay, LOW);
relayOn=false;
}
delay(3000);
}
Devo procedere così?
EDIT: ho fatto come ho scritto ma non funziona

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)






