Go Down

Topic: Charlieplexing (Read 366 times) previous topic - next topic

stefanolavori

Salve gente.

Spero di non abusare troppo della vostra gentilezza chiedendo un chiarimento.
Se è così, vi prego di dirmelo che provvederò subito di conseguenza.

Veniamo quindi al dunque:

Stavo curiosando le tecniche di multiplexing attuabili con Arduino dato che dovrò controllare molti led e ho trovato su gioblu (ne approfitto per fare un po' di pubblicità agli autori, dato che è fatto benissimo è c'è tanto di quel materiale per gli inesperti come me) ed ho trovato questo articolo:

http://www.gioblu.com/tutorials/elettronica/235-che-cose-il-charlieplexing

Guardando ho capito che è assolutamente la tecnica che fa per me: Pochi componenti reperibili e facile da realizzare.

Solo non mi torna una cosa: Negli esempi
Code: [Select]

digitalWrite(ledPin1, HIGH);
pinMode(ledPin2, INPUT);
digitalWrite(ledPin2, LOW);


c'è sempre un'istruzione che prevede un input:
Code: [Select]
pinMode(ledPin2, INPUT);

E non riesco a capire che cosa serva. Sul sito semplicemente:
Quote
Questa (corrente) verrà poi fatta riconfluire nel circuito del nostro MCU trasformando in un input il PIN1 e portandolo a LOW

E soprattutto se può funzionare tutto senza l'input.


Grazie mille a questo meraviglioso posto ed ai suoi frequentatori.

astrobeed


E non riesco a capire che cosa serva. Sul sito semplicemente:
Quote
Questa (corrente) verrà poi fatta riconfluire nel circuito del nostro MCU trasformando in un input il PIN1 e portandolo a LOW

E soprattutto se può funzionare tutto senza l'input.


In effetti è strano quello che c'è scritto, forse GBM ha fatto un pochino di confusione col codice tra il caso con solo due led e quello del Charlieplexing vero e proprio.
Nel caso con solo due led per accenderli tutti e due i pin devono essere output e attivi con stato logico opposto, ovvero un low e uno high, invertendo gli stati logici si ottiene il cambio di led acceso, mettendo uno dei due pin come input tutti e due i led rimangono spenti.
Il fatto di settare l'input come LOW serve per tenere disattivata la resistenza di pull up integrata attraverso la quale uno dei due led può rimanere alimentato e accendersi molto debolmente se il pin rimasto come OUT è settato low.
Nel caso del Charlieplexing  è indispensabile che siano OUT solo una coppia di pin per volta, tutti gli altri devono essere INPUT, altrimenti è impossibile avere il controllo del singolo led.
Se guardi Wikipedia internazionale trovi una spiegazione migliore del Charlieplexing  e del perché i pin vanno settati in alta impedenza (input).

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy