Indholdsfortegnelse:

48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers .: 6 trin (med billeder)
48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers .: 6 trin (med billeder)

Video: 48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers .: 6 trin (med billeder)

Video: 48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers .: 6 trin (med billeder)
Video: CS50 2013 - Week 9 2024, November
Anonim
48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers
48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers
48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers
48 X 8 Scrolling LED Matrix Display Using Arduino and Shift Registers

Hej alle

Dette er min første instruerbare, og det handler om at lave en 48 x 8 programmerbar rullende LED -matrix ved hjælp af en Arduino Uno og 74HC595 skifteregistre. Dette var mit første projekt med et Arduino udviklingstavle. Det var en udfordring, som min lærer gav mig. På det tidspunkt, hvor jeg accepterede denne udfordring, vidste jeg ikke engang, hvordan jeg skulle blinke en LED ved hjælp af en arduino. Så jeg tror, at selv en nybegynder kan gøre dette med en smule tålmodighed og forståelse. Jeg startede med lidt research om skiftregistre og multiplexing i arduino. Hvis du er ny inden for skiftregistre, anbefaler jeg, at du lærer det grundlæggende i multiplexing og daisy-chaining shift-registre, før du starter med matricerne. Det vil hjælpe dig meget med at forstå koden og funktionen af rulleskærmen.

Trin 1: Indsamling af værktøjer og komponenter

Indsamling af værktøjer og komponenter
Indsamling af værktøjer og komponenter

Komponenter

  • 1. Arduino Uno R3 - 1
  • 2. 74HC595 8 bit Serial to Parallel Shift Registers. - 7
  • 3. BC 548/2N4401 Transistorer - 8
  • 4. 470 Ohms modstande - antal kolonner + 8
  • 5. Præfbræt 6x4 tommer - 4
  • 6. Farvekodede ledninger - Efter behov
  • 7. IC -holdere - 7
  • 8. 5 mm eller 3 mm 8x8 fælles katode mono farve LED Matrix - 6
  • 9. Mandlige og kvindelige overskrifter - Efter behov.

Værktøjer påkrævet

  • 1. Loddesæt
  • 2. Multimeter
  • 3. Lim pistol
  • 4. Aflodningspumpe
  • 5. 5V strømforsyning

Trin 2: Opbygning af kredsløbet på brødbræt

Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt
Bygger kredsløbet på brødbræt

Den første ting du skal gøre, før du bygger prototypen, er at få et stiftdiagram over din 8x8 matrix og markere et referencepunkt for at identificere stifterne i alle dine matricer. Dette kan hjælpe dig, mens du samler kredsløbet.

Jeg har vedhæftet et stiftdiagram over matrixmodulet, som jeg har brugt her. I mit modul var rækkerne de negative stifter. Dette pin -diagram forbliver det samme for de fleste moduler på markedet.

Det er vist i kredsløbet, at et enkelt skiftregister bruges til at styre de 8 rækker, og til at styre kolonnerne bruger vi et skiftregister for hver 8 kolonner.

Lad os bygge en enkel 8 x 8 rullende skærm på brødbrættet.

Kredsløbet er opdelt i to dele - række kontrol og kolonne kontrol. Lad os først bygge kolonnekontrollen.

Pin 4 fra arduino er forbundet til Pin 14 (SER) i skiftregistret. (Dette er den serielle datainput -pin i skiftregistret. De logiske niveauer, der kræves for at tænde lysdioderne, føres gennem denne pin

Pin 3 fra arduino er forbundet til Pin 12 (RCLK) i skiftregistret. (Lad os navngive denne pin som output -ur -pin. Dataene i hukommelsen til skiftregistrene skubbes til output, når dette ur udløses.)

Pin 2 fra arduino er forbundet til Pin 11 (SRCLK) i skiftregistret. (Dette er input -urpinden, som flytter data ind i hukommelsen.)

VCC +5V gives til skifteregistret via Pin 16, og det samme er forbundet til Pin 10. (Hvorfor? Pin 10 er SRCLR Pin, som sletter dataene i skiftregistret, når de udløses. Det er en aktiv lav pin, så for at bevare dataene i skifteregisterets hukommelse skal denne pin forsynes med +5V hele tiden.)

Jorden er forbundet til både GND Pin (Pin 8 i skiftregistret) og OE Pin (Pin 13 i skiftregistret). (Hvorfor? Output-aktiveringspinden skal udløses for at give output i henhold til urets signal. Det er en aktiv lav pin ligesom SRCLR Pin, så den skal vedligeholdes i jordtilstanden hele tiden for at aktivere output.)

Matrixens søjlepinde er forbundet til skifteregisteret som vist i kredsløbsdiagrammet med en 470 ohm modstand mellem matrixen og skifteregistret

Nu til rækkekontrolkredsløbet.

Pin 7 fra arduino er forbundet til Pin 14 (SER) i skiftregistret

Pin 5 fra arduino er forbundet til Pin 11 (SRCLK) i skiftregistret

Pin 6 fra arduino er forbundet til Pin 12 (RCLK) i skiftregistret

VCC +5V er givet til Pin 16 og Pin 10 som beskrevet ovenfor

Jord er forbundet til Pin 8 og Pin 13

Som jeg har nævnt ovenfor, var rækkerne de negative stifter i mit tilfælde. Det er bedre at betragte de negative stifter i din matrix som rækkerne på din skærm. Jordforbindelsen skal skiftes til disse negative ben ved hjælp af BC548/2N4401 -transistorer, der styres af udgangslogikniveauerne i skiftregistret. Så jo flere negative stifter, jo flere transistorer har vi brug for

Angiv rækkeforbindelserne som vist i kredsløbsdiagrammet

Hvis det er lykkedes dig at lave prototypen på 8 x 8 matrixdisplay, kan du ganske enkelt replikere delen af kredsløbet til kolonnekontrollen og udvide matrixen til et vilkårligt antal kolonner. Du skal bare tilføje en 74HC595 for hver 8 kolonner (et 8 x 8 modul) og daisy kæde den med den forrige.

Daisy kæder skiftregisterne for at tilføje flere kolonner

Daisy chain in elektroteknik er et ledningsskema, hvor flere enheder er koblet sammen i en sekvens.

Mekanismen er enkel: SRCLK (inputur. Pin 11) og RCLK (output clock. Pin 12) ben deles mellem alle daisy-chain-skiftede registre, mens hver QH PIN (Pin 9) i det foregående skiftregister i kæde bruges som seriel input til det følgende skiftregister via SER PIN (pin 14).

Med enkle ord, ved daisy chaining af skifteregistrene, kan de styres som et enkelt skiftregister med en større hukommelse. For eksempel, hvis du daisy kæder to 8 -bit skiftregistre, fungerer de som et enkelt 16 -bit skiftregistre.

Koden

I koden fodrer vi kolonnerne med de respektive logiske niveauer i henhold til input, mens vi scanner langs rækkerne. Tegnene fra A til Z defineres i koden som logiske niveauer i et byte -array. Hvert tegn er 5 pixels bredt og 7 pixels højt. Jeg har givet en mere detaljeret forklaring om kodens funktion som kommentarer i selve koden.

Arduino -koden er vedhæftet her.

Trin 3: Lodning

Lodning
Lodning
Lodning
Lodning
Lodning
Lodning

For at gøre det loddet kredsløb lettere at forstå, har jeg gjort det så stort som muligt og givet separate tavler til række- og søjlekontrollerne og forbundet dem sammen ved hjælp af overskrifter og ledninger. Du kan gøre det meget mindre ved at lodde komponenterne tættere på hinanden, eller hvis du er god til at designe printkort, kan du også lave et mindre brugerdefineret printkort.

Sørg for at sætte en 470 ohm modstand til hver stift, der fører til matricen. Brug altid headere til at forbinde LED -matricerne til kortet. Det er bedre ikke at lodde dem direkte til brættet, da langvarig udsættelse for varme kan skade dem permanent.

Da jeg har lavet separate tavler til række- og søjlekontrollerne, forlængede jeg ledninger fra det ene bord til det andet for at forbinde søjlerne. Her er tavlen øverst til styring af rækkerne og tavlen i bunden er til styring af søjlerne.

det mangler bare en enkelt 74HC595 til at køre alle de 8 rækker. Men baseret på antallet af kolonner skal der tilføjes flere skiftregistre, der er ingen teoretisk grænse for antallet af kolonner, du kan tilføje til denne matrix. Hvor stor kan du klare det? Lad mig vide, når du kommer dertil!;)

Trin 4: Test af den færdige første halvdel af kredsløbet

Test af den færdige første halvdel af kredsløbet
Test af den færdige første halvdel af kredsløbet

Test det altid halvvejs for at finde mulige fejl som løse forbindelser, forkert stiftforbindelse osv.: Mange mennesker, der bad mig om hjælp til at finde fejlen i deres matrix, havde begået deres fejl med række-kolonne-pin-out af matrixmodulet. Kontroller det to gange før lodning, og brug farvekodede ledninger til let at skelne stifterne.

Trin 5: Opbygning af anden halvleg

Bygger anden halvleg
Bygger anden halvleg
Bygger anden halvleg
Bygger anden halvleg
Bygger anden halvleg
Bygger anden halvleg

Forlæng det samme søjlekontrolkredsløb. Rækkerne er forbundet i serie med den forrige.

SRCLK- og RCLK -benene tages parallelt, og QH (serielle data ud. Pin 9) i det sidste skiftregister i det færdige kredsløb er forbundet til SER (seriedata i. Pin 14) i det næste skiftregister. VCC- og GND -strømmen deles også mellem alle IC'erne.

Trin 6: Resultatet

Image
Image

Når du er færdig med lodning, er det næste trin at lave en kasse til dit display. Det er altid bedre at designe en brugerdefineret sag ved hjælp af Fusion 360 eller et hvilket som helst andet 3D -designværktøj og 3D -udskrive kassen. Da jeg ikke havde adgang til 3D -print på det tidspunkt, lavede jeg en trækasse ved hjælp af en ven, der er god til træbearbejdning.

Håber du nød at læse dette instruerbart. Post billederne af din version af dette projekt i kommentarfeltet herunder, og hvis du har spørgsmål, er du velkommen til at stille det her eller sende en mail til [email protected]. Jeg hjælper dig gerne.

Anbefalede: