Inhoudsopgave:

48 x 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers. - Ajarnpa
48 x 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers. - Ajarnpa

Video: 48 x 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers. - Ajarnpa

Video: 48 x 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers. - Ajarnpa
Video: 🇳🇱 MAX7219 8-DIGIT LED DISPLAY & SCHUIFREGISTERS - Arduino les #21 2024, November
Anonim
48 X 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers
48 X 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers
48 X 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers
48 X 8 scrollende LED-matrixweergave met behulp van Arduino en Shift Registers

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

Het verzamelen van de gereedschappen en componenten
Het verzamelen van de gereedschappen 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 circuit bouwen op Breadboard
Het circuit bouwen op Breadboard
Het circuit bouwen op Breadboard
Het circuit bouwen op Breadboard
Het circuit bouwen op Breadboard
Het circuit bouwen op Breadboard
Het circuit bouwen op Breadboard
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

Solderen
Solderen
Solderen
Solderen
Solderen
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

De voltooide eerste helft van het circuit testen
De voltooide eerste helft van het circuit testen

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

Bouwen aan de tweede helft
Bouwen aan de tweede helft
Bouwen aan de tweede helft
Bouwen aan de tweede helft
Bouwen aan de tweede helft
Bouwen aan 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

Image
Image

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: