Een nadeel van zo’n “kleine” processor als de ATTiny85 is het beperkte aantal I/O (input/output) poorten. En dan maakt het niet uit of je de “grote” versie gebruikt op een Digispark bordje met USB-aansluiting of alleen de kale chip.
Je moet het in de praktijk doen met 5 effectieve output pinnen. Met zo’n pin kun je de waarde van een sensor lezen of je kunt een LED aanschakelen (of een relais als je iets groters dan een LED wilt schakelen).
Maar wat nou als je 20 LEDs individueel wilt kunnen schakelen met die 5 poorten? Hoe doe je dat dan?
Het blijkt te kunnen. Ik heb het niet zelf verzonnen, zelfs nog geen tijd gehad om de bijbehorende schakeling zelf te realiseren (staat nog op de uitdagingenlijst), maar het systeem heet “Charlieplexing” of “matrix-mulitplexing”. Wikipedia weet me te vertellen dat de naam afkomstig is van Charlie Allen, de bedenker/voorvechter van het principe.
Het idee is simpel, maar ook weer niet. Het eerste deel is waarschijnlijk redelijk eenvoudig te begrijpen en heeft te maken met het principe dat LEDs alleen licht geven als de plus en de min goed aangesloten zijn. Als je naar onderstaande afbeelding kijkt, dan zie je dat je door het omwisselen van de plus en min, de ene of de andere LED aanschakelt.
En toen begreep ik het zelf eerst even niet meer. Want wat als je allebei de LEDs aan wilt schakelen? Dat kan in principe niet. Maar je kunt het wel laten lijken alsof het zo is door de plus en min steeds om te wisselen. Je schakelt dus beide om en om LEDs snel genoeg aan (en uit) waardoor het lijkt alsof ze beiden aan zijn.
Voeg je nu een derde aansluiting toe dan kun je in totaal 6 LEDs aansluiten en schakelen:
Daarbij is het niet voldoende om tussen 0V en 5V te schakelen, je moet een van de 3 pinnen als het ware elke keer loskoppelen van de schakeling. Dat hoef je gelukkig niet te doen door het kabeltje los te trekken, het is voldoende om de I/O pin op “input” te zetten.
Met 5 I/O pinnen kom je dan uiteindelijk tot de maximaal 20 LEDs.
In het filmpje hierboven, afkomstig van instructables.com kun je zien dat het inderdaad lijkt alsof alle LEDs branden terwijl ze dus eigenlijk snel aan/uit geschakeld worden. Het is even wat meer werk, maar het resultaat is op zijn minst intrigerend.
Charlieplexing en de ATTiny85 https://t.co/dxtRMSt7ye
@___pi Dit weekend eerst kerstboom van triplex + ledjes + servo met bewegende kerstster erboven. Versie 2 mogelijk… https://t.co/VkBb1djczg