Inhoudsopgave:
- Stap 1: Verzamel de tools en componenten
- Stap 2: Het circuit bouwen op Breadboard
- Stap 3: Solderen
- Stap 4: Testen van de voltooide eerste helft van het circuit
- Stap 5: Het bouwen van de tweede helft
- Stap 6: Het resultaat
Video: 48 x 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers. - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Hallo allemaal
Dit is mijn eerste Instructable en het draait allemaal om het maken van een 48 x 8 programmeerbare scrollende LED-matrix met behulp van een Arduino Uno en 74HC595 schuifregisters. Dit was mijn eerste project met een Arduino-ontwikkelbord. Het was een uitdaging die me door mijn leraar werd gegeven. Toen ik deze uitdaging aanging, wist ik niet eens hoe ik een LED moest laten knipperen met een Arduino. Dus ik denk dat zelfs een beginner dit kan doen met een beetje geduld en begrip. Ik begon met een beetje onderzoek over schuifregisters en multiplexen in Arduino. Als schuifregisters nieuw voor u zijn, raad ik u aan de basisprincipes van multiplexen en doorlussen van schuifregisters te leren voordat u met de matrices begint. Dat zal je veel helpen om de code en de werking van het scrollende display te begrijpen.
Stap 1: Verzamel de tools en componenten
Componenten
- 1. Arduino Uno R3 - 1
- 2. 74HC595 8 bit serieel naar parallel schuifregisters. - 7
- 3. BC 548/2N4401 Transistors - 8
- 4. Weerstanden van 470 Ohm - aantal kolommen + 8
- 5. Voorkeursbord 6x4 inch - 4
- 6. Kleurgecodeerde draden - Naar behoefte
- 7. IC-houders - 7
- 8. 5 mm of 3 mm 8x8 gemeenschappelijke kathode mono kleur LED Matrix - 6
- 9. Mannelijke en vrouwelijke headers - Zoals vereist.
Benodigde gereedschappen
- 1. Soldeerset
- 2. Multimeter
- 3. Lijmpistool
- 4. Desoldeerpomp
- 5. 5V-voeding
Stap 2: Het circuit bouwen op Breadboard
Het eerste dat u moet doen voordat u het prototype bouwt, is een speldendiagram van uw 8x8-matrix krijgen en een referentiepunt markeren voor het identificeren van de pennen in al uw matrices. Dit kan u helpen bij het samenstellen van het circuit.
Ik heb een speldendiagram bijgevoegd van de matrixmodule die ik hier heb gebruikt. In mijn module waren de rijen de negatieve pinnen. Dit pin-diagram blijft hetzelfde voor de meeste modules op de markt.
In het circuit wordt getoond dat een enkel schuifregister wordt gebruikt om de 8 rijen te besturen en voor het besturen van de kolommen gebruiken we één schuifregister voor elke 8 kolommen.
Laten we een eenvoudig 8 x 8 scroll-display op het breadboard bouwen.
Het circuit is opgesplitst in twee delen: rijbesturing en kolombesturing. Laten we eerst het kolombesturingselement bouwen.
Pin 4 van Arduino is verbonden met Pin 14 (SER) van het schuifregister. (Dit is de seriële gegevensinvoerpin van het schuifregister. De logische niveaus die nodig zijn om de LED's in te schakelen, worden door deze pin gevoerd
Pin 3 van Arduino is verbonden met Pin 12 (RCLK) van het schuifregister. (Laten we deze pin de outputklokpin noemen. De gegevens in het geheugen van de schuifregisters worden naar de uitgang geduwd wanneer deze klok wordt getriggerd.)
Pin 2 van Arduino is verbonden met Pin 11 (SRCLK) van het schuifregister. (Dit is de ingangsklokpen die gegevens naar het geheugen verschuift.)
VCC +5V wordt aan het schuifregister gegeven via pin 16 en hetzelfde is verbonden met pin 10. (Waarom? Pin 10 is de SRCLR-pin, die de gegevens in het schuifregister wist wanneer deze wordt geactiveerd. Het is een actieve lage pin, dus om de gegevens in het geheugen van het schuifregister te behouden, moet deze pin altijd van +5V worden voorzien.)
De massa is verbonden met zowel de GND Pin (Pin 8 van het schuifregister) en OE Pin (Pen 13 van het schuifregister). (Waarom? De uitgangspin moet worden geactiveerd om uitgangen te geven volgens het kloksignaal. Het is een actieve lage pin, net als de SRCLR-pin, dus deze moet altijd in de grondtoestand worden gehouden om de uitgangen.)
De kolompennen van de matrix zijn aangesloten op het schuifregister zoals weergegeven in het schakelschema met een weerstand van 470 ohm tussen de matrix en het schuifregister
Nu, voor het rijbesturingscircuit.
Pin 7 van Arduino is verbonden met Pin 14 (SER) van het schuifregister
Pin 5 van Arduino is verbonden met Pin 11 (SRCLK) van het schuifregister
Pin 6 van Arduino is verbonden met Pin 12 (RCLK) van het schuifregister
VCC +5V wordt gegeven aan Pin 16 en Pin 10 zoals hierboven beschreven
Massa is verbonden met Pin 8 en Pin 13
Zoals ik hierboven heb vermeld, waren de rijen in mijn geval de negatieve pinnen. Het is beter om de negatieve pinnen van uw matrix te beschouwen als de rijen van uw display. De massaverbinding moet worden geschakeld naar deze negatieve pinnen met behulp van BC548/2N4401-transistoren die worden bestuurd door de logische uitgangsniveaus van het schuifregister. Dus hoe meer negatieve pinnen, hoe meer transistoren we nodig hebben
Geef de rijverbindingen zoals weergegeven in het schakelschema
Als u erin bent geslaagd het prototype van het 8 x 8 matrixdisplay te maken, kunt u eenvoudig het gedeelte van het circuit voor de kolombesturing repliceren en de matrix uitbreiden naar een willekeurig aantal kolommen. U hoeft alleen maar één 74HC595 toe te voegen voor elke 8 kolommen (één 8 x 8 module) en deze in serie te schakelen met de vorige.
Daisy chaining van de schuifregisters voor het toevoegen van meer kolommen
Daisy chain in de elektrotechniek is een bedradingsschema waarin meerdere apparaten achter elkaar worden aangesloten.
Het mechanisme is eenvoudig: de SRCLK (ingangsklok. Pin 11) en de RCLK (uitgangsklok. Pin 12) pinnen worden gedeeld tussen alle doorgeluste schuifregisters, terwijl elke QH-PIN (Pin 9) van het vorige schuifregister in de chain wordt gebruikt als seriële invoer voor het volgende schuifregister via de SER PIN (Pin 14).
Simpel gezegd, door de schuifregisters in serie te schakelen, kunnen ze worden bestuurd als een enkel schuifregister met een groter geheugen. Als u bijvoorbeeld twee 8-bits schuifregisters in serie doorschakelt, werken ze als een enkel 16-bits schuifregister.
De code
In de code voeden we de kolommen met de respectieve logische niveaus volgens de invoer terwijl we langs de rijen scannen. De karakters van A tot Z worden in de code gedefinieerd als logische niveaus in een bytearray. Elk karakter is 5 pixels breed en 7 pixels hoog. Ik heb een meer gedetailleerde uitleg gegeven over de werking van de code als commentaar in de code zelf.
De Arduino-code is hier bijgevoegd.
Stap 3: Solderen
Om het gesoldeerde circuit begrijpelijker te maken, heb ik het zo groot mogelijk gemaakt en aparte borden gegeven voor de rij- en kolomcontrollers en deze met elkaar verbonden met behulp van headers en draden. Je kunt het veel kleiner maken door de componenten dichter bij elkaar te solderen of als je goed bent in het ontwerpen van PCB's, kun je ook een kleinere aangepaste PCB maken.
Zorg ervoor dat u een weerstand van 470 ohm plaatst op elke pin die naar de matrix leidt. Gebruik altijd headers om de LED-matrices op het bord aan te sluiten. Het is beter om ze niet rechtstreeks op het bord te solderen, omdat langdurige blootstelling aan hitte ze permanent kan beschadigen.
Omdat ik aparte borden heb gemaakt voor de rij- en kolombediening, heb ik draden van het ene bord naar het andere verlengd om de kolommen met elkaar te verbinden. Hier is het bord aan de bovenkant voor het besturen van de rijen en het bord aan de onderkant voor het besturen van de kolommen.
het heeft slechts een enkele 74HC595 nodig om alle 8 rijen aan te drijven. Maar op basis van het aantal kolommen moeten er meer schuifregisters worden toegevoegd, er is geen theoretische limiet voor het aantal kolommen dat u aan deze matrix kunt toevoegen. Hoe groot kun je het maken? Laat het me weten als je er bent!;)
Stap 4: Testen van de voltooide eerste helft van het circuit
Test het altijd halverwege om mogelijke fouten te vinden, zoals losse verbindingen, verkeerde pin-verbinding etc: Veel mensen die mij om hulp vroegen bij het vinden van de fout in hun matrix hadden hun fout gemaakt met de rij-kolom pin-out van de matrixmodule. Controleer het twee keer voordat u gaat solderen en gebruik kleurgecodeerde draden om de pinnen gemakkelijk te onderscheiden.
Stap 5: Het bouwen van de tweede helft
Verleng hetzelfde kolombesturingscircuit. De rijen zijn in serie verbonden met de vorige.
De SRCLK- en RCLK-pinnen worden parallel genomen en de QH (Serial Data Out. Pin 9) van het laatste schuifregister van het voltooide circuit is verbonden met de SER (Serial Data in. Pin 14) van het volgende schuifregister. De VCC- en GND-stroom worden ook gedeeld tussen alle IC's.
Stap 6: Het resultaat
Nadat je klaar bent met solderen, is de volgende stap het maken van een case voor je display. Het is altijd beter om een hoesje op maat te ontwerpen met Fusion 360 of een andere 3D-ontwerptool en het hoesje in 3D te printen. Omdat ik op dat moment geen toegang had tot 3D-printen, heb ik een houten kist gemaakt met de hulp van een vriend die goed is in houtbewerking.
Ik hoop dat je genoten hebt van het lezen van dit instructable. Plaats de foto's van jouw versie van dit project in de comments hieronder en als je vragen hebt, stel ze dan hier of stuur een e-mail naar [email protected]. Ik help je graag verder.
Aanbevolen:
Scrollende tekstweergave (A tot Z-gids): 25 stappen (met afbeeldingen)
Scrollende tekstweergave (A tot Z-gids): in deze instructable / video zal ik je stap voor stap begeleiden hoe je scrollende tekstweergave kunt maken met Arduino. Ik zal niet uitleggen hoe je code voor Arduino maakt, ik zal je laten zien hoe je bestaande code kunt gebruiken. Wat en waar moet je mee
Halloween-project met schedel, Arduino, knipperende LED's en scrollende ogen - Maker, MakerED, MakerSpaces: 4 stappen
Halloween-project met schedel, Arduino, knipperende LED's en scrollende ogen | Maker, MakerED, MakerSpaces: Halloween-project met schedel, Arduino, knipperende LED's en scrollende ogen Binnenkort is het Halloween, dus laten we een eng project maken terwijl we coderen en doe-het-zelf (een beetje sleutelen…). De tutorial is gemaakt voor mensen die geen 3D-printer hebben, we gebruiken een 21 cm plas
De helderheid van LED regelen met behulp van Arduino en Bluetooth-module (HC-05): 4 stappen
De helderheid van LED regelen met behulp van Arduino en Bluetooth-module (HC-05): Inleiding In deze tutorial gaan we de helderheid van LED regelen met behulp van Arduino UNO, Bluetooth-module (HC-05) en Android-applicatie voor Bluetooth (Bluetooth Terminal)
Scrollende teleprompter op volledig scherm: 10 stappen
Scrollende teleprompter op volledig scherm: ik had een teleprompter nodig om me te helpen mooiere video's te maken voor mijn website over het maken van houtsneden, dus heb ik deze gebouwd, met niets anders dan een paar stukjes sloophout en glas, en alleen gratis software. Bij het opnemen van video's , ontdekte ik dat ik n
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik