Usare piú sensori i2c senza espansioni su un unico arduino.

Avrei bisogno di capire se é possibile leggere valori provenienti da due sensori che necessitano i2c( esattamente gli Adafruit flora rgb sensor tcs34725.

Vorrei capire se é possibile usarli tutti e due sullo stesso arduino simultaneamente o comunque con un delay tra l'uno e l'altro molto basso.

Un altro problema é che leggendo il codice d'esempio noto che il sensore viene dichiarato come oggetto e nel suo costruttore non vengono richiesti i pin cui lo attacco.

Mi dareste una mano?

Github libreria(dentro la quale c'é il codice d'esempio chiamato color wiew):

I2C è un bus, a cui puoi collegare quindi più periferiche. L'unico requisito è che abbiano indirizzi diversi, per cui devi vedere se i sensori in questione hanno l'indirizzo configurabile. Di solito si fa tramite jumper a saldare.

No, quel sensore ha un indirizzo fisso, quindi non ne puoi collegare piu' di uno su una linea I2C

Soluzioni:
O usare un multiplexer Hardware, ad esempio il tca9548a , oppure usare una libreria software I2C, che ti permette di crearti un'altra linea I2c su altri pin

Quel sensore non ha pin per variare l' indirizzo. Percui non puoi usare 2 sullo stesso Bus I2C.

Ciao Uwe

>Gioviok: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

>Tutti gli altri: Vi pregherei, prima di rispondere, di verificare sempre che l'utente abbia effettuato la presentazione, cosa che, ovviamente, NON può essere possibile se il suo numero di post è 1. Grazie anticipatamente per la preziosa collaborazione. :slight_smile:

Brunello:
No, quel sensore ha un indirizzo fisso, quindi non ne puoi collegare piu' di uno su una linea I2C

Soluzioni:
O usare un multiplexer Hardware, ad esempio il tca9548a , oppure usare una libreria software I2C, che ti permette di crearti un'altra linea I2c su altri pin

Grazie per la tua risposta! Esistono questo tipo di librerie per I2C che hai menzionato tra quelle disponibili nell IDE o devo scaricarla da qualche parte?
Grazie in anticipo.

Ho dato un'occhiata alle librerie presenti e mi pare che la SoftwareWire di Testato, Koepel faccia quello.

Però , ora che ci ripenso, non sò come tu possa usarla abbinata a quella del tcs34725

Brunello:
No, quel sensore ha un indirizzo fisso, quindi non ne puoi collegare piu' di uno su una linea I2C

Soluzioni:
O usare un multiplexer Hardware, ad esempio il tca9548a , oppure usare una libreria software I2C, che ti permette di crearti un'altra linea I2c su altri pin

Purtroppo non ho il tempo di studiarmi la libreria, anche perché non ho capito ancora come faccia il costruttore del sensore a scegliere i pin.
La mia mente malvagia,contorta e perversa però ha avuto un idea(probabilmente sbagliata e da stupido):
collego le due alimentazioni a due pin digitali, collego entrambi i sensori a sda e scl e da codice do e tolgo l'alimentazione scrivendo alto o basso.
Possibile?
O rischio di rovinare i sensori

P.S. ovviamente da codice so quale sensore sto accendendo con una variabile booleana che chiamo rgbOn.

Mah, ho dei forti dubbi che possa funzionare.
Anche perchè la tensione circolerebbe comunque attraverso le resistenze di PullUp che vi sono sulle board

E poi, la cifra non mi pare che sia esagerata link

Quale modello Hai e che Arduino usi ?

Brunello:
Mah, ho dei forti dubbi che possa funzionare.
Anche perchè la tensione circolerebbe comunque attraverso le resistenze di PullUp che vi sono sulle board

E poi, la cifra non mi pare che sia esagerata link

Quale modello Hai e che Arduino usi ?

Uso un semplicissimo UNO e uso il modello flora del sensore, quello piccolino. Non capisco perche le resistenze pull up dovrebbero intralciare questo mio malefico piano.