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, Juli
Anonim
Image
Image
Proverite paket
Proverite paket

Dot-Matrix Display je uređaj za prikaz koji sadrži svjetlosne diode poravnate u obliku matrice. Ovi matrični ekrani se koriste u aplikacijama gdje se simbol, grafika, znakovi, abecede, brojevi moraju prikazati zajedno u statičkom i Pomicanje. Dotički matrični ekran proizvodi se u različitim dimenzijama poput 5x7, 8x8, 16x8, 128x16, 128x32 i 128x64, gdje brojevi predstavljaju LED diode u redovima i kolonama. Također, ovi ekrani dolaze u različitim bojama, poput crvene, zelene, žute, plave, Narandžasta, bela.

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

Supplies

MAX7219

Korak 1: Provjerite paket

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

Korak 2: Malo o ovoj posebnoj matrici tačaka

Malo o ovoj posebnoj matrici tačaka
Malo o ovoj posebnoj matrici tačaka

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

Radni napon: 5 v

Dimenzije: dužina 3,2 cm X 3,2 cm širina X 1,3 cm visina, rupe sa četiri vijka, promjera 3 mm

Moduli sa ulaznim i izlaznim interfejsima, podrška za kaskadno postavljanje više modula.

Terminali Data IN i OUT su navedeni 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 ekranima do 8 znamenki, prikazima na grafikonu ili 64 pojedinačne LED diode.

Karakteristike i specifikacije

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

Preporučeni radni napon: +5V

Maksimalni napon napajanja: 6V

Maksimalna dozvoljena struja kroz svaki segmentni pin: 100mA

Maksimalna dozvoljena struja preko svakog DIGIT uzemljenja: 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

The Circuit
The Circuit
The Circuit
The Circuit

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

Pin konfiguracija 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 uputstvu dat ć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 biblioteku lledcontrol da bi funkcionirala.

Ovo je kôd za engleska pisma 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 tač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 brisanje prikaza} 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 (tač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 brojevi pinova 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 ekrana */

nepotpisano dugo kašnjenje = 100;

void setup () {

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

/*

Ova metoda će prikazati znakove za riječ "Arduino" jedan za drugim na matrici. (potrebno vam je najmanje 5x7 LED dioda da vidite cijele znakove) */ void writeArduinoOnMatrix () {/ *ovdje su podaci za znakove */ bajt 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]); kašnjenje (vrijeme kašnjenja); 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]); kašnjenje (vrijeme kašnjenja); 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]); kašnjenje (vrijeme kašnjenja); 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]); kašnjenje (vrijeme kašnjenja); 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]); kašnjenje (vrijeme kašnjenja); 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]); kašnjenje (vrijeme kašnjenja); 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]); kašnjenje (vrijeme kašnjenja); 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); kašnjenje (vrijeme kašnjenja); }

/*

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

/*

Ova funkcija osvjetljava neke LED diode u koloni. Uzorak će se ponavljati u svakoj koloni. Uzorak će treptati zajedno sa brojem kolone. stupac broj 4 (indeks == 3) će treptati 4 puta itd. */ void kolone () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); kašnjenje (vrijeme kašnjenja); lc.setColumn (0, col, (bajt) 0); za (int i = 0; i

/*

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

void loop () {{100} {101}

writeArduinoOnMatrix (); redovi (); kolone (); single (); }

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. Vrijedi !!

Pretplatite se na moj youtube kanal: -Kreativne stvari

Preporučuje se: