Charlieplexing med Raspberry Pi (3 / 9 steg)
Steg 3: Koden och en video
LYSDIODER = [[1,2], [2.1], [1,3], [3,1], [2,3], [3,2]]
Detta fungerar bra, men är mycket statisk. För att lägga till en fjärde bly, måste du gå in och utöka förteckningen manuellt. Detta fungerar bra för ett litet antal leads, när du kommer till 10 leder är det 90 lysdioder. Jag ville ha ett sätt att automatiskt generera listan med lysdioder. (Se mina kommentarer i det sista steget för mer om detta.)
Så, jag skapade en lista över leads, baserat på deras GPIO pinkod på Raspberry Pi, sedan sprang leads genom två för loopar att generera listan automatiskt:
# definiera en uppsättning stift som leder
charliePins = [7,11,12]
# Definiera matrisen med lysdioder. Detta görs normalt
# genom att definiera varje par separat, men jag ville koden
# för att vara lätt att expandera, så jag gick med denna metod för
# cykling genom stiften och skapa paren. Det
# har nackdelen att inte göra dem för större
# uppsättningar av par, men är lättare att underhålla, IMO.
charlieLEDS =]
för i i range(0,len(charliePins)-1):
för j i range(i+1,len(charliePins)):
charlieLEDS.append([charliePins[i],charliePins[j]])
charlieLEDS.append([charliePins[j],charliePins[i]])
När jag kör den bifogade uppförandekoden, får du en ganska ljus display: