Isi kandungan:

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

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

Video: Cara Memacu Banyak LED Dari Beberapa Pin Mikrokontroler .: 6 Langkah (dengan Gambar)
Video: 2021 10 13 15 39 00 | Mikrokontroler [PRAKTIKUM] - 7 Segment, RGB Led, Dan LED Array 2024, Julai
Anonim
Cara Memacu Banyak LED Dari Beberapa Pin Mikrokontroler
Cara Memacu Banyak LED Dari Beberapa Pin Mikrokontroler

Dengan menggunakan fakta bahawa banyak pin mikrokontroler mempunyai tiga keadaan (+ V, GND, atau "impedence tinggi", anda boleh menggerakkan LED N * (N-1) dari pin N. Oleh itu, mikrokontroler 8pin kecil seperti PIC12Fxxx atau ATtiny11 dapat memandu 20 LED menyalakan lima pin output yang tersedia, dan masih tersisa satu pin untuk beberapa jenis input. Lihat juga

Langkah 1: 20 LED pada 5 Pin

20 LED pada 5 Pin
20 LED pada 5 Pin

Tanaman mikrokontroler kiraan pin rendah semasa (6 pin hingga 20 pin dihidupkan

keseluruhan pakej) berharga menarik dan 'comel', tetapi persoalannya adalah bagaimana anda boleh menggunakan pin tersebut dengan sebaik-baiknya untuk aplikasi biasa seperti memandu LED. Pendekatan penyambungan langsung untuk memandu LED menggunakan satu pin untuk setiap LED. Skema multiplexing tradisional di mana barisan anod LED didorong oleh satu set pin N dan katod biasa setiap baris didorong oleh satu set pin M yang lain dapat menyalakan LED N * M dengan pin N + M. Walau bagaimanapun, pada pemproses dengan output hanya 5 atau lebih sedikit (seperti yang berlaku pada kebanyakan mikrokontroler 8-pin), ini hampir tidak memberikan anda lebih banyak output daripada pemacu langsung.

Langkah 2: Charlieplexing

Charlieplexing
Charlieplexing

Dengan andaian bahawa pin output benar-benar dapat tri-keadaan (aktif tinggi, aktif rendah, dan impedensi tinggi (input)) juga memungkinkan untuk berkongsi pemacu baris dan lajur dan mengawal LED N * (N-1) dengan hanya pin N. Satu pin disambungkan ke katod biasa dari barisan LED dan drivelow, dan pin N-1 yang tersambung disambungkan ke anod dan sama ada tinggi untuk menerangi lajur itu, atau dibiarkan sebagai input untuk meninggalkan LEDoff. Maxim memanggil teknik ini "Charlieplexing", dan menerangkannya dalam (1); Microchip juga menyebutkan ini dalam dokumen mereka (2) (dan tambahan pada papan PICKit 1 juga.) (1) "Charlieplexing - Reduced Pin-Count LED Display Multiplexing" https://www.maxim-ic.com/appnotes. cfm / appnote_number / 1880 (2) "Tips 'Tricks 8-pin FLASH PIC Microcontrollers" https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) Charlieplexing LEDs - Teori yang Diajar oleh rgbphil

Langkah 3: Melaksanakannya

Melaksanakannya
Melaksanakannya
Melaksanakannya
Melaksanakannya

Ini mendorong 20 LED dari ATtiny11. Versi awal papan ini adalah

sebenarnya dibina dan muncul sebagai foto halaman utama. Saya bimbang gambaran skematiknya cukup putus asa; anda memerlukan Eagle untuk memberitahu anda isyarat mana yang disambungkan di mana.

Langkah 4: Lebih Kecil dan Lebih Serbaguna …

Lebih kecil dan lebih serba boleh …
Lebih kecil dan lebih serba boleh …

Oleh kerana sebahagian besar papan diambil oleh array LED, kita dapat memberi ruang

untuk cip Attiny ATAU cip PIC12F microchip. Kecilkan LED hingga 3mm dan pergi ke papan dua sisi, dan kita mendapat sesuatu sekitar 27x44mm Sayangnya, papan ini belum diuji …

Langkah 5: Itty Bitty

Itty Bitty
Itty Bitty

Microchip tentunya mempunyai cip PIC10F 6 pin mereka, yang mampu menggerakkan a

hanya 6 LED dari 3 pin output. Ini berdiameter kira-kira 16mm. Menggunakan 603 LED membolehkan anda sedikit lebih kecil, tetapi saya tidak pasti apa gunanya.

Langkah 6: Perisian

Perisian menjadi agak tidak kemas kerana alasan pelayan:

1) untuk PCB yang ditunjukkan, LED ditata dengan cara yang sesuai dengan susun atur PCB, bukan dalam urutan bit "betul". IMO, ini adalah cara untuk melakukan sesuatu, tetapi ini bermaksud bahawa Baris 1 tidak semestinya bermaksud bit 1, atau coluimn 3 tidak bermaksud bit 3. Ini memerlukan tahap pemetaan antara pengucapan baris / lajur biasa dan bit yang memerlukan tetapan. 2) Oleh kerana bit yang sama digunakan untuk anod dan katod, sambungan umum (baris) untuk beberapa bit boleh berada di tengah bit (lajur) yang digerakkan. Ini bermaksud anda harus mengalihkan bit lajur bergantung kepada sama ada sebelum atau selepas bit baris untuk set lajur itu. 3) Anda mesti mendapatkan kata-kata keluaran untuk kedua-dua ioport dan daftar arah pelabuhan. Kod ASM yang dilampirkan untuk ATtiny11 adalah "bukti konsep." Ini sangat tidak dioptimumkan dan kurang diberi komen, tetapi setakat ini semua yang saya tulis.

Disyorkan: