Isi kandungan:

MAX7219 LED Dot Matrix Assembly and Testing: 6 Langkah (dengan Gambar)
MAX7219 LED Dot Matrix Assembly and Testing: 6 Langkah (dengan Gambar)

Video: MAX7219 LED Dot Matrix Assembly and Testing: 6 Langkah (dengan Gambar)

Video: MAX7219 LED Dot Matrix Assembly and Testing: 6 Langkah (dengan Gambar)
Video: Interfacing MAX7219 LED Dot Matrix Display with Arduino 2024, Julai
Anonim
Image
Image
Periksa Pakej
Periksa Pakej

Paparan Dot-Matrix adalah peranti paparan yang mengandungi diod pemancar cahaya yang diselaraskan dalam bentuk matriks. Paparan matriks Dot ini digunakan dalam aplikasi di mana Simbol, Grafik, Karakter, Huruf, Huruf, Numerasi perlu ditampilkan bersama-sama dalam keadaan statik dan juga Gerakan tatal. Paparan Matriks Dot dihasilkan dalam pelbagai dimensi seperti 5x7, 8x8, 16x8, 128x16, 128x32 dan 128x64 di mana nombornya mewakili LED dalam baris dan lajur, Juga paparan ini terdapat dalam warna yang berbeza seperti Merah, Hijau, Kuning, Biru, Jingga, Putih.

Dalam Instructable ini, saya akan melalui interface 8x8 Dot Matrix yang mempunyai driver MAX7219 ke Arduino Uno. Mari kita mulakan.

Bekalan

MAX7219

Langkah 1: Periksa Pakej

Seperti yang anda lihat saya mempunyai versi smt papan pemacu, sangat penting untuk mengesahkan setiap komponen yang diperlukan kerana komponen smd sangat kecil dan anda boleh kehilangannya dengan mudah. Terdapat juga versi celup dalam talian tetapi saya menggunakan versi smt untuk ukurannya.

Langkah 2: Sedikit Mengenai Matriks Dot Khusus ini

Sedikit Mengenai Matriks Dot Khusus ini
Sedikit Mengenai Matriks Dot Khusus ini

modul tunggal boleh mendorong katod biasa matriks dot 8x8.

Voltan operasi: 5 v

Dimensi: panjang 3.2 cm X 3.2 cm lebar X 1.3 cm tinggi, lubang dengan empat skru, diameter 3 mm

Modul dengan antara muka input dan output, sokongan untuk merangkumi pelbagai modul.

Terminal data IN dan OUT ditentukan pada modul.

Langkah 3: Pemandu MAX7219

Pemandu MAX7219
Pemandu MAX7219
Pemandu MAX7219
Pemandu MAX7219

MAX7219 adalah IC yang dirancang untuk mengendalikan MATRIK LED 8x8. IC adalah pemacu paparan input katod biasa (Common Negative) yang menghubungkan antara mikropemproses (atau mikrokontroler) hingga paparan LED berangka 7 segmen hingga 8 digit, paparan grafik bar, atau 64 LED individu.

Ciri dan Spesifikasi

Julat voltan operasi: +4.0 hingga + 5.5V

Voltan operasi yang disyorkan: + 5V

Voltan bekalan maksimum: 6V

Arus maksimum yang dibenarkan melintasi setiap pin segmen: 100mA

Arus maksimum yang dibenarkan melalui setiap pin ground DIGIT: 500mA

Penggunaan kuasa rendah

Masa Kelewatan Data ke Segmen: 2.2mSec

Suhu operasi: 0 ° C hingga + 70 ° C

Suhu Penyimpanan: -65 ° C hingga + 150 ° C

Langkah 4: Litar

Litar
Litar
Litar
Litar

Litarnya agak sederhana dan boleh dibina menggunakan wayar jumper lelaki ke wanita. Ikuti sahaja pinout dan bina litar. Anda kemudian dapat memasangnya di PCB jika anda membuat aplikasi tetap untuk Matrix.

Konfigurasi Pin adalah seperti berikut:

  • Vcc hingga 5V Pin Arduino.
  • Gnd ke Gnd Pin Arduino.
  • DIN ke Pin Digital 12 dari Arduino.
  • CS ke Digital Pin 11 dari Arduino
  • CLK ke Digital Pin 10 dari Arduino.

Langkah 5: Kod

Di sini dalam Instructable ini saya akan memberi anda dua kod yang berbeza. Seseorang akan menghasilkan beberapa huruf Inggeris dan smilies di Matrix. Yang lain untuk semua 64 LED menyala satu demi satu. Anda mesti menggunakan perpustakaan lledcontrol untuk membuatnya berfungsi.

Ini adalah kod untuk abjad dan senyuman Inggeris

#masuk int DIN = 12; int CS = 11; int CLK = 10; bait e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bait d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; bait u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bait c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; bait lapan [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bait s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; byte dot [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bait o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bait m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); batal persediaan () {lc.shutdown (0, false); // MAX72XX berada dalam mod penjimatan kuasa pada permulaan lc.setIntensity (0, 15); // Tetapkan kecerahan ke nilai maksimum lc.clearDisplay (0); // dan kosongkan paparan} gelung kosong () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; bait neutral [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte frown [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (senyuman); kelewatan (1000); printByte (neutral); kelewatan (1000); printByte (mengerutkan kening); kelewatan (1000); printEduc8s (); lc.clearDisplay (0); kelewatan (1000); } batal printEduc8s () {printByte (e); kelewatan (1000); printByte (d); kelewatan (1000); printByte (u); kelewatan (1000); printByte (c); kelewatan (1000); printByte (lapan); kelewatan (1000); printByte (s); kelewatan (1000); printByte (titik); kelewatan (1000); printByte (c); kelewatan (1000); printByte (o); kelewatan (1000); printByte (m); kelewatan (1000); } batal printByte (watak bait ) {int i = 0; untuk (i = 0; i <8; i ++) {lc.setRow (0, i, watak ); }}

dan kod untuk menguji semua 64 LED

// Kita mesti selalu memasukkan perpustakaan # termasuk "LedControl.h"

/*

Sekarang kita memerlukan LedControl untuk bekerjasama. ***** Nombor pin ini mungkin tidak akan berfungsi dengan perkakasan anda ***** pin 12 disambungkan ke DataIn pin 10 disambungkan ke CLK pin 11 disambungkan ke LOAD Kami hanya mempunyai satu MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * kami selalu menunggu sedikit antara kemas kini paparan * /

masa penangguhan panjang yang tidak ditandatangani = 100;

batal persediaan () {

/ * MAX72XX berada dalam mod penjimatan kuasa semasa permulaan, kita harus melakukan panggilan bangun * / lc.shutdown (0, false); / * Tetapkan kecerahan ke nilai sederhana * / lc.setIntensity (0, 8); / * dan kosongkan paparan * / lc.clearDisplay (0); }

/*

Kaedah ini akan memaparkan watak untuk perkataan "Arduino" satu demi satu di matriks. (anda memerlukan sekurang-kurangnya 5x7 led untuk melihat keseluruhan watak) * / batal writeArduinoOnMatrix () {/ * berikut adalah data untuk watak * / byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; bait r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bait d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; bait u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; bait i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bait n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; bait o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * sekarang paparkan satu persatu dengan sedikit kelewatan * /

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]); kelewatan (waktu tunda); 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]); kelewatan (waktu tunda); 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]); kelewatan (waktu tunda); 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]); kelewatan (waktu tunda); 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]); kelewatan (waktu tunda); 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]); kelewatan (waktu tunda); 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]); kelewatan (waktu tunda); 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); kelewatan (waktu tunda); }

/*

Fungsi ini menyala beberapa Leds berturut-turut. Corak akan diulang pada setiap baris. Corak akan berkelip bersama dengan nombor baris. baris nombor 4 (indeks == 3) akan berkelip 4 kali dsb. * / batal baris () {untuk (int baris = 0; baris <8; baris ++) {kelewatan (waktu tunda); lc.setRow (0, baris, B10100000); kelewatan (waktu tunda); lc.setRow (0, baris, (bait) 0); untuk (int i = 0; i

/*

Fungsi ini menyala beberapa Leds dalam lajur. Corak akan diulang pada setiap lajur. Corak akan berkelip bersama dengan nombor lajur. lajur nombor 4 (indeks == 3) akan berkelip 4 kali dll. * / lajur lajur () {untuk (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); kelewatan (waktu tunda); lc.setColumn (0, col, (bait) 0); untuk (int i = 0; i

/*

Fungsi ini akan menyala setiap Led di matriks. LED akan berkelip bersama dengan nombor baris. nombor baris 4 (indeks == 3) akan berkelip 4 kali dsb. * / batal tunggal () {untuk (int baris = 0; baris <8; baris ++) {untuk (int col = 0; col <8; col ++) { kelewatan (waktu tunda); lc.setLed (0, baris, col, benar); kelewatan (waktu tunda); untuk (int i = 0; i

gelung kosong () {

tulisArduinoOnMatrix (); baris (); lajur (); tunggal (); }

Langkah 6: Hasilnya

Image
Image
Hasilnya
Hasilnya
Hasilnya
Hasilnya
Hasilnya
Hasilnya

Tonton video penuh di sini: -MAX7219 8x8 LED MATRIX ASSEMBLY AND TESTING using ARDUINO

Baik semua kerja keras ini, pasti membuahkan hasil apabila anda melihat hasilnya. Ia berbaloi !!

Langgan saluran youtube saya: -Creative Stuff

Disyorkan: