Daftar Isi:

Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler: 6 Langkah (dengan Gambar)
Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler: 6 Langkah (dengan Gambar)

Video: Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler: 6 Langkah (dengan Gambar)

Video: Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler: 6 Langkah (dengan Gambar)
Video: MIKRO 1 - Percobaan 03. LED Dot Matrix 2024, November
Anonim
Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler
Cara Menggerakkan Banyak LED Dari Beberapa Pin Mikrokontroler

Menggunakan fakta bahwa banyak pin mikrokontroler memiliki tiga status (+V, GND, atau "impedansi tinggi", Anda dapat menggerakkan N*(N-1) LED dari pin N. Jadi mikrokontroler 8pin kecil seperti PIC12Fxxx atau ATtiny11 dapat mengemudi 20 LED pada lima pin output yang tersedia, dan masih memiliki satu pin tersisa untuk beberapa jenis input. Lihat juga

Langkah 1: 20 LED pada 5 Pin

20 LED pada 5 Pin
20 LED pada 5 Pin

Pemangkasan mikrokontroler dengan jumlah pin rendah saat ini (6 pin hingga 20 pin aktif

seluruh paket) dengan harga yang menarik dan 'lucu', tetapi muncul pertanyaan tentang bagaimana Anda dapat memanfaatkan pin tersebut dengan sebaik-baiknya untuk aplikasi umum seperti LED mengemudi. Pendekatan koneksi langsung untuk menggerakkan LED menggunakan satu pin untuk setiap LED. Skema multiplexing tradisional di mana deretan anoda LED digerakkan oleh satu set pin N dan katoda umum setiap baris digerakkan oleh set pin M lainnya berhasil menyalakan LED N*M dengan pin N+M. Namun, pada prosesor dengan hanya 5 atau lebih sedikit output (seperti halnya dengan kebanyakan mikrokontroler 8-pin), ini hampir tidak memberi Anda lebih banyak output daripada drive langsung.

Langkah 2: Charlieplexing

Charlieplexing
Charlieplexing

Dengan asumsi pin output benar-benar tri-state-able (aktif tinggi, aktif rendah, dan impedansi tinggi (input)), juga memungkinkan untuk berbagi driver baris dan kolom dan mengontrol LED N*(N-1) dengan hanya N pin. Satu pin terhubung ke katoda umum dari deretan LED dan didorong rendah, dan pin N-1 yang tersisa terhubung ke anoda dan didorong tinggi untuk menyalakan kolom itu, atau dibiarkan sebagai input untuk meninggalkan LED mati. Maxim menyebut teknik ini "Charlieplexing", dan menjelaskannya dalam (1); Microchip juga menyebutkan hal ini dalam dokumen mereka (2) (dan juga diterapkan pada papan PICKit 1.)(1) "Charlieplexing - Reduced Pin-Count LED Display Multiplexing" https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880(2) "Tips 'n Trik 8-pin FLASH PIC Mikrokontroler"https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) Charlieplexing LEDs- Teori Sebuah Instructable oleh rgbphil

Langkah 3: Mengerjakannya

Mengerjakannya
Mengerjakannya
Mengerjakannya
Mengerjakannya

Ini menggerakkan 20 LED dari ATtiny11. Versi sebelumnya dari papan ini adalah

benar-benar dibangun dan muncul sebagai foto halaman utama. Saya khawatir gambar skemanya sangat tidak ada harapan; Anda perlu Eagle untuk memberi tahu Anda sinyal mana yang terhubung di mana.

Langkah 4: Lebih Kecil dan Lebih Serbaguna…

Lebih Kecil dan Lebih Serbaguna…
Lebih Kecil dan Lebih Serbaguna…

Karena sebagian besar papan diambil oleh susunan LED, kami dapat memberikan ruang

baik untuk chip Attiny ATAU chip PIC12F microchip. Kecilkan LED menjadi 3mm dan pergi ke papan dua sisi, dan kami mendapatkan sesuatu tentang 27x44mm Sayangnya, papan ini belum diuji…

Langkah 5: Itty Bitty

Itty Bitty
Itty Bitty

Microchip tentu saja memiliki chip PIC10F 6 pin, yang mampu mengemudikan

hanya 6 LED dari 3 pin output. Ini adalah sekitar 16mm diameter. Pergi ke 603 LED memungkinkan Anda mendapatkan sedikit lebih kecil, tapi saya tidak yakin apa gunanya.

Langkah 6: Perangkat Lunak

Perangkat lunak menjadi sedikit berantakan karena alasan server:

1) untuk PCB yang ditampilkan, LED diletakkan dengan cara yang sesuai dengan tata letak PCB, bukan dalam urutan bit yang "benar". IMO, ini adalah cara untuk melakukan sesuatu, tetapi itu berarti bahwa Baris 1 tidak selalu berarti bit 1, atau kolom 3 tidak berarti bit 3. Ini membutuhkan tingkat pemetaan antara pengalamatan baris/kolom biasa dan bit yang membutuhkan pengaturan. 2) Karena bit yang sama digunakan untuk anoda dan katoda, koneksi umum (baris) untuk beberapa bit dapat berada di tengah bit yang digerakkan (kolom). Itu berarti Anda harus menggeser bit kolom tergantung pada apakah mereka sebelum atau sesudah bit baris untuk kumpulan kolom itu. 3) Anda harus mendapatkan kata-kata keluaran untuk ioport dan register arah port. Kode ASM terlampir untuk ATtiny11 adalah "bukti konsep." Sangat memalukan tidak dioptimalkan dan dikomentari dengan buruk, tetapi hanya itu yang saya tulis sejauh ini.

Direkomendasikan: