Libreria Wire e i2c, molti dubbi...

Ciao a tutti. Ho un sensore DS1624 che vorrei provare a far funzionare, in parole povere e' un sensore di temperatura che funziona tramite i2c.

Ho trovato un unico esempio, questo http://www.homebrewtalk.com/f51/arduino-2wire-smbus-digital-thermometer-104974/ che mi pare anche abbastanza comprensibile e soprattutto compila :)

Il mio dubbio, e qui mi fermo, e' sulla libreria wire, che non ho capito bene come funziona. Tanto per iniziare, non riesco a capire in che modo specifico alla libreria wire su quali pin ho i miei SCL e SDA. Non si specifica? Posso usare solo pin analogici? Li capisce da sola!? E poi, posso usare piu' chip i2c assieme (3 immagino, avendo 6 pin analogici...) Se non capisco in che modo funziona questa libreria Wire non combino piu' un tubo :)

Grazie a chiunque vorra' spendere un po' di tempo per farmi capire meglio i misteri della libreria Wire!!

Ciao

Prima di tutto leggi qui http://it.wikipedia.org/wiki/I²C
poi qui http://www.arduino.cc/en/Reference/Wire

scoprirai che : "On most Arduino boards, SDA (data line) is on analog input pin 4, and SCL (clock line) is on analog input pin 5. On the Arduino Mega, SDA is digital pin 20 and SCL is 21. "

l’I2C è un bus dove con 2 fili colleghi fino ad un massimo teorico di 127 device.

a seconda di come colleghi i pin A0 A1 e A2 del DS1624 puoi modificare l’indirizzo di ogni chip e ne puoi attaccare 8 allo stesso bus.

il bus deve avere 2 resistenze di pullup da 4.7k sui piedini 4 e 5 analogici dell’arduino.

Cavolo, ma allora questo i2c, permettetemi, e' una figata! Devo fare proprio un po' di esperimenti... Corro a studiare! Grazie Massimo

Si è una figata perchè oltre ad essere facile da interfacciare ci sono migliaia di dispositivi i2c disponibili sul mercato ad un costo irrisorio.

Ho capito un po' di cose, ecco come sta venendo il mio esperimento! Un ds1624 come sensore di temperatura, e un ds1307 come rtc.

Figata! ho intenzione di comprare anch’io un rtc, l’hai trovato in qualche negozio (visto che anch’io sono di milano) oppure l’hai comprato su internet?
Appena mi cimento magari ti stresso per qualche aiuto!

A dire il vero ho fatto una cosa piu' scamuffo :) Entrambi i chip me li sono fatti mandare come sample da maximIc ... Assieme a quelli gia' che c'ero ho chiesto un potenziometro digitale i2c, il ds1803 e l'idea era quello di variare la retroilluminazione a seconda della luce rilevata nell'ambiente...

Lo schermo lcd arriva invece da ebay ed e' di un mio amico che ne ha presi un po', da un venditore che si chiama artronicpl (nella mia auto starebbe proprio bene quello sfondo nero - scritte verdi)

In verita' tutto questo l'ho fatto per imparare e nell'ottica di fare un qualche sistema di monitoring per l'acquario di un amico (e quindi essere in grado di leggere sensori, capirli e visualizzarli) Appena capisco cosa voglio, volevo implementare la stessa cosa anche in automobile.

Di che zona sei di milano? Dove ti rifornisci? Io sono in zona navigli e qui ci sono due negozi su via meda/corso san gottardo ma non avevo provato a domandare li per questi componenti.

Fede

io sono di Nova Milanese, nord di milano. buona cosa quella dei campioni gratuiti, adesso provo pure io...a rifornirmi ho provato in un negozio a Cinisello Balsamo e in uno in via padova a milano, lì non sono proprio riforniti ma almeno sono un tantino più gentili!

Quello di via padova e' franchi? cavoli e' il piu' fornito che conosca... devo venire dal tuo a cinisello allora :)

Adesso in tutto quell'accrocchio sto vedendo di implementare due xbee tra due arduini, uno con un motor shield. L'idea in linea di massima sarebbe per una installazione per l'hackmeeting di questo mese. Un proof of concept piu' che altro.

Un arduino coi sensori li legge e li mostra, e poi li passa all'altro arduino con motorshield, via xbee, che muove 4 motori dc ogni tanto. A questi motori potrebbero essere applicati semplicemente dei dischi con le spirali psichedeliche, tanto per fare un po' di festa :)

Se riesco a far comunicare gli xbee tra arduini, che non ho mai provato (ho provato solo il point to point tra arduino e computer) dovrei essere a posto. Il piu' e' che la mia bredboard e' piccola, e ogni cosa che tocchi qualche filo si sposta e non va piu' niente, il che rende difficile il debug... Prima di spostare il tutto vorrei fare almeno una scheda con l'rtc, che e' attaccato a una batteria per la memoria della programmazione. Se si sposta quella va a farsi benedire e mi rompo a riprogrammare l'ora...

@FedericoV. io ho comprato l'RTC su robotitaly se ti può interessare. @federico ma come fai a attivare la retro illuminazione? Io ho un display compatibile hitachi che si legge ma lo schermo è sempre non illuminato... E poi hai saldato i fili o riesci anche a fare bene contatto senza saldatura?

Ieri sera ho costruito questo, che e’ l’rtc tipo quello di robotitaly ma a costo zero. Ok, avevo il chip come sample e ho comprato il quarzo, ma il resto l’ho cannibalizzato da una scheda madre rotta di un pc.

Per l’lcd ho saldato i pin maschi, e poi li ho connessi coi fili tramite breadboard, e NO, la connessione ogni tanto devi andarla a toccare con le dita perche’ qualcosa si sposta e non va piu’ un tubo… Decisamente sarebbe MEGLIO SALDARE !

Per la retroilluminazione nel mio lcd devi collegare i pin 15-16 come positivo e negativo sui +5. Non tutti gli lcd ne sono provvisti.

Fede

PS: vorrei prendere un sonar da robotitaly tipo entro oggi, per poterlo usare all’hackmeeting, assieme a un paio di celle solari che mi servivano per altre cose e un moltiplicatore di porte i2c. Speriamo siano veloci…

Pull-Up resistor, questo incognito...

Vorrei capire una cosa, quanto e' importante la precisione di questa resistenza, come valore? Massimo, mi dici 4.7k . Leggo questa pagina, relativa a un sensore che possiedo

http://www.datasheet4u.com/html/S/R/F/SRF02-1_ETC.pdf.html

e consigliano 1.8k

Provo un paio di moduli, ds1307 e ds1624 con resistenze da 3.3k che ho qui, e vanno bene.

Alcuni siti consigliano resistenze da 1.5k...

Io ho qui quelle da 3.3, da 2, da 10... esattamente da 4.7 o 1.8 per provare non le ho, e poi, come faccio a capire quale funziona meglio? Sto usando quelle da 3.3 e sembra funzionare, ma ho dei dubbi se Massimo indica quelle da 4.7 :)

Grazie Fede

Se non ricordo male la scelta della resistenza dipende dalla tensione di alimentazione, dalla capacità del bus e dal numero dei dispositivi connessi.

Grazie! Sai in che modo si calcola questa relazione?

guarda qui, al punto 4: http://www-micrel.deis.unibo.it/~augusto/SoluzioneElettronici18.pdf

Grazie ;)