Sadržaj:

MAX7219 LED matrična montaža i testiranje: 6 koraka (sa slikama)
MAX7219 LED matrična montaža i testiranje: 6 koraka (sa slikama)

Video: MAX7219 LED matrična montaža i testiranje: 6 koraka (sa slikama)

Video: MAX7219 LED matrična montaža i testiranje: 6 koraka (sa slikama)
Video: Полное руководство по 16-канальному сервоконтроллеру PCA9685 для Arduino с кодом версии 5 (V1) 2024, Studeni
Anonim
Image
Image
Provjerite paket
Provjerite paket

Matrični zaslon s prikazom je uređaj za prikaz koji sadrži svjetlosne diode poravnate u obliku matrice. Ovi se matrični zasloni koriste u aplikacijama gdje se simbol, grafika, znakovi, abecede, brojke moraju prikazati zajedno u statičkom i Pomicanje. Dotični matrični zaslon proizvodi se u različitim dimenzijama poput 5x7, 8x8, 16x8, 128x16, 128x32 i 128x64, gdje brojevi predstavljaju LED diode u redovima i stupcima. Također, ovi zasloni dolaze u različitim bojama, kao što su crvena, zelena, žuta, plava, Narančasta, bijela.

U ovom Instructableu proći ću kroz povezivanje 8x8 Dot Matrix -a koji ima MAX7219 upravljački program s Arduino Uno. Počnimo.

Pribor

MAX7219

Korak 1: Provjerite paket

Kao što vidite da imam smt verziju upravljačke ploče, vrlo je važno provjeriti svaku komponentu koja je potrebna jer su smd komponente vrlo male veličine i lako ih možete izgubiti. Na internetu su dostupne i dip verzije, ali ja sam koristio smt verzija za svoju veličinu.

Korak 2: Malo o ovoj posebnoj matrici točaka

Malo o ovoj posebnoj matrici točaka
Malo o ovoj posebnoj matrici točaka

jedan modul može pokretati zajedničku katodu matrice 8x8.

Radni napon: 5 v

Dimenzije: duljina 3,2 cm X 3,2 cm širine X 1,3 cm visine, rupe s četiri vijka, promjera 3 mm

Moduli s ulaznim i izlaznim sučeljima, podrška za kaskadno postavljanje više modula.

Terminali Data IN i OUT navedeni su na modulu.

Korak 3: Upravljački program MAX7219

Upravljački program MAX7219
Upravljački program MAX7219
Upravljački program MAX7219
Upravljački program MAX7219

MAX7219 je IC dizajniran za upravljanje 8x8 LED MATRIX -om. IC je serijski ulazni upravljački program za prikaz sa zajedničkom katodom (zajednički negativni) koji povezuje mikroprocesore (ili mikrokontroler) sa 7-segmentnim numeričkim LED zaslonima do 8 znamenki, prikazima s grafikonima ili 64 pojedinačne LED diode.

Značajke i specifikacije

Raspon radnog napona: +4,0 do +5,5V

Preporučeni radni napon: +5V

Maksimalni napon napajanja: 6V

Maksimalna dopuštena struja kroz svaki segmentni pin: 100mA

Maksimalna dopuštena struja kroz svaki DIGIT uzemljivač: 500mA

Mala potrošnja energije

Vrijeme kašnjenja podataka u segment: 2,2 mSec

Radna temperatura: 0 ° C do +70 ° C

Temperatura skladištenja: -65 ° C do +150 ° C

Korak 4: Krug

Krug
Krug
Krug
Krug

Krug je vrlo jednostavan i može se izgraditi pomoću muških žica kratkospojnika. Samo slijedite pinout i izgradite krug. Kasnije ga možete sastaviti na PCB -u ako podnosite trajnu aplikaciju za Matrix.

Konfiguracija pina je sljedeća:

  • Vcc na 5V Pin Arduina.
  • Gnd to Gnd Pin Arduina.
  • DIN na digitalni pin 12 Arduina.
  • CS na digitalni pin 11 Arduina
  • CLK do digitalnog pina 10 Arduina.

Korak 5: Kôd

Ovdje u ovom Instructableu pružit ću vam dva različita koda. Jedan će generirati neke engleske abecede i smajliće na Matrixu. Drugi će upaliti svih 64 LED dioda koje se pale jedna po jedna. Morate koristiti knjižnicu lledcontrol da bi funkcionirala.

Ovo je kod za engleske abecede i osmijehe

#include int DIN = 12; int CS = 11; int CLK = 10; bajt e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bajt d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; bajt u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; bajt osam [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bajt s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bajtna točka [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bajt o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX je u načinu rada za uštedu energije pri pokretanju lc.setIntensity (0, 15); // Postavite svjetlinu na maksimalnu vrijednost lc.clearDisplay (0); // i očisti prikaz} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; bajt neutralno [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bajt namršten [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (osmijeh); kašnjenje (1000); printByte (neutralno); kašnjenje (1000); printByte (mršti se); kašnjenje (1000); printEduc8s (); lc.clearDisplay (0); kašnjenje (1000); } void printEduc8s () {printByte (e); kašnjenje (1000); printByte (d); kašnjenje (1000); printByte (u); kašnjenje (1000); printByte (c); kašnjenje (1000); printByte (osam); kašnjenje (1000); printByte (s); kašnjenje (1000); printByte (točka); kašnjenje (1000); printByte (c); kašnjenje (1000); printByte (o); kašnjenje (1000); printByte (m); kašnjenje (1000); } void printByte (znak bajta ) {int i = 0; za (i = 0; i <8; i ++) {lc.setRow (0, i, znak ); }}

i kôd za testiranje svih 64 LED diode

// Uvijek moramo uključiti biblioteku#include "LedControl.h"

/*

Sada nam je potreban LedControl za rad. ***** Ovi pin brojevi vjerojatno neće raditi s vašim hardverom ***** pin 12 je spojen na DataIn pin 10 je spojen na CLK pin 11 je spojen na LOAD Imamo samo jedan MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * uvijek čekamo malo između ažuriranja zaslona */

nepotpisano dugo kašnjenje = 100;

void setup () {

/ * MAX72XX je u načinu rada za uštedu energije pri pokretanju, moramo obaviti poziv za buđenje */ lc.shutdown (0, false); / * Postavite svjetlinu na srednje vrijednosti */ lc.setIntensity (0, 8); / * i očistite zaslon */ lc.clearDisplay (0); }

/*

Ova metoda će prikazati znakove za riječ "Arduino" jedan za drugim na matrici. (trebate najmanje 5x7 LED dioda da biste vidjeli cijele znakove) */ void writeArduinoOnMatrix () {/ *evo podataka za znakove */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; bajt r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bajt d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; bajt u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; bajt i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bajt n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; bajt o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * sada ih prikažite jedan po jedan s malim kašnjenjem */

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]); odgoda (vrijeme odgode); 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]); odgoda (vrijeme odgode); 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]); odgoda (vrijeme odgode); 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]); odgoda (vrijeme odgode); 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]); odgoda (vrijeme odgode); 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]); odgoda (vrijeme odgode); 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]); odgoda (vrijeme odgode); 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); odgoda (vrijeme odgode); }

/*

Ova funkcija osvjetljava neke LED diode u nizu. Uzorak će se ponavljati u svakom retku. Uzorak će treptati zajedno s brojem retka. red broj 4 (indeks == 3) trepnut će 4 puta itd. */ void rows () {for (int row = 0; row <8; row ++) {delay (delaytime); lc.setRow (0, red, B10100000); odgoda (vrijeme odgode); lc.setRow (0, red, (bajt) 0); za (int i = 0; i

/*

Ova funkcija osvjetljava neke LED diode u stupcu. Uzorak će se ponavljati u svakom stupcu. Uzorak će treptati zajedno s brojem stupca. stupac broj 4 (indeks == 3) trepnut će 4 puta itd. */ void columns () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); odgoda (vrijeme odgode); lc.setColumn (0, col, (bajt) 0); za (int i = 0; i

/*

Ova funkcija svijetlit će svaki LED na matrici. LED dioda će treptati zajedno s brojem retka. red broj 4 (indeks == 3) trepnut će 4 puta itd. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { kašnjenje (delaytime); lc.setLed (0, red, col, true); odgoda (vrijeme odgode); za (int i = 0; i

void loop () {{100} {101}

writeArduinoOnMatrix (); retci (); stupci (); singl(); }

Korak 6: Izlaz

Image
Image
Izlaz
Izlaz
Izlaz
Izlaz
Izlaz
Izlaz

Cijeli video pogledajte ovdje: -MAX7219 8x8 LED MATRIX MONTIRANJE I TESTIRANJE pomoću ARDUINO-a

Pa sav ovaj naporan rad, zasigurno se dobro isplati kad vidite rezultat. Vrijedno je toga !!

Pretplatite se na moj youtube kanal: -Kreativne stvari

Preporučeni: