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:
Guardando ho capito che è assolutamente la tecnica che fa per me: Pochi componenti reperibili e facile da realizzare.
stefanolavori:
E non riesco a capire che cosa serva. Sul sito semplicemente:
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).