Taula de continguts:

Muntatge i proves de matriu de punts LED MAX7219: 6 passos (amb imatges)
Muntatge i proves de matriu de punts LED MAX7219: 6 passos (amb imatges)

Vídeo: Muntatge i proves de matriu de punts LED MAX7219: 6 passos (amb imatges)

Vídeo: Muntatge i proves de matriu de punts LED MAX7219: 6 passos (amb imatges)
Vídeo: Dot Matrix Droplets 2024, Juliol
Anonim
Image
Image
Consulteu el paquet
Consulteu el paquet

Una visualització de matriu de punts és un dispositiu de visualització que conté díodes emissors de llum alineats en forma de matriu. Moviment de desplaçament: la pantalla de matriu de punts es fabrica en diverses dimensions, com ara 5x7, 8x8, 16x8, 128x16, 128x32 i 128x64, on els números representen LEDs en files i columnes. Taronja, blanc.

En aquest instructiu, passaré per la interfície d’una matriu de punts de 8x8 que té un controlador MAX7219 a un Arduino Uno. Comencem.

Subministraments

MAX7219

Pas 1: comproveu el paquet

Com podeu veure, tinc una versió SMT de la placa de controladors, és molt important verificar tots els components necessaris, ja que els components SMD són de mida molt petita i els podeu perdre fàcilment. També hi ha versió dip disponible en línia, però he utilitzat la versió smt per la seva mida.

Pas 2: una mica sobre aquesta matriu de punts particular

Una mica sobre aquesta matriu de punts particular
Una mica sobre aquesta matriu de punts particular

Un mòdul únic pot conduir un càtode comú de matriu de punts de 8x8.

Voltatge de funcionament: 5 v

Dimensions: longitud 3,2 cm X 3,2 cm d'ample X 1,3 cm d'alçada, forats amb quatre cargols, amb un diàmetre de 3 mm

Mòduls amb interfícies d’entrada i sortida, suport per a múltiples mòduls en cascada.

Els terminals IN i OUT de dades s’especifiquen al mòdul.

Pas 3: el controlador MAX7219

El controlador MAX7219
El controlador MAX7219
El controlador MAX7219
El controlador MAX7219

El MAX7219 és un CI dissenyat per controlar una matriu LED de 8x8. L'IC és un controlador de visualització de càtode comú d'entrada sèrie (negatiu comú) que connecta microprocessadors (o microcontroladors) amb pantalles LED numèriques de 7 segments de fins a 8 dígits, pantalles de gràfics de barres o 64 LED individuals.

Funcions i especificacions

Rang de tensió de funcionament: +4,0 a + 5,5V

Voltatge de funcionament recomanat: + 5V

Tensió d'alimentació màxima: 6V

Corrent màxim permès per dibuixar a través de cada pin del segment: 100mA

Corrent màxim permès a través de cada pin de terra DIGIT: 500 mA

Baix consum d'energia

Temps de retard de dades a segments: 2,2 m Seg

Temperatura de funcionament: de 0 ° C a + 70 ° C

Temperatura d’emmagatzematge: -65 ° C a + 150 ° C

Pas 4: el circuit

El Circuit
El Circuit
El Circuit
El Circuit

El circuit és bastant senzill i es pot construir mitjançant cables de pont masculí a femella. Només cal seguir el pinout i construir el circuit. Posteriorment, podeu muntar-lo en un PCB si feu una aplicació permanent per a Matrix.

La configuració del pin és la següent:

  • Vcc a 5V Pin d'Arduino.
  • Pin de Gnd a Gnd de l'Arduino.
  • DIN al pin digital 12 de l'Arduino.
  • CS al pin digital 11 de l'Arduino
  • CLK al pin digital 10 de l'Arduino.

Pas 5: el codi

Aquí en aquest instructiu us proporcionaré dos codis diferents. Un generarà alguns alfabets anglesos i emoticones a Matrix. L’altre permetrà que els 64 LED s’encenguin un per un. Heu d’utilitzar la biblioteca lledcontrol perquè funcioni.

Aquest és el codi per als alfabets i somriures anglesos

#include int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte vuit [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; punt de byte [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // El MAX72XX està en mode d'estalvi d'energia en iniciar lc.setIntensity (0, 15); // Estableix la brillantor al valor màxim lc.clearDisplay (0); // i esborreu la pantalla} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutre [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte arrufat el cap [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (somriure); retard (1000); printByte (neutre); retard (1000); printByte (arrufar les celles); retard (1000); printEduc8s (); lc.clearDisplay (0); retard (1000); } void printEduc8s () {printByte (e); retard (1000); printByte (d); retard (1000); printByte (u); retard (1000); printByte (c); retard (1000); printByte (vuit); retard (1000); printByte (s); retard (1000); printByte (punt); retard (1000); printByte (c); retard (1000); printByte (o); retard (1000); printByte (m); retard (1000); } void printByte (caràcter de byte ) {int i = 0; per a (i = 0; i <8; i ++) {lc.setRow (0, i, caràcter ); }}

i el codi per provar els 64 LED

// Sempre hem d'incloure la biblioteca # include "LedControl.h"

/*

Ara necessitem un LedControl per treballar. ***** Aquests números de pin probablement no funcionaran amb el vostre maquinari ***** el pin 12 està connectat a les dades En el pin 10 està connectat al pin CLK 11 està connectat a LOAD Només tenim un únic MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * sempre esperem una mica entre les actualitzacions de la pantalla * /

temps de retard llarg sense signar = 100;

configuració nul·la () {

/ * El MAX72XX està en mode d’estalvi d’energia a l’inici, hem de fer una trucada de despertador * / lc.shutdown (0, false); / * Estableix la brillantor en valors mitjans * / lc.setIntensity (0, 8); / * i esborreu la pantalla * / lc.clearDisplay (0); }

/*

Aquest mètode mostrarà els caràcters de la paraula "Arduino" un darrere l'altre a la matriu. (necessiteu almenys leds 5x7 per veure els caràcters sencers) * / void writeArduinoOnMatrix () {/ * aquí teniu les dades dels caràcters * / byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * ara mostreu-los un per un amb un petit retard * /

lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); retard (delaytime); lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); retard (delaytime); lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); retard (delaytime); lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); retard (delaytime); lc.setRow (0, 0, i [0]); lc.setRow (0, 1, i [1]); lc.setRow (0, 2, i [2]); lc.setRow (0, 3, i [3]); lc.setRow (0, 4, i [4]); retard (delaytime); lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); retard (delaytime); lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); retard (delaytime); lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); retard (delaytime); }

/*

Aquesta funció il·lumina alguns LED seguits. El patró es repetirà a cada fila. El patró parpellejarà junt amb el número de fila. la fila número 4 (índex == 3) parpellejarà 4 vegades, etc. * / void rows () {for (int fila = 0; fila <8; fila ++) {delay (delaytime); lc.setRow (0, fila, B10100000); retard (delaytime); lc.setRow (0, fila, (byte) 0); per a (int i = 0; i

/*

Aquesta funció il·lumina alguns LEDs en una columna. El patró es repetirà a cada columna. El patró parpellejarà junt amb el número de columna. el número de columna 4 (índex == 3) parpellejarà 4 vegades, etc. * / void columnes () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); retard (delaytime); lc.setColumn (0, col, (byte) 0); per a (int i = 0; i

/*

Aquesta funció il·luminarà tots els leds de la matriu. El led parpellejarà junt amb el número de fila. la fila número 4 (índex == 3) parpellejarà 4 vegades, etc. * / void single () {for (int fila = 0; fila <8; fila ++) {per (int col = 0; col <8; col ++) { retard (delaytime); lc.setLed (0, fila, col, cert); retard (delaytime); per a (int i = 0; i

bucle buit () {

writeArduinoOnMatrix (); files (); columnes (); solter(); }

Pas 6: la sortida

Image
Image
La sortida
La sortida
La sortida
La sortida
La sortida
La sortida

Mireu el vídeo complet aquí: -MAX7219 MUNTATGE I PROVA DE MATRIX LED 8x8 amb ARDUINO

Bé, tot aquest treball dur, segur que paga força bé quan veieu el resultat. Val la pena !!

Subscriu-te al meu canal de youtube: -Creative Stuff

Recomanat: