Pages: [1]   Go Down
Author Topic: Charlieplexing  (Read 326 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 213
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
digitalWrite(ledPin1, HIGH);
pinMode(ledPin2, INPUT);
digitalWrite(ledPin2, LOW);

c'è sempre un'istruzione che prevede un input:
Code:
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.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 130
Posts: 9516
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
Logged

Pages: [1]   Go Up
Jump to: