Innholdsfortegnelse:
- Trinn 1: 20 lysdioder på 5 pins
- Trinn 2: Charlieplexing
- Trinn 3: Sette det i gang
- Trinn 4: Mindre og mer allsidig …
- Trinn 5: Itty Bitty
- Trinn 6: Programvare
Video: Slik driver du mange lysdioder fra noen få mikrokontrollerpinner. 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Ved å bruke det faktum at mange mikrokontrollerpinner har tre tilstander (+V, GND eller "høy impedans", kan du drive N*(N-1) lysdioder fra N-pinner. Så den lille 8-pinners mikrokontrolleren som en PIC12Fxxx eller en ATtiny11 kan kjøre 20 lysdioder har fem tilgjengelige utgangspinner, og har fortsatt en pinne igjen for en slags inngang. Se også
Trinn 1: 20 lysdioder på 5 pins
Den nåværende avlingen av mikrokontrollere med lav pin-telling (6 pins til 20 pins på
hele pakken) er attraktivt priset og "søt", men spørsmålet stilles om hvordan du best kan bruke disse pinnene til vanlige applikasjoner, for eksempel kjøring av lysdioder. En direkte-tilnærming til drivende LED-lys bruker en pinne for hver LED. Et tradisjonelt multipleksingsopplegg der rader med LED -anoder drives av ett sett med N -pinner og hver rad sin vanlige katode drives av et annet sett med M -pinner, klarer å lyse N*M -lysdioder med N+M -pinner. Men på en prosessor med bare 5 eller færre utganger (som tilfellet er med de fleste 8-pinners mikrokontrollere), får du knapt flere utganger enn direkte stasjon.
Trinn 2: Charlieplexing
Forutsatt at utgangspinnene faktisk er tri-state-standbare (aktive høye, aktive lave og høye impedanser (inngang)) er det også mulig å dele rad- og kolonnedriverne og kontrollere N*(N-1) lysdioder med bare N-pinner. En pinne er koblet til vanlige katoder i en rad med lysdioder og drivenlow, og de resterende N-1-pinnene er koblet til anodene og eitherdrevet høyt for å lyse den kolonnen, eller forlates som innganger for å forlate LEDoff. Maxim kaller denne teknikken "Charlieplexing", og beskriver den i (1); Microchip nevner også dette i dokumentet (2) (og implementerer det også på PICKit 1-kortet.) (1) "Charlieplexing-Redusert Pin-Count LED-displaymultiplexering" https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880 (2) "Tips 'n triks 8-pinners FLASH PIC mikrokontrollere" https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf (3) Charlieplexing LEDs- The theory An Instructable av rgbphil
Trinn 3: Sette det i gang
Dette driver 20 lysdioder fra en ATtiny11. En tidligere versjon av dette brettet var
faktisk bygget og vises som hovedsidebildet. Jeg er redd bildet av skjematikken er ganske håpløst; du trenger Eagle for å fortelle deg hvilke signaler som er tilkoblet hvor.
Trinn 4: Mindre og mer allsidig …
Siden det meste av brettet blir tatt opp av LED -arrayet, kan vi få plass
for enten en Attiny -brikke ELLER en mikrochip PIC12F -brikke. Skrump lysdiodene ned til 3 mm og gå til et tosidig brett, og vi får noe om 27x44 mm Akk, dette brettet er ikke testet ennå …
Trinn 5: Itty Bitty
Mikrochip har selvfølgelig sine 6 -pinners PIC10F -brikker, som kan drive en
bare 6 lysdioder fra de 3 utgangspinnene. Dette er omtrent 16 mm i diameter. Når du går til 603 lysdioder, kan du bli litt mindre, men jeg er ikke sikker på hva som er poenget.
Trinn 6: Programvare
Programvaren blir litt rotete av flere årsaker:
1) for de viste kretskortene, er lysdiodene lagt ut på en måte som er praktisk for PCB -oppsettet, i stedet for i "riktig" bitrekkefølge. IMO, dette er måten å gjøre ting på, men det betyr at rad 1 ikke nødvendigvis betyr bit 1, eller kolonne 3 betyr ikke bit 3. Dette krever et nivå av kartlegging mellom den vanlige rad-/kolonneadresseringen og biter som trenger innstilling. 2) Siden de samme bitene brukes for anoder og katoder, kan den vanlige (rad) tilkoblingen for noen biter være i midten av drevne (kolonne) biter. Det betyr at du må flytte kolonnebiter rundt, avhengig av om de er før eller etter radbiten for det settet med kolonner. 3) Du må avlede utgangsord for både ioport og portretningsregister. Den vedlagte ASM -koden for ATtiny11 er et "proof of concept". Det er pinlig uoptimalisert og dårlig kommentert, men det er alt jeg har skrevet så langt.
Anbefalt:
Allsidig I/O Extender PCB for å kontrollere mange Nixie -rør med I2C: 9 trinn (med bilder)
Allsidig I/O Extender PCB for å kontrollere mange Nixie -rør med I2C: For tiden er det stor interesse for å bringe vintage nixie -rør til liv. Mange nixie tube -klokkesett er tilgjengelige på markedet. Det så ut til å være enda en livlig handel med gamle lager av russiske nixie -rør. Også her på Instructables der
Kontroller mange servoer med Arduino !: 4 trinn (med bilder)
Kontroller mange servoer med Arduino !: Først burde jeg fortelle noe. Jeg hadde ikke vakre bilder. Så jeg har tatt bildene fra bildr.blog. Vi vet, en Arduino UNO har ikke mye pwm -pinner for å kontrollere mange servoer. Så vi får ofte problemer med å kontrollere flere servoer av en arduino
En autonom robot med mange muligheter: 8 trinn (med bilder)
En autonom robot med mange muligheter: Hei venner, i denne instruksen skal jeg introdusere en ny versjon av min tidligere instruerbare som kan utføre følgende oppgaver: 1- Den kan bevege seg autonomt av Arduino UNO og L298N motorfører 2- Den kan gjøre rengjøring som støvsuger 3- Det ca
Slik får du Xbox -kontrolleren til å blinke med noen lysdioder, men den vil ikke riste lenger: 4 trinn
Slik får du Xbox -kontrolleren til å blinke med noen lysdioder, men den vil ikke riste lenger: DIN FJERN BLINKER MEN DEN VIL IKKE Vibrere LENGER I DETTE PROJEKTET DU MÅ TA UT MOTOREN
Slik leser du mange brytere med én MCU -pin: 4 trinn
Slik leser du mange brytere med en MCU -pin: Har du noen gang tygget på et eller flere prosjekt, og prosjektet fortsetter å vokse og vokse, mens du legger til flere ting (vi kaller det en Feaping Creaturism)? På et nylig prosjekt bygde jeg en frekvensmåler og la til fem funksjoner