Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

48 x 8 LED-Scrolling-Matrix mit Arduino.

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
74HC595 8-Bit-Seriell-zu-Parallel-Schieberegister
× 7
Widerstand 475 Ohm
× 56
Männliche Kopfzeile 40 Position 1 Zeile (0.1")
× 2
Female Header 8 Position 1 Row (0.1")
× 21
Allzweck-Leiterplatte 6"x4"
× 4
8X8 LED-Matrix
× 6
BC 548 Transistor
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)
Heißklebepistole (generisch)
Digilent Mastech MS8217 Autorange Digitalmultimeter

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Hallo zusammen!

In diesem Projekt geht es darum, eine 48x8 programmierbare LED-Scrolling-Matrix mit einem Arduino UNO- und 74HC595-Schieberegister zu erstellen.

Dies war mein erstes Projekt mit einem Arduino-Entwicklungsboard. Es war eine Herausforderung, die mir mein Lehrer gegeben hat, zu versuchen, einen zu bauen. Zu dieser Zeit, als ich diese Herausforderung annahm, wusste ich nicht einmal, wie man eine LED mit einem Arduino blinkt. Ich denke also, dass selbst ein Anfänger dies mit ein wenig Geduld und Verständnis tun kann. Ich fand den Schaltplan online und das war meine einzige Referenz, um dieses Projekt zu bauen. Ich begann mit ein wenig Recherche über Schieberegister und Multiplexing in Arduino.

Die Rennstrecke

Komponenten sammeln

Ich habe alle Komponenten aus verschiedenen Quellen gesammelt. Ich habe dieses 5 mm 8x8 LED-Matrix-Display mit gemeinsamer Kathode von einer Online-Website erhalten.

Bau des Prototyps

In der Schaltung wird gezeigt, dass ein einzelnes Schieberegister verwendet wird, um die 8 Zeilen zu steuern und um die Spalten zu steuern, verwenden wir ein Schieberegister für jeweils 8 Spalten.

Wenn Sie also in der Lage sind, eine einfache 8x8-Matrix zu erstellen, können Sie einfach den Teil der Schaltung für die Spaltensteuerung replizieren und die Matrix auf eine beliebige Anzahl von Spalten erweitern. Sie müssen nur einen 74hc595 für jeweils 8 Spalten (ein 8x8-Modul) hinzufügen, die Sie der Schaltung hinzufügen. Vor diesem Hintergrund habe ich meinen 8x8-Prototyp erstellt.

Lötphase

Ich habe separate Dot-Boards genommen, um die Zeilen- und Spaltensteuerungen zu machen, und verlängerte Drähte und Header, um sie miteinander zu verbinden.

Sobald Sie erfolgreich eine 8x8-Matrix erstellt haben, müssen Sie nur noch mehr Schieberegister mit einem gemeinsamen Takt verketten, um die Spalten anzusteuern. es braucht nur einen einzigen 74hc595, um alle Reihen anzusteuern. Basierend auf der Anzahl der Spalten können also mehr Schieberegister hinzugefügt werden, es gibt keine Begrenzung für die Anzahl der Spalten, die Sie hinzufügen können.

Aufbau der zweiten Hälfte

Da ich zu dieser Zeit keinen Zugang zum 3D-Druck hatte, wandte ich mich an einen lokalen Schreiner, um einen Fall zu machen.

Der Fall, den er gemacht hat, war viel größer als ich erwartet hatte. Es ist besser, einen kleineren Fall mit Fusion 360 oder einer anderen Designsoftware zu entwerfen und den Fall in 3D zu drucken. In das Gehäuse wurden Löcher gebohrt, um die Strom- und USB-Kabel anzuschließen.

Der Kodex

Den Code finden Sie in den Anhängen zu diesem Projekt.

Hier werden wir die Zeilen scannen und die Spaltenleitungen mit entsprechenden Logikpegeln versorgen. Der Code bestimmt die Geschwindigkeit der scrollenden Nachricht sowie die Nachricht, die wir anzeigen werden. Die Scrollrichtung ist im Code standardmäßig von rechts nach links, aber mit einer kleinen Änderung kann sie auch in andere Richtungen implementiert werden.

Das Ergebnis

Danke! :)

Code

  • Arduino-Code für 48x8 LED-Matrix
Arduino-Code für 48x8 LED-MatrixC/C++
Aduino-Code für 48x8 LED-Matrix. Die Verbindungen und der Code werden als Kommentare im Code selbst erklärt.
/*/////////////////////////////// ////////////////////////////////////////////////* Arduino-Code zum Anzeigen von scrollenden Zeichen auf 6 oder mehr 8x8 LED-Matrix. * * Die Anzahl der Matrizen kann durch eine kleine Codeänderung erhöht werden. * * Kommentare werden in jeder Aussage zur Bearbeitung angegeben. * * Kodiert von Prasanth KS * * Kontakt:[email protected] */*//////////////////////////////// ///////////////////////////////////////////////char msg [] ="WELCOME WIZ";//Text hier ändern.int scrollspeed=5;//Scrollgeschwindigkeit einstellen ( niedriger=schneller)int x;int y;//Columnsint clockPin1 =2; // Arduino-Pin verbunden mit Clock Pin 11 von 74HC595int LatchPin1 =3; // Arduino-Pin mit Latch-Pin 12 von 74HC595int verbunden dataPin1 =4; // Arduino-Pin mit Daten-Pin 14 von 74HC595//Rowsint clockPin2 =5 verbunden; // Arduino-Pin verbunden mit Clock Pin 11 von 74HC595int LatchPin2 =6; // Arduino-Pin mit Latch-Pin 12 von 74HC595int verbunden dataPin2 =7; // Arduino-Pin, der mit Daten-Pin 14 von 74HC595//BITMAP//Bits in diesem Array verbunden ist, stellt eine LED der Matrix dar// 8 ist die Anzahl der Zeilen, 6 ist die Anzahl der LED-Matrizenbyte-Bitmap[8][7]; int numZones =sizeof(Bitmap) / 8; // Eine Zone bezieht sich auf eine 8 x 8 Matrix ( Gruppe von 8 Spalten)int maxZoneIndex =numZones-1;int numCols =numZones * 8;//FONT DEFENITIONbyte alphabets[][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};void setup () {pinMode (latchPin1, OUTPUT); pinMode (clockPin1, OUTPUT); pinMode (dataPin1, AUSGANG); pinMode (latchPin2, AUSGANG); pinMode (clockPin2, AUSGANG); pinMode (dataPin2, AUSGANG); //Bitmap löschen für (int row =0; row <8; row++) { for (int zone =0; zone <=maxZoneIndex; zone++) { bitmap[row][zone] =0; } }} // FUNCTIONS // Zeigt das Bitmap-Array in der Matrixvoid RefreshDisplay () { for (int row =0; row <8; row++) { int rowbit =1 <=0; zone--) {shiftOut (dataPin1, clockPin1, MSBFIRST, bitmap[row][zone]); } // Beide Latches gleichzeitig umdrehen, um Flimmern zu beseitigen digitalWrite (latchPin1, HIGH); // Den Latch-Pin 1 auf High zurückgeben, um den Signalchip zu signalisieren DigitalWrite (latchPin2, HIGH); // Den Latch-Pin 2 auf High zurückgeben, um den Chip zu signalisieren // Warte VerzögerungMikrosekunden (300); }} // Konvertiert Zeile und Spalte in Bitmap-Bit und schaltet es aus/aufvoid Plot(int col, int row, bool isOn) {int zone =col / 8; int colBitIndex =x % 8; Byte colBit =1 <> 1; // Niedrigstes Bit aus der nächsten Zone als höchstes Bit dieser Zone verschieben. if (zone  

Schaltpläne

Nur zu Referenzzwecken. Informationen zu Pinverbindungen finden Sie in den Kommentaren im Code.

Herstellungsprozess

  1. Erstellen von Monitor-Ambilight mit Arduino
  2. Arduino mit Bluetooth zur Steuerung einer LED!
  3. LED-Matrix + Bewegungssensor-Türanzeige [Arduino Holiday]
  4. Arduino-Vierbeiner
  5. Steuerung der LED-Helligkeit mit Bolt und Arduino
  6. Einzelne LED-Matrix-Arduino Flip Clock
  7. Arduino RGB-Farbmischer
  8. Steuerung einer LED-Matrix mit Arduino Uno
  9. FM-Radio mit Arduino und RDA8057M
  10. DMX RGB LED im Freien