Go Down

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

leo72


  • 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.

PaoloP

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

riciweb

@ 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.
Riccardo

leouz

praticamente io ho quasi tutto il tuo materiale  ;)
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)

riciweb


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.
Riccardo

leouz

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?  :D

PaoloP

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.

leo72


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:
Code: [Select]
  digitalWrite(SDA, 1);
  digitalWrite(SCL, 1);


Quote

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.

riciweb

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


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


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
Riccardo

leo72


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).

Quote


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

riciweb

Grazie Leo72, tutto chiaro ora...

Riccardo.
Riccardo

leouz


riciweb

Riccardo

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?

riciweb

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  :smiley-mr-green: 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  :smiley-mr-green:
Scrivimi in privato e ti mando tutto.

Buona Epifania a tutti.

Riccardo.
Riccardo

Go Up