Inhoudsopgave:

LED-dotmatrixweergave: 5 stappen
LED-dotmatrixweergave: 5 stappen

Video: LED-dotmatrixweergave: 5 stappen

Video: LED-dotmatrixweergave: 5 stappen
Video: "Сила желчи и Дополнительная жизнь для позвоночника" Запись мастер-класса 2024, Juli-
Anonim
LED-dotmatrixweergave
LED-dotmatrixweergave

In dit project ga je weer twee sets schuifregisters gebruiken. Deze worden verbonden met de rijen en kolommen van het dot-matrixscherm. U toont dan een eenvoudig object, of sprite, op het scherm en animeert het. Het belangrijkste doel van dit project is om u te laten zien hoe een dot matrix-display werkt en om het concept van multiplexen te introduceren, omdat dit een onschatbare vaardigheid is om te hebben.

Stap 1: Dingen die nodig zijn

Dingen die nodig zijn
Dingen die nodig zijn

voor dit project heb je nodig: 1. 1 LED-matrix 2. 8 weerstanden 1k ohm 3. 8 557 transistors 4. 1 ULN2803 IC 5 Arduino 6. 2 74HC595 schuifregister 7. 2 Breadboard 8. Aansluitdraden

Stap 2: Werken

Dot-matrix-eenheden worden meestal geleverd in een 5x7- of 8x8-matrix van LED's. De LED's zijn zodanig in de matrix bedraad dat de anode of kathode van elke LED in elke rij gemeenschappelijk is. Met andere woorden, in een gemeenschappelijke anode-LED-dotmatrixeenheid zou elke rij LED's al hun anoden in die rij met elkaar bedraad hebben. De kathoden van de LED's zouden allemaal in elke kolom met elkaar worden verbonden. De reden hiervoor zal snel duidelijk worden. Een typische 8x8 dot-matrixeenheid met één kleur heeft 16 pinnen, 8 voor elke rij en 8 voor elke kolom. De reden dat de rijen en kolommen allemaal met elkaar zijn verbonden, is om het aantal benodigde pinnen te minimaliseren. Als dit niet het geval was, zou een 8x8-dotmatrixeenheid met één kleur 65 pinnen nodig hebben, één voor elke LED en een gemeenschappelijke anode- of kathodeconnector. Door de rijen en kolommen aan elkaar te bedraden, zijn slechts 16 pinnen nodig. Dit vormt nu echter een probleem als je een bepaalde LED in een bepaalde positie wilt laten oplichten. Als u bijvoorbeeld een gemeenschappelijke anode-eenheid had en de LED op X, Y-positie 5, 3 (5e kolom, 3e rij) wilde laten branden, dan zou u een stroom op de 3e rij toepassen en de 5e kolompin aarden. De LED in de 5e kolom en 3e rij zou nu gaan branden. Stel je nu voor dat je de LED bij kolom 3, rij 6 ook wilt laten branden. Je zet dus een stroom op de 6e rij en aardt de 3e kolompen. De LED bij kolom 3, rij 6 brandt nu. Maar wacht… de LED's bij kolom 3, rij 6 en kolom 5, rij 6 gaan ook branden. Dit komt omdat u stroom toepast op rij 3 en 6 en kolommen 3 en 5 aardt. U kunt de ongewenste LED's niet uitschakelen zonder de gewenste LED's uit te schakelen. Het lijkt erop dat er geen manier is om alleen de twee vereiste LED's te verlichten met de rijen en kolommen met elkaar verbonden zoals ze zijn. De enige manier waarop dit zou werken, zou zijn om voor elke LED een aparte pinout te hebben, wat betekent dat het aantal pinnen zou springen van 16 naar 65. Een 65-pins dot-matrixeenheid zou erg moeilijk te bedraden en te bedienen zijn omdat een microcontroller met minimaal 64 digitale uitgangen. Is er een manier om dit probleem te omzeilen? Ja, dat is er, en het wordt multiplexing (of muxing) genoemd. Multiplexing is de techniek waarbij één rij van het scherm tegelijk wordt ingeschakeld. Door de kolom te selecteren die de rij bevat die de LED bevat die u wilt laten branden en vervolgens de stroom naar die rij in te schakelen (of andersom voor gewone kathodedisplays), zullen de gekozen LED's in die rij oplichten. Die rij wordt dan uitgeschakeld en de volgende rij wordt ingeschakeld, opnieuw met de juiste kolommen gekozen en de LED's in de tweede rij gaan nu branden. Herhaal met elke rij tot je onderaan bent en begin dan opnieuw bovenaan. Als dit snel genoeg wordt gedaan (bij meer dan 100 Hz of 100 keer per seconde), dan zal het fenomeen van aanhoudend gezichtsvermogen (waarbij een nabeeld ongeveer 1/25ste van een seconde op het netvlies blijft) betekenen dat het scherm stabiel zijn, ook al wordt elke rij in volgorde in- en uitgeschakeld. Door deze techniek te gebruiken omzeil je het probleem van het weergeven van individuele LED's zonder dat de andere LED's in dezelfde kolom of rij ook branden. Door de rijen naar beneden te scannen en de respectievelijke LED's in elke kolom van die rij te verlichten en dit zeer snel te doen (meer dan 100 Hz), zal het menselijk oog het beeld als stabiel waarnemen en zal het beeld van het hart herkenbaar zijn in het LED-patroon. Je gebruikt deze multiplextechniek in de projectcode. Zo moet je de hartanimatie weergeven zonder ook externe LED's weer te geven.

Stap 3:

Afbeelding
Afbeelding

je moet de waarde berekenen van de weerstanden die je kunt gebruiken. Je moet eerst wat specificaties van je LED's krijgen, je moet hun voorwaartse spanning en voorwaartse stroom kennen, je kunt deze informatie uit de datasheet halen. Het circuit werkt op 5V, dus uw bronspanning is 5V, wat kan worden verkregen met een 5v-adapter. Download het originele bestand om de schema's beter te zien. (druk op het "i"-pictogram in de linkerbovenhoek van de afbeelding)

Stap 4: Het laten werken

Ik heb het programma gemaakt dat de zin van de arduino seriële monitor op de matrix weergeeft, mijn code is erg basic. Ik heb een Android-applicatie gemaakt om het lettertype voor het display te maken. Ga naar de volgende pagina om de app te installeren

Stap 5: Alles klaar !!!!!!!

Helemaal klaar !!!!!!!!!
Helemaal klaar !!!!!!!!!

Gefeliciteerd, je 8x8 led matrix is klaar. Je kunt alles weergeven wat je maar wilt. Nu kun je ermee spelen en 8x8 led-matrix maken door de Led's of 16x8-matrix handmatig te solderen, enzovoort !!!!!!

Aanbevolen: