Pages: 1 ... 3 4 [5] 6   Go Down
Author Topic: problema lettura secondi RTC  (Read 7423 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Rome
Offline Offline
Sr. Member
****
Karma: 9
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@ Leo72

Non per niente ho scritto che non sono bravo nemmeno a scopiazzare  smiley-cry 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.
Logged

Riccardo

Rovereto
Offline Offline
Full Member
***
Karma: 5
Posts: 172
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

praticamente io ho quasi tutto il tuo materiale  smiley-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  smiley-cool
Logged

Rome
Offline Offline
Sr. Member
****
Karma: 9
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La mia arduino è la rev3... percui non saprei.. che vado a prendermi quella vecchia mi sembra assurdo  smiley-cool

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

Riccardo

Rovereto
Offline Offline
Full Member
***
Karma: 5
Posts: 172
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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-grin
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 112
Posts: 7079
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
  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.
Logged


Rome
Offline Offline
Sr. Member
****
Karma: 9
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
  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  smiley-sad

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   smiley-confuse
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
Logged

Riccardo

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 327
Posts: 22640
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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   smiley-confuse
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
Logged


Rome
Offline Offline
Sr. Member
****
Karma: 9
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie Leo72, tutto chiaro ora...

Riccardo.
Logged

Riccardo

Rovereto
Offline Offline
Full Member
***
Karma: 5
Posts: 172
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

rici ti ho scritto un PM  smiley-wink
Logged

Rome
Offline Offline
Sr. Member
****
Karma: 9
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti ho risposto.
Logged

Riccardo

Offline Offline
Newbie
*
Karma: 1
Posts: 49
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Rome
Offline Offline
Sr. Member
****
Karma: 9
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Riccardo

Pages: 1 ... 3 4 [5] 6   Go Up
Jump to: