Salve a tutti chiedo un vostro consiglio perchè non riesco a capire il problema.
Ho realizzato due circuiti entrambi con la propria alimentazione ed il proprio LCD uno dotato di un 16x2 e l'altro di un 20x4 ( indipendenti).
poi mi è nata la necessità di trasferire il valore di una variabile da un circuito all'altro
ho collegato i due arduino tramite i2c , il collegamento funziona come la trasmissione da parte del master e lettura della variabile da parte dello slave.
il problema nasce sui due display , contemporaneamente non funzionano. per far funzionare i display devo staccare il cavo di collegamento i2c.
spiego cosa ho fatto,
sul circuito master, sulla linea i2c ho inserito due resistenze da 4,7 km verso il 5 volt, per poter collegare più dispositivi i2c ( una su sda e l'altra su scl)
il contatto sda ed scl più la massa li ho portati allo slave,
i dati passano regolarmente e la variabile viene letta dallo slave, ma i due lcd non ne vogliono sapere di funzionare.
funzionano solo se non c'è il collegamento della linea i2c fra i due arduino.
le resistenze sulla linea sda ed scl l'ho inserite solo sul master .
Secondo voi quale potrebbe essere il problema e come potrei risolvere
da questo forum ho preso notizie a piene mani siete troppo forti..
grazie a tutti in anticipo.
Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo 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.
Qui una serie di link utili, non inerenti al tuo problema:
forse ho capito il problema, ma non so comunque come risolverlo.
l'indirizzo di entrambi gli lcd è 0x3f, questo penso li mandi in confusione.
ho provato a collegare il 16x2 tramite i pin di arduino senza usare la scheda i2c, ma non funziona, non ho staccato la scheda , ma ho solo fatto i collegamenti sui piedini.
secondo voi potrebbe essere questo il problema
grazie
Certo che è quello. Alternative:
- Cambia l'indirizzo di uno dei display tramite i jumper A0/A1/A2 che dovrebbero esserci da qualche parte sulla scheda i2c.
- Usa una SoftwareSerial per scambiare dati tra i due Arduino, è pure meglio, visto che i2c non è stato progettato per grandi distanze.
la distanza fra i due arduino è di crca 50 cm per cui il collegamento penso possa funzionare anche con il i2c,
ho cambiato l'indirizzo ad uno dei due display, ma insieme non ne vogliono sapere di funzionare.
se ne stacco uno funziona l'altro e la comunicazione se li alimento entrambi uno diventa nero e si interrompe la comunicazione.
le resistenze su sda e scl le ho inserite solo su un arduino, sull'altro non le ho inserite. potrebbe dipendere da quello, prima di provare e fare danni volevo maggiori chiarimenti.
in effetti potrei utilizzare il software serial su uno solo dei due arduino in quanto uno ha i pin rx e tx liberi l'altro no.
ma non sono riuscito a trovare degli skecth che mi facessero capire come gestire la trasmissione e la ricezione.
non è che lo stesso sistema che ho usato con i2c funziona anche con il software serial.
con i2c ho utilizzato l'invio di un byte alla volta dal master e la ricezione dallo slave.
avete qualche link che spiega il funzionamento con degli esempi
grazie