i2c: rtc + display

salve a tutti,

vorrei collegare ad arduino uno un modulo rtc e un lcd, entrambi comandati tramite pin A4 e A5; ho letto che è possibile condividere questi pin ponendo in parallelo i moduli purchè si utilizzino resistenze pullup da 4.7K Ohm e si apra e chiuda la comunicazione con questi moduli in sequenza!

Purtroppo non riesco a capire cosa sia una resistenza pullup e come debba essere collegata e inoltre non capisco come aprire e chiudere la coumunicazione con i moduli!

c'è qualcuno che mi può aiutare?

thanks

Per utilizzare l'I2C ti serve la libreria Wire:

Lì trovi tutte le spiegazioni che ti servono.

Per le resistenze, a che tensione alimenti il tutto? Se a 5V, ti consiglio di abbassa il loro valore a 1,5K/2,2K così il bus I2C, con circa circa 2/3 mA, può funzionare alla velocità maggiore.

la libreria wire già la usa lo sketch del display; il problema è che non ho capito come fare gli "attacchi"

cosi'. In parallelo.
Ogni I2C ha un indirizzo diverso e quindi puoi collegarli a cascata

bus.gif

cos'è VDD? non lo trovo sulla scheda ...

Rp=2.2K Ohm giusto?

come trovo gli indirizzi dei singoli moduli?

grazie

VDD è il 5V

esiste un programma simpaticissimo, che trova gli indirizzi!

Link

come ti hanno gia' detto, Vdd e' l'alimentazione , 5 Volts.
L'RTC ( se e' ad esempio un DS1307 ) e' gia' gestito dalle librerie. vedi ad esempio libreria TIME che gestisce anche l' RTC Arduino Playground - Time. Non me ne voglia Leo, la sua SWRTC e' unica, ma non gestisce ancora il modulo esterno.

Per il display I2C avrai ben pure dei riferimenti dove l'hai acquistato. Anche questo, specie se si e' alle prime armi, si gestisce attraverso una libreria

grazie ancora per le delucidazioni ... più che alle prime armi... direi piuttosto che sono "sotto zero" :slight_smile:

l'rtc è questo

lcd è questo

il loro indirizzo lo trovo nella libreria? o meglio con il programmino?

thanks

Non ti serve il loro indirizzo.
Sarebbe necessario se tu usassi solo la libreria Wire, ma se installi le librerie dedicate ( che rendono facile la stesura di un programma ), sono gia' assegnate di default.
Comunque per il DS1307 e' 0x68, per il display non lo conosco.
Comunque assegnare un indirizzo diverso serve:
o nel caso citato sopra, o se hai piu' di un elemento uguale.
Pero' l'indirizzo si cambia solo da hardware e in questo caso non e' possibile, dato che nemmeno ci sono i ponticelli per variarlo.

Per l'RTC scaricati quello menzionata precedentemente, mentre per il display quella riportata nel link che hai messo GitHub - adafruit/Adafruit-RGB-LCD-Shield-Library.

Sai come scaricarle e dove metterle ?

ciao brunello e grazie per il supporto :slight_smile:

sono riuscito a far funzionare, separatamente, i due elementi; le librerie le ho installate nella cartella library di arduino e penso siano installate correttamente visto che funziona tutto!

quindi posso installare i due componenti in parallelo, come suggerito dall'immagine, corredati di resistenze e non preoccuparmi di abilitare o disabilitare nulla.. semplicemente mi rifaccio alle istruzioni che ho trovato nei singoli esempi, giusto?

grazie ancora :wink:

Tutto giusto... o quasi.
le resistenze non devi metterle perche' nel modulo RTC ci sono gia'. Anzi forse sono anche sul display e cominciano ad essere pure troppe, comunque dovrebbe andare

Un consiglio sulle librerie....
Dove le hai messe vanno bene, pero' abituati a metterle in una cartella che chiamerai "libraries" che dovra' essere nella directory in cui arduino salva gli Sketch.
In genere e' Documenti/arduino/libraries
perche' cosi' quando aggiornerai l'IDe di Arduino con uno piu' recente non dovrai sempre reinstallarle di nuovo

quindi li metto in parallelo senza resistenze e vedo se funzionano...

per le librerie, non ho capito cosa intendi: non dovrebbe essere sufficiente metterle nella cartella del programma di arduino, così che le carichi di volta il volta?

grazoie

brunello:
Non me ne voglia Leo, la sua SWRTC e' unica, ma non gestisce ancora il modulo esterno.

E non lo gestirà mai visto che nasce come emulazione software da usare quando non si vuole o non si può usare un RTC hardware.

PaoloP:

brunello:
Non me ne voglia Leo, la sua SWRTC e' unica, ma non gestisce ancora il modulo esterno.

E non lo gestirà mai visto che nasce come emulazione software da usare quando non si vuole o non si può usare un RTC hardware.

Esatto. E' un sostituto ad esso.