aiuto per progetto Irrigazione

salve a tutti,
ho conosciuto Arduino da poco, ho visto questo meraviglioso forum e mi sono iscritto.
avevo idea di fare un irrigazione per dei bonsai, programmabile da display con 4 possibilità di programmazione con il controllo dell'umidità terreno e con il controllo di 2 uscite per 2 pompe di irrigazione.
ho trovato su Tattik - elettronica e dintorni un meraviglioso progetto che potrebbe essermi molto utile però ho notato che non mantiene l'ora giusta!
avrei bisogno di una mano per compilare nel modo giusto lo sketch con arduino uno.
grazie

ecco lo sketch

sketch_jan21a.ino (31.3 KB)

Buongiorno,
essendo questi i tuoi primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

ok, scusate,
adesso penso di essermi presentato!

... direi che è piuttosto normale che NON mantega l'ora esatta ... difatti, chi ha disegnato quello schema, evidentemente NON ha mai provato a terere Arduino acceso 24 ore e nel contempo usare il suo clock ed i suoi timer per scandire il tempo. ::slight_smile:

Purtroppo, l'oscillatore di Arduino NON è né così preciso, né così affidabile e, volendo fare una cosa che mantenga il tempo anche per svariati giorni, è d'obbligo usare un chip RTC esterno e, per evitare delusioni, ti dico subito di lasciar stare i vari DS1307 e passare direttamente al DS3231 che è estremamente più preciso.

Trovi delle piccole board per DS3231, complete di alloggaimento per la piccola batteria di backup, per pochissimi US$. :wink:

Guglielmo

grazie,
http://www.ebay.it/itm/5pcs-DS3231-AT24C32-IIC-Real-Time-Clock-Memory-Module-Board-for-Arduino-TE536-/192037049817?hash=item2cb64cd5d9:g:GEoAAOSwB09YOIgo
ho trovato su ebay queste, penso che vadano bene.
per quando riguarda la modifica dello sketch mi servirebbe una mano perchè purtroppo non sono bravo :frowning:

davideCS:
per quando riguarda la modifica dello sketch mi servirebbe una mano perchè purtroppo non sono bravo :frowning:

Se scarichi una libreria per gestire il DS3231 da dentro il "Library Manager" del IDE ... sicuramente ti installa una serie di esempi ... basta che te ne studi un paio e vedi come si usa :wink:

Guglielmo

P.S.: Per raggiungere il "Library Manager" del IDE ... Sketch -> Include Library -> Manage Libraries

ci provo

davideCS:
ci provo

... ottimo, se poi hai delle difficoltà, continua pure qui esponendole :wink:

Guglielmo

ho ordinato la DS3231 in attesa dell'arrivo sto cercando di provare con una la DS1307, che ho a casa, giusto per vedere se riesco a farlo funzionare ed in seguito sostituire la rtc! ma ho fatto dei copia incolla ed il risultato è che non funziona nulla :sob:
cosa posso fare? purtroppo non so molto del linguaggio di scrttiura

allego lo schizzo

prova_rtc___irrigazione.ino (32.8 KB)

L'errore che fate tutti è di voler fare ... il passo più lungo della gamba ...
... ma se NON sai come si usa il DS1307, perché già cerchi di metterlo nel tuo programma ? :o :o :o

Prendi gli esempi, studiateli, scrivi TU un programma che usa il DS1307 e, solo dopo averne presa piena padronanza, potrai provare ad integrarlo nel codice che già hai.

Quindi, scrivi un TUO programma che sia in grado di impostare l'ora/data nel DS1307, di correggerla e di leggere i vari campi (ore, minuti, secondi, giorno, mese, anno, ...) ecc. ecc., se occorre chiedi qui aiuto e impara ad usare bene quel chip, dopo di che ... integrarlo nell'altro programma sarà più semplice.

Guglielmo

ok, ma ho difficoltà a capire cosa devo andare a togliere dopo

davideCS:
ok, ma ho difficoltà a capire cosa devo andare a togliere dopo

In che senso ? togliere cosa e da dove ?

Guglielmo

dal programma originario non devo togliere poi le parti che mi regolano l'orario adesso?

Ah, si, certo, più che togliere dovrai sostituire la gestione fatta adesso con "timer" con la gestione, che tu avrai scritto, fatta con il DSxxxx.

Per fare questo, dopo aver imparato bene a padroneggiare il RTC, dovrai studiarti attentamente il programma originale e vedere/capire cosa togliere e cosa aggiungere.

Guglielmo

sto seguendo un corso online, ho capito come funziona l'rtc pero' non riesco a capire cosa togliere al programma da modificare

Ciao, scarica la libreria di adafruit -> #include "RTClib.h"

dentro alla cartella della libreia trovi lo sketch d'esempio sia per il DS1307 che per il DS3231. Una volta collegato l'RTC con la batteria tampone già inserita carica lo sketch poi in riferimento a questa riga:

rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));               // per il primo utilizzo togliere il commento a questa riga. Aggiornare data e ora RTC e poi ri-commentare

fai come indicato nel commento e vedrai che l'RTC si sincronizzerà con l'orario del PC. E' ovvio che per verificare la corretta sincronizzazione dovrai aprire il monitor seriale e leggere i dati stampati.

ciao

grazie oggi ci provo.

niente da fare :confused: non riesco non ho le basi.