Multiplexering med Arduino - transistorer (jag gjorde det på techshop) (2 / 7 steg)
Steg 2: Multiplexing
Bilden i det här steget visar en grupp av 9 lysdioder, det finns 3 rader och 3 kolumner. Raderna och kolumnerna inte spelar någon roll vilken ordning de är i eller vilket som är anod/katoden men maskinvaran måste matcha programvaran! När det gäller bilden är raden "dominerande" över kolonnen. Vad jag menar med det är om man tittar på stegen, en rad är inställd på medan vissa kolumner anges att driva lysdioderna. Hur sker detta? Också beroende på koden måste du göra en "dominerande" jag gör detta genom att ha en rad funktion som anropar funktionen en kolumn varje gång ändras raden.
Eftersom det finns 3 steg och de slutliga bilderna säger "vad du ser", hur det fungerar? Bra om förändringen som sker kan säga varje 1ms då det mänskliga ögat inte kan säga skillnaden, på samma sätt som en uppdateringsfrekvens eller stommen per andra arbete på en TV. Så verkligen endast en rad av lysdioder är påslagna samtidigt, men för ögat de alla verkar vara på på en gång.
Multiplexering förhållandet förbättrar ännu mer när du lägger till fler rader och kolumner! Säg att du vill en 16 av 16 display, som är 256 lysdioder. Med Multiplexing som är 16 rader, 16 kolumner så 32 stift för att styra 256 lysdioder! 32 är fortfarande en hel del Digital stift (Arduino endast har 12...) men det är där du kan använda SKIFT register för att använda ännu mindre stift.
Nu detta ta upp ett problem, för att ständigt Visa denna bild koden måste hålla ändra rader varje par ms så alla rader verkar vara på. Så kan inte saker som förseningar användas med multiplexing. Tyvärr verkar Arduino koden är starkt beroende av förseningar... Lösningen? med någon av de Atmega328s Timer/räknarna, i mitt sista exempel kan du se koden för att genomföra en av timers.