Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

48 x 8 scrollende LED-matrix met Arduino.

Componenten en benodigdheden

Arduino UNO
× 1
74HC595 8 bit serieel naar parallel schakelregister
× 7
Weerstand 475 ohm
× 56
Mannelijke kop 40 positie 1 rij (0,1")
× 2
Vrouwelijke kop 8 positie 1 rij (0,1")
× 21
Algemene printplaat 6"x4"
× 4
8X8 LED-matrix
× 6
BC 548 Transistor
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Hot lijmpistool (algemeen)
Digilent Mastech MS8217 Autorange digitale multimeter

Apps en online services

Arduino IDE

Over dit project

Hallo allemaal!

Dit project gaat over het maken van een 48x8 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 ik van mijn leraar kreeg om te proberen er een te bouwen. Dus 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 vond het schakelschema online en dat was mijn enige referentie om dit project te bouwen. Ik begon met een beetje onderzoek over schuifregisters en multiplexen in Arduino.

Het circuit

Componenten verzamelen

Ik verzamelde alle componenten uit verschillende bronnen. Ik heb dit 5 mm 8x8 gemeenschappelijke kathode LED-matrixdisplay van een online website.

Het prototype bouwen

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.

Dus als u een eenvoudige 8x8-matrix kunt maken, kunt u eenvoudig het gedeelte van het circuit voor de kolombesturing repliceren en de matrix uitbreiden naar een willekeurig aantal kolommen. U hoeft slechts één 74hc595 toe te voegen voor elke 8 kolommen (één 8x8-module) die u aan het circuit toevoegt. Met dat in gedachten heb ik mijn 8x8-prototype gemaakt.

Soldeerfase

Ik heb aparte puntborden genomen om de rij- en kolombedieningen te maken en verlengde draden en koppen om ze met elkaar te verbinden.

Als je eenmaal met succes een 8x8-matrix hebt gemaakt, hoef je alleen maar meer schuifregisters met een gemeenschappelijke klok in serie te schakelen om de kolommen aan te sturen. het heeft slechts een enkele 74hc595 nodig om alle rijen te besturen. Dus op basis van het aantal kolommen kunnen er meer schuifregisters worden toegevoegd, er is geen limiet voor het aantal kolommen dat u kunt toevoegen.

De tweede helft bouwen

Omdat ik op dat moment geen toegang had tot 3D-printen, benaderde ik een plaatselijke timmerman om een ​​zaak te maken.

De hoes die hij maakte was veel groter dan ik had verwacht, het is beter om een ​​kleinere hoes te ontwerpen met Fusion 360 of andere ontwerpsoftware en de hoes in 3D te printen. Er zijn gaten gemaakt in de behuizing om de stroom- en usb-kabels aan te sluiten.

De Code

De code is te vinden in de bijlagen bij dit project.

Hier zullen we over de rijen scannen en de kolomregels voeden met de juiste logische niveaus. De code bepaalt de snelheid van het scrollende bericht en het bericht dat we gaan weergeven. De richting van de scroll is standaard van rechts naar links in de code, maar met een kleine aanpassing kan het ook in andere richtingen worden geïmplementeerd.

Het resultaat

Bedankt! :)

Code

  • Arduino-code voor 48x8 LED-matrix
Arduino-code voor 48x8 LED-matrixC/C++
Aduino code voor 48x8 LED Matrix. De verbindingen en de code worden uitgelegd als commentaar in de code zelf.
/*/////////////////////////////// ///////////////////////////////////////////////// * Arduino-code om scrollende karakters weer te geven op 6 of meer 8x8 LED-matrix. * * Het aantal matrices kan worden vergroot met een kleine wijziging in de code. * * Opmerkingen worden in elke verklaring gegeven voor bewerking. * * Gecodeerd door Prasanth KS * * Contactpersoon:[email protected] */*//////////////////////////////// /////////////////////////////////////////////////char bericht [] ="WELCOME WIZ";//Wijzig de tekst hier.int scrollspeed=5;//Stel de scrollsnelheid in (lager=sneller)int x;int y;//Columnsint clockPin1 =2; // Arduino-pin aangesloten op klokpen 11 van 74HC595int latchPin1 =3; // Arduino-pin aangesloten op Latch Pin 12 van 74HC595int dataPin1 =4; // Arduino-pin aangesloten op Data Pin 14 van 74HC595// Rowsint clockPin2 =5; // Arduino-pin aangesloten op klokpen 11 van 74HC595int latchPin2 =6; // Arduino-pin aangesloten op Latch Pin 12 van 74HC595int dataPin2 =7; //Arduino-pin aangesloten op datapin 14 van 74HC595//BITMAP//Bits in deze array staat voor één LED van de matrix//8 is # rijen, 6 is # LED matricesbyte bitmap [8][7]; int aantalZones =sizeof(bitmap) / 8; // Eén zone verwijst naar één 8 x 8 matrix (groep van 8 kolommen) int maxZoneIndex =numZones-1; int numCols =numZones * 8;//FONT DEFENITIONbyte alfabetten [][8] ={ {0,0,0, 0,0},//@ als SPACE //{8,28,54,99,65},//<<{31, 36, 68, 36, 31},//A {127, 73, 73, 73, 54},//B {62, 65, 65, 65, 34},//C {127, 65, 65, 34, 28},//D {127, 73, 73, 65, 65}, //E {127, 72, 72, 72, 64},//F {62, 65, 65, 69, 38},//G {127, 8, 8, 8, 127},//H {0 , 65, 127, 65, 0},//I {2, 1, 1, 1, 126},//J {127, 8, 20, 34, 65},//K {127, 1, 1, 1, 1},//L {127, 32, 16, 32, 127},//M {127, 32, 16, 8, 127},//N {62, 65, 65, 65, 62}, //O {127, 72, 72, 72, 48},//P {62, 65, 69, 66, 61},//Q {127, 72, 76, 74, 49},//R {50 , 73, 73, 73, 38},//S {64, 64, 127, 64, 64},//T {126, 1, 1, 1, 126},//U {124, 2, 1, 2, 124},//V {126, 1, 6, 1, 126},//W {99, 20, 8, 20, 99},//X {96, 16, 15, 16, 96}, // Y {67, 69, 73, 81, 97},//Z}; ongeldige setup () { pinMode (latchPin1, OUTPUT); pinMode (klokPin1, UITGANG); pinMode (dataPin1, UITGANG); pinMode (LatchPin2, UITGANG); pinMode (klokPin2, UITGANG); pinMode (dataPin2, UITGANG); //Clear bitmap for (int row =0; row <8; row++) { for (int zone =0; zone <=maxZoneIndex; zone++) { bitmap[row][zone] =0; } }}//FUNCTIONS// Toont bitmap-array in de matrixvoid RefreshDisplay(){ for (int row =0; row <8; row++) {int rowbit =1 <=0; zone--) {shiftOut (dataPin1, clockPin1, MSBFIRST, bitmap [rij] [zone]); } // Draai beide vergrendelingen tegelijk om om flikkering te elimineren digitalWrite (LatchPin1, HIGH);//Breng de vergrendelingspin 1 hoog om de chip digitalWrite (LatchPin2, HIGH) te signaleren;//Zet de vergrendelingspin 2 hoog om de signaalchip te signaleren //Wacht vertraging Microseconden (300); }}// Converteert rij en kolom naar bitmapbit en zet het uit/onvoid Plot(int col, int row, bool isOn){ int zone =col / 8; int colBitIndex =x % 8; byte colBit =1 <> 1; // Verschuif het laagste bit van de volgende zone als het hoogste bit van deze zone. if (zone   

Schema's

Alleen voor referentiedoeleinden. Raadpleeg voor pinverbindingen de opmerkingen in de code.

Productieproces

  1. Maak Monitor Ambilight met Arduino
  2. Arduino met Bluetooth om een ​​LED te bedienen!
  3. LED-matrix + bewegingssensor deurdisplay [Arduino Holiday]
  4. Arduino Quadruped
  5. LED-helderheid regelen met Bolt en Arduino
  6. Enkele LED Matrix Arduino Flip Clock
  7. Arduino RGB-kleurenmixer
  8. Een LED-matrix besturen met Arduino Uno
  9. FM-radio met Arduino en RDA8057M
  10. DMX RGB LED buiten
  11. LED-roulettespel