problema lettura secondi RTC

PaoloP:
Ciao Rici.
Complimenti per l'ottimo risultato. :grin:
Le tue board sono sempre ordinatissime. :wink:

leouz:
mi sono innamorato appena ho visto la tua breadboard :astonished:

Ciao Paolop, e leouz,
mi fate arrossire… :blush: confesso che tutto quell’ordine, non è un esercizio estetico, ma un più semplice tentativo di avere la circuiteria chiara e facile da seguire ed eventualmente correggere, sono a così basso livello in elettronica che non solo quello che vedete è scopiazzato, ma è pure scopiazzato male… :blush:

danidiscus:
Cavolo, sei avanti rispetto a me, io sto impazzendo per riuscire a creare un menu, dove ti nascondevi XD il lavoro che sto portando avanti grazie a un membro del forum è un po indietro, io ho iniziato a lavorarci da qualche mese, anche se ho arduino da un anno quasi, e pure io gli dedico quel po di tempo tra una cosa e un altra.
Comunque si mi farebbe piacere condividere tutto il materiale, anche se il mio è poco. Sarebbe bello condividere tutto qui sul forum perchè come ho gia detto si trova tanto in rete, ma poi tutto si incaglia. Sarebbe utile condividere i possibili schemi delle varie schede montate come la tua relay etc etc.
Beh che dire!?!?!?!
Benvenuto

leouz:
per quanto posso aiutare il rpogetto mi interessa molto! e posso aiutare a dipanare un po' di codice!

Per cominciare nel modo migliore :), vorrei spiegare la filosofia (che parolone :cold_sweat:) che sto seguendo nel realizzare il mio progetto.
In pratica vorrei che il tutto sia semplice da usare ed allo stesso tempo non ponga limitazioni eccessive nell’utilizzo degli accessori acquaristici che andrò a comandare, ti faccio un paio di esempi, sperando che chi legge e capisce più di me (ci vuole veramente poco :.), mi corregga se scrivo castronerie:

  • Per il fading (lato HW) ho deciso di usare pilotati in PWM da arduino dei mosfet IRF540, sopportano molta corrente e mi permettono di pilotare strip led a 12VDC o 24VDC, rimanendo sempre nel range del datasheet, oggi poi leggendo velocemente come funzionano i ballast per T5 ho visto che variano la luce dei tubi grazie ad un ingresso variabile da 0 a 10V, probabilmente con un jumper che attivi il giusto partitore di tensione si potrebbe con la stessa funzione comandare in PWM anche un ballast (tutto da verificare ovviamente).

  • Ho letto poi che già qualcuno ti ha scritto di usare per comandare gli accessori dell’acquario optoisolatori e triac, io ho scartato questa soluzione in favore dei, da molti ritenuti jurassici, relé, perché offrendo un contatto On/Off pulito mi permetteranno di comandare eventuali elettrovalvole per CO2 o per il cambio automatico dell’acqua funzionanti indifferentemente a 12/24/230 VAC o VDC, con i triac solo VAC ;).

E così vorrei continuare a seguire questo orientamento per gli sviluppi futuri XD

Per quello che ho già realizzato invece ti anticipo che sto usando:

  • Display LCD 20*4 HD44780 pilotato con IO/Expander PCF8574 e libreria LiquidCrystal_I2C
  • RTC DS1307 con libreria DS1307 (da rivedere perché ho intenzione di passare alla libreria Time e DS1307RTC)
  • 5 pulsanti per navigazione nei menù e inserimento dati Su/+, Giù/-, Dx, Sx e Ok letti anchessi via I2C con libreria IOexp
  • 2 sensori DS18B20 per la rilevazione della temperatura
  • 1 Shift register 74HC595 per comandare la scheda relé
  • 1 circuitino con LM7805 per abbassare i 12v usati per la scheda relé a 5V per alimentare tutto quello che ho scritto sopra (è quello in alto a dx sulla bread) perché i 5v in uscita da Arduino hanno poco amperaggio e avevo qualche problema.

OK, credo di aver più o meno scritto in sintesi quasi tutto, se ti/vi piace questo mio modo di vedere le cose allora direi che forse è il caso di aprire un topic dedicato e veder cosa tiriamo fuori.

Ciao a tutti.

Riccardo :slight_smile:

per me non ci sono problemi, anzi spero di essere utile perché devo ammettere che sono proprio asino.
volevo chiederti se hai lo schema del collegamento tasti che vorrei utilizzare anche io.

Non ho ancora disegnato nessuno schema, ma ti basta scopiazzare la mia bread, ti serve:

  • il PCF8574
  • 5 resistenze per il pull-down dei tasti da 10k
  • 1 condensatore da 100nF per il disaccoppiamento del PCF (molti non lo usano), quello azzurro
  • 5 condensatori da 100nF sui tasti, questi li uso per il debouncing HW quelli marroncini tra positivo ei rispettivi piedini sul pcf
  • 2 resistenze 10k per il bus I2C
  • 1 resistenza 10k sul piedino int del PCF

Scusa se tisembro sbrigativo, appena ho tempo raccolgo meglio il materiale e cerco di essere preciso proverò con fritzing a fare qualcosa.

Ad ogni modo, se vuoi che mandiamo avanti insieme la cosa dovresti dotarti dele stesse cose che ho io altrimenti poi non riusciamo a stendere il software.

In quanto all'asino pensa che io non provo nemmeno a paragonarmici per non offenderlo...
Ho iniziato da zero anche io, ma leggendo sul forum, googlando all'infinito, combinando casini a rotta di collo (mi è pure esploso un'elettrolitico in faccia) e chiedendo sul forum, ho imparato qualcosa.

Ciao Riccardo.

riciweb:

  • 2 resistenze 10k per il bus I2C

Un consiglio. Per l'IC2 io diminuirei i valore delle R. Se lavori a 5V, un loro valore ottimale è 1K5. Questo perché l'I2C per funzionare alla max velocità ha bisogno di una corrente di pull-up intorno ai 3 mA su entrambe le linee SDA/SCK. Con R da 10K hai: 5/10000=0,5mA mentre con una R da 1K5 hai 5/1500=3,3mA: perfetta.

Inoltre devi disattivare le pull-up interne che vengono attivate, in automatico, con l'inizializzazione della libreria wire.

@ Leo72

Non per niente ho scritto che non sono bravo nemmeno a scopiazzare =( grazie per la dritta, in effetti avevo dei dubbi, ma siccome sembra funzionare tutto, non avevo ancora approfondito la cosa.

@ PaoloP

E come si fa?

è sufficiente in setup() un

digitalWrite(A4,LOW);
digitalWrite(A5,LOW);

ho è più corretto

digitalWrite(18,LOW);
digitalWrite(19,LOW);

@ danidiscus e leouz

Se decidiamo di portare avanti insieme il controller, dovremo essere ben sincronizzati sul lato HW come ho già scritto, e sciccome io uso ancora arduino rev 1.0 mi chiedevo voi cosa avete, è importante per l'assegnazione dei pin, infatti se su rev 1.0 e 2.0 SDA eSCL (I2C) corrispondo ad A4 e A5, su rev 3.0 questi ultimi sono separati.
Avevo già una mezza intenzione di comprare la rev. 3.0, ma prima sarebbe bene sapere voi cosa avete.

Riccardo.

praticamente io ho quasi tutto il tuo materiale :wink:
Quindi in tempi brevi riesco a ricreare quello che hai fatto.

La mia arduino è la rev3... percui non saprei.. che vado a prendermi quella vecchia mi sembra assurdo 8)

leouz:
La mia arduino è la rev3... percui non saprei.. che vado a prendermi quella vecchia mi sembra assurdo 8)

No no, ci mancherebbe, ho appena scritto che la volevo ordinare anche io!
Se ti interessa creare subito anche la scheda relé ti mando i sorgenti per farti gli stampati, però ti devi scaricare designspark da rs-online.

Ciao.

il problema è che io non ho la possibilità ne le capacità di crearmi a casa il pcb,
Qualcuno mi consiglia un buon servizio estrerno?magari economico? :smiley:

C'è un utente del forum che ha avvitato un servizio per PCB --> http://arduino.cc/forum/index.php/topic,91656.0.html
Mandagli un MP chiedendo un preventivo.

riciweb:
E come si fa?

è sufficiente in setup() un

digitalWrite(A4,LOW);
digitalWrite(A5,LOW);

ho è più corretto

digitalWrite(18,LOW);
digitalWrite(19,LOW);

Non basta perché quando inizializzi la Wire questi attivano le pull-up. Devi modificare la libreria. Apri il file /arduino-1.0.3/libraries/Wire/utility/twi.c e commenta le righe 76 e 77:

  digitalWrite(SDA, 1);
  digitalWrite(SCL, 1);

Se decidiamo di portare avanti insieme il controller, dovremo essere ben sincronizzati sul lato HW come ho già scritto, e sciccome io uso ancora arduino rev 1.0 mi chiedevo voi cosa avete, è importante per l'assegnazione dei pin, infatti se su rev 1.0 e 2.0 SDA eSCL (I2C) corrispondo ad A4 e A5, su rev 3.0 questi ultimi sono separati.
Avevo già una mezza intenzione di comprare la rev. 3.0, ma prima sarebbe bene sapere voi cosa avete.

Riccardo.

I pin SDA e SCL sono collegati ai pin A4 e A5, non sono linee differenti ma le stesse.

Leo72,
sei sempre preziosissimo, ed io altrettanto pessimissimo, scusa, ma non riesco ad interpretare il tuo suggerimento:

leo72:
Non basta perché quando inizializzi la Wire questi attivano le pull-up. Devi modificare la libreria. Apri il file /arduino-1.0.3/libraries/Wire/utility/twi.c e commenta le righe 76 e 77:

  digitalWrite(SDA, 1);

digitalWrite(SCL, 1);

Mi viene il dubbio sul "Non basta" nel senso che non ho capito se i comandi per cui ho chiesto se andavano messi in setup() li devo mettere comunque (se si quali sono quelli corretti?) o se devo solo commentare le due righe nella libreria.
Scusa se chiedo invece di smanettare direttamente, ma prima di lunedì non riesco :frowning:

leo72:
I pin SDA e SCL sono collegati ai pin A4 e A5, non sono linee differenti ma le stesse.

Ok, ma il senso di averli separati come pin allora mi sfugge, io ero completamente tratto in inganno :~
a meno che non sia possibile usarli contemporaneamente come bus I2C e come pin analogici ma mi sembra strano se non impossibile, mi sai dire di più?

Grazie Riccardo

riciweb:
Mi viene il dubbio sul "Non basta" nel senso che non ho capito se i comandi per cui ho chiesto se andavano messi in setup() li devo mettere comunque (se si quali sono quelli corretti?) o se devo solo commentare le due righe nella libreria.

Mi sono spiegato male. Quando ho scritto "non basta" intendevo "non è sufficiente".
Se tu metti quei 2 digitalWrite, come vedi dal codice postato la Wire riattiva le pullup sui pin.
Quindi, non mettere nulla nel setup ma commenta solo quelle 2 righe che ti ho detto (metti una coppia di barre // avanti ad ogni riga).

leo72:
I pin SDA e SCL sono collegati ai pin A4 e A5, non sono linee differenti ma le stesse.

Ok, ma il senso di averli separati come pin allora mi sfugge, io ero completamente tratto in inganno :~
a meno che non sia possibile usarli contemporaneamente come bus I2C e come pin analogici ma mi sembra strano se non impossibile, mi sai dire di più?

Grazie Riccardo

Ogni pin ha più funzioni. Ovviamente se i pin A4 e A5 li usi come ingressi analogici non puoi usarli per l'I2C e viceversa perché una modalità interferirebbe con l'altra. Il fatto di averli riportati separatamente fa parte delle scelte progettuali del layout R3 che è stato adottato per tutte le ultime schede prodotte, a partire dalla UNO R3 in poi (quindi MEGA, LEONARDO, DUE). Siccome alcuni micro non hanno l'I2C sugli stessi pin dell'Atmega, l'averli messi in un posto uguale per tutte le schede permette ai costruttori di shield di non impazzire a realizzare diverse versioni dei propri prodotti. Se devono usare l'I2C, basta che utilizzino i pin SDA e SCL e gli shield andranno su tutte le Arduino

Grazie Leo72, tutto chiaro ora...

Riccardo.

rici ti ho scritto un PM :wink:

Ti ho risposto.

ciao anche io ho arduino uno rev 3 , solo che sono molto indietro rispetto a voi con l,hardware, rici perché non posti il tuo codice........
il mio progetto vorrei fosse low cost, quindi niente pcb, trovo più creare da me una pcb millefori anche se esteticamente non perfetta, ma fatta da me.
io seguiro il post da dietro, e parteciperò il piu possibile nelle mie esperienze e progetti.
rici, per l'effetto alba/tramonto a che punto sei?

Ciao danidiscus,
per la versione di Ardy, Leo ci ha già rassicurato, anche se ho appena scoperto che la befana mi porterà il kit ufficiale :grin: quindi anche se non serve sarò allineato.
Per la mille fori, non vedo nessun problema, io ho voluto fare l'esperienza di crearmela e mi ha dato soddisfazione, ognuno quindi poi fa ciò che vuole, ma alla fine del viaggio, magari saremo un pochino di più e chiedere ad un service un preventivo non costa nulla, perfino nel forum c'é un utente che fa PCB, magari i costi alla fine non saranno altissimi anzi.
Per alba e tramonto avrei finito (ma non testato a fondo) la funzione di acquisizione dei dati e memorizzazione degli stessi sulla Eprom, la funzione che esegue il fading invece non l'ho scritta io ma un caro amico che per ora si è tirato fuori a causa di impegni personali, va cmq rivista se non completamente ripensata.
In quanto al software, stò raccogliendo un pò il materiale e se riesco apro un topic in sezione generale la sett. prox. per il controller dove posterò tutto (non sono geloso del mio lavoro, caso mai me ne vergogno a causa della mia scarsa preparazione), se vuoi però per il momento te lo mando in privato, così intanto ti prendi il primo mal di testa :grin:
Scrivimi in privato e ti mando tutto.

Buona Epifania a tutti.

Riccardo.

Ok, apriamo un topic dedicato, chissa se l'admin ci puo dedicare uno spazio in rilievo sulla pagina.

danidiscus:
Ok, apriamo un topic dedicato, chissa se l'admin ci puo dedicare uno spazio in rilievo sulla pagina.

rilievo mi pare eccessivo ma magari in megatopic...