DASAR-DASAR LED DOT MATRIKS LAYAR

Posted: Juli 5, 2011 in Digital, electronika, MikroController
kita akan bergerak ke interfacing LED dot matriks layar. LED dot matriks adalah sarana yang sangat populer menampilkan informasi seperti itu memungkinkan teks baik statis dan animasi dan gambar. Mungkin, Anda telah menemukan mereka di pompa bensin menampilkan harga gas, atau di tempat-tempat umum dan di sepanjang jalan raya, menampilkan iklan pada panel dot matrix besar. Dalam percobaan ini, kita akan membahas tentang struktur dasar dari sebuah monokrom (warna tunggal) LED dot matrix dan interface dengan mikrokontroler untuk menampilkan karakter statis dan simbol. Kami akan mencakup hal-hal animasi dalam tutorial berikutnya. Saya menggunakan mikrokontroler PIC18F2550 pada StartUSB untuk PIC papan untuk demonstrasi, namun teknik ini berlaku untuk setiap mikrokontroler lain yang memiliki cukup I / O pin untuk drive LED matriks.

Interfacing layar LED dot matriks dengan mikrokontroler PIC

Teori LED dot matriks layar
Dalam layar dot matrix, beberapa LED yang kabel bersama-sama dalam baris dan kolom. Hal ini dilakukan untuk meminimalkan jumlah pin yang diperlukan untuk mengusir mereka. Misalnya, 8 × 8 matriks LED (ditampilkan di bawah) akan membutuhkan 64 I / O pin, satu untuk setiap pixel LED. Dengan kabel semua anoda bersama-sama dalam baris (R1 melalui R8), dan katoda dalam kolom (C1 melalui C8), jumlah yang diperlukan pin I / O dikurangi menjadi 16. Setiap LED ditujukan demi baris dan jumlah kolom. Pada gambar bawah ini, jika R4 adalah ditarik tinggi dan C3 ditarik rendah, LED di baris keempat dan kolom ketiga akan dihidupkan. Karakter dapat ditampilkan oleh pemindaian cepat baik baris atau kolom. Tutorial ini akan membahas metode pemindaian kolom.

 
Struktur dari 8×8 LED dot matriks

Matriks LED digunakan dalam percobaan ini adalah ukuran 5 × 7. Kita akan belajar bagaimana menampilkan karakter yang masih dalam format standar 5 7 × pixel. Gambar di bawah menunjukkan yang LED harus diaktifkan untuk menampilkan abjad Inggris ‘A’. Para 7 baris dan 5 kolom dikendalikan melalui pin mikrokontroler. Sekarang, mari kita lihat secara detail cara kerjanya.
Misalkan, kita ingin menampilkan A. alfabet Kami akan memilih kolom C1 (yang berarti C1 ditarik rendah dalam kasus ini), dan kolom hapus lainnya dengan memblokir jalan tanah mereka (salah satu cara untuk melakukan hal itu adalah dengan menarik C2 melalui C5 pin untuk tinggi logika). Sekarang, kolom pertama aktif, dan Anda perlu mengaktifkan LED di baris R2 melalui R7 kolom ini, yang dapat dilakukan dengan menerapkan tegangan bias maju untuk baris ini. Selanjutnya, pilih kolom C2 (dan hapus semua kolom lainnya), dan menerapkan bias maju ke R1 dan R5, dan sebagainya. Oleh karena itu, dengan memindai seluruh kolom cepat (> 100 kali per detik), dan menyalakan LED masing-masing di setiap baris kolom itu, kegigihan visi datang untuk bermain, dan kami merasakan tampilan gambar seperti yang masih.

Sebuah standar 5×7 dot matriks layar LED struktur

Tabel di bawah ini memberikan tingkat logika untuk diterapkan ke R1 melalui R7 untuk setiap kolom untuk menampilkan abjad ‘A’.

 

Row nilai untuk menampilkan abjad A

 
Scanning seluruh kolom dan makan dengan nilai-nilai baris yang sesuai

Anda harus telah mencatat bahwa di setiap baris, satu pin adalah sumber arus hanya satu LED pada suatu waktu, tapi pin kolom mungkin harus tenggelam arus dari lebih dari satu LED. Misalnya, kolom C1 harus dapat tenggelam arus dari 6 LED sementara menampilkan ‘A’ alfabet. I / O Sebuah pin mikrokontroler tidak dapat tenggelam ini banyak saat ini, array transistor sehingga eksternal yang diperlukan. Saya menggunakan ULN2003A IC yang memiliki tujuh built-in array transistor Darlington (lihat di bawah). Masukan dari ULN2003A tinggi aktif. Ini berarti pin input harus disertakan dengan logika yang tinggi untuk membawa pin output yang sesuai ke tanah. Skema dari array transistor Darlington dalam chip ULN2003A ditampilkan di bawah.

 
Pin diagram dan skematik ULN2003A (Darlington transistor array)

Sirkuit Pengaturan
Setup sirkuit untuk percobaan ini cukup sederhana. Anda membutuhkan tujuh 330 Ω resistor secara seri dengan R1 baris melalui R7 untuk membatasi arus yang melalui LED. Kemudian baris yang didorong oleh RB0 melalui RB6 pin dari PIC18F2550. Kolom terhubung ke lima output dari ULN2003A. Pin input yang sesuai lima ULN2003A IC dikendalikan oleh RA0 melalui RA4 pin dari PIC18F2550. Mikrokontroler akan, oleh karena itu, scan di kolom dengan mengirimkan bit sesuai dengan Porta. Misalnya, pengaturan RA0 ke 1 dan kliring RA1 melalui RA4 bit, akan memilih kolom pertama. Mikrokontroler akan menunggu sekitar 1 ms sebelum beralih ke kolom berikutnya. Pada setiap kolom, mikrokontroler akan menampilkan nilai baris yang sesuai di PORTB untuk menyalakan LED yang sesuai dalam kolom yang diperlukan untuk menampilkan karakter khusus. Beralih antara kolom cukup cepat untuk menipu mata manusia dan karakter stabil ditampilkan.


Circuit diagram untuk interfacing LED dot matriks 5×7 dengan PIC18F2550

 
Sirkuit Setup menampilkan papan StartUSB dengan LED dot matriks 6×7 (kolom keenam dibuang di sini)

Perangkat Lunak
Bagian utama dari percobaan ini adalah rutin perangkat lunak untuk memindai kolom dan pakan baris dengan nilai yang sesuai. Nilai-nilai baris-kolom khusus untuk menampilkan karakter dapat didefinisikan baik dalam RAM atau disimpan dalam memori program dalam kasus on-board RAM tidak cukup memadai. Dalam MikroC, variabel yang disimpan dalam RAM dan konstanta yang disimpan dalam memori program. Jadi, jika PIC Anda tidak memiliki RAM yang cukup, Anda dapat mendefinisikan sebuah array konstan untuk menyimpan nilai-nilai baris sehingga bagian dari memori program ditempati oleh itu untuk membebaskan RAM on-board. PIC18F2550 memiliki cukup RAM (2 KB), jadi saya telah menggunakan RAM untuk menyimpan nilai-nilai baris untuk huruf A sampai Z. Berikut bagaimana saya mendefinisikan dalam MikroC,

unsigned pendek Alphabets [130] = {0x7E, 0 × 09, 0 × 09, 0 × 09, 0x7E, / / A
0x7f, 0 × 49, 0 × 49, 0 × 49, 0 × 36, / / B
0x3e, 0 × 41, 0 × 41, 0 × 41, 0 × 22,
0x7f, 0 × 41, 0 × 41,0 × 22, 0x1C,
0x7f, 0 × 49, 0 × 49, 0 × 49, 0 × 63,
0x7f, 0 × 09, 0 × 09, 0 × 09, 0 × 01,
0x3e, 0 × 41, 0 × 41, 0 × 49, 0x7A,
0x7f, 0 × 08, 0 × 08, 0 × 08, 0x7f,
0 × 00, 0 × 41, 0x7f, 0 × 41, 0 × 00, / / Aku
0 × 20, 0 × 40, 0 × 41, 0x3f, 0 × 01,
0x7f, 0 × 08, 0 × 14, 0 × 22, 0 × 41,
0x7f, 0 × 40, 0 × 40, 0 × 40, 0 × 60,
0x7f, 0 × 02, 0 × 04, 0 × 02, 0x7f,
0x7f, 0 × 04, 0 × 08, 0 × 10, 0x7f,
0x3e, 0 × 41, 0 × 41, 0 × 41, 0x3e,
0x7f, 0 × 09, 0 × 09, 0 × 09, 0 × 06,
0x3e, 0 × 41, 0 × 51, 0 × 21, 0x5e,
0x7f, 0 × 09, 0 × 19, 0 × 29, 0 × 46,
0 × 46, 0 × 49, 0 × 49, 0 × 49, 0 × 31, / / S
0 × 01, 0 × 01, 0x7f, 0 × 01, 0 × 01,
0x3f, 0 × 40, 0 × 40, 0 × 40, 0x3f,
0x1F, 0 × 20, 0 × 40, 0 × 20, 0x1F,
0x3f, 0 × 40, 0 × 30, 0 × 40, 0x3f,
0 × 63, 0 × 14, 0 × 08, 0 × 14, 0 × 63,
0 × 07, 0 × 08, 0 × 70, 0 × 08, 0 × 07,
0 × 61, 0 × 51, 0 × 49, 0 × 45, 0 × 43 / / Z
};

Dan ini adalah bagaimana MikroC memungkinkan Anda untuk menyimpan array dalam memori program.
const unsigned pendek karakter [30] = {
0 × 24, 0x2A, 0x7f, 0x2A, 0 × 12, / / $
0 × 08, 0 × 14, 0 × 22, 0 × 41, 0 × 00, / / <
0 × 41, 0 × 22, 0 × 14, 0 × 08, 0 × 00, / />
0 × 14, 0 × 14, 0 × 14, 0 × 14, 0 × 14, / / =
0 × 36, 0 × 49, 0 × 55, 0 × 22, 0 × 50, / / &
0 × 44, 0x3c, 0 × 04, 0x7c, 0 × 44, / / PI
};
Saya telah menulis sebuah program sederhana di MikroC untuk menampilkan abjad A sampai Z secara berurutan, dan beberapa karakter khusus juga. Anda dapat menonton video di bawah ini untuk melihat bagaimana mereka terlihat seperti pada layar dot matrix.

Menampilkan simbol PI

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s