Saya ingin dapat mengontrol sekitar 100 LED independen menggunakan Arduino. Masalahnya adalah bahwa Arduino hampir tidak memiliki pin yang cukup yang dapat dikonfigurasi untuk ini. Apa yang akan menjadi cara untuk mengatasi masalah ini? Apakah ada chip yang dapat melakukan demux sinyal yang lebih kompleks dari Arduino yang kemudian dapat mengontrol LED? Atau ada solusi lain?
arduino
digital-logic
gpio
Alexis K
sumber
sumber
Jawaban:
Pertama-tama, sebuah Arduino tidak dapat secara langsung menggerakkan 100 LED, karena arus gabungan yang harus ditampung atau tenggelam oleh perangkat jauh melebihi mikrokontroler, dan pengatur tegangan pada papan Arduino. Namun, Arduino Shield khusus dengan sumber daya dan peraturannya sendiri mungkin sesuai dengan tagihan tersebut.
Ada beberapa pendekatan yang mudah, pendekatan yang paling sederhana dijelaskan di bawah ini:
Driver LED arus konstan TLC5940 dalam konfigurasi bertingkat:
TLC5940 menggerakkan 16 LED per IC, dikendalikan oleh input serial melalui sedikit varian antarmuka SPI. Hingga 40 perangkat TLC5940 dapat di-cascade, tetapi 7 di antaranya akan cukup untuk menggerakkan 100 LED dalam pertanyaan.
Setidaknya ada beberapa perpustakaan Arduino ( 1 , 2 ) untuk TLC5940.
Tarif jam yang disarankan untuk dikirim dari Arduino, dan kecepatan refresh yang sesuai:
Ini didasarkan pada rumus dari lembar data:
TLC5940 adalah sink arus konstan , sehingga anoda LED akan dikaitkan dengan tegangan beberapa volt lebih besar dari Vf LED, atau sekitar 7 volt, mana yang lebih rendah, yang ditenagai secara independen dari pin daya Arduino. Sumber tegangan ini harus mampu memasok 100 * (apa pun arus Anda menjalankan LED), tetapi dapat menjadi sumber yang tidak diatur.
Katoda LED mengarah ke garis drive masing-masing IC TLC5940.
TLC5940 itu sendiri mengkonsumsi hingga Icc = 60 mA per perangkat selama penulisan data, sehingga memberi daya 7 di antaranya dari Arduino tidak akan berfungsi, itu akan membutuhkan Vcc yang diatur 3,3 hingga 5 volt yang independen untuk disediakan, idealnya nilai yang sama dengan Vcc dari Arduino yang digunakan, dan jejak tanah perlu terhubung kembali ke tanah Arduino, tentu saja. Mengoperasikan bagian-bagian TLC pada tegangan yang berbeda dari Arduino akan membutuhkan konversi tingkat sinyal serial, oleh karena itu sebaiknya dihindari.
Beberapa video YouTube menunjukkan penggunaan Arduino dengan IC TLC5940 yang bertingkat.
MAX7219 (serial) / MAX7221 (SPI) Driver Layar LED 8-Digit:
Meskipun IC ini dirancang untuk menggerakkan tampilan LED numerik 7-segmen, mereka memberikan kontrol LED individual, sehingga dapat digunakan hingga 64 LED per IC. Dua dari mereka dapat mengalir untuk mendorong 100 LED yang dibutuhkan. Halaman 13 pada datasheet menunjukkan konfigurasi cascade.
LED harus dihubungkan secara elektrik sebagai kelompok hingga 8 LED yang masing-masing berbagi satu garis katoda (katoda umum), untuk desain ini.
MAX7219 / 7221 adalah driver LED multiplexing, karenanya kecerahan maksimum LED akan lebih rendah daripada driver LED statis seperti bagian sebelumnya.
Berikut ini adalah perpustakaan dan panduan matriks LED yang berguna menggunakan MAX7219.
Beberapa video YouTube yang relevan ( 1 , 2 ) mungkin menarik.
Charlieplexing: driver LED SPI, MAX6950 / MAX6951
Sekali lagi, IC ini dirancang untuk menggerakkan tampilan LED numerik 7-segmen, mereka menyediakan kontrol LED individual, sehingga dapat digunakan hingga 40/64 LED per IC. Dua / tiga di antaranya dapat dihubungkan dengan bus Arduino SPI untuk menggerakkan 100 LED yang dibutuhkan.
Catatan desain tetap sama dengan bagian sebelumnya. Juga, kecerahan maksimum LED individu akan lebih rendah daripada untuk desain multipleks lurus dari MAX7219.
Ada beberapa video YouTube yang mungkin menarik.
Desain komponen diskrit, register geser, IO expander, strip LED yang dapat dipotong dengan pengontrol terpisah, dan banyak lagi ...
Ini semua adalah pendekatan yang telah digunakan dengan berbagai tingkat kesederhanaan dan kesuksesan. Mereka adalah implementasi yang lebih kompleks daripada 3 pendekatan di atas, karenanya tidak dirinci lebih lanjut. Pencarian web akan menghasilkan panduan yang bermanfaat untuk pendekatan ini, jika diperlukan.
Salah satu kunci iritasi dengan desain seperti itu adalah perlunya resistor kontrol saat ini pada setiap LED atau string LED. Perangkat yang dirancang khusus untuk mengemudi LED biasanya tidak memerlukan ini.
Saya tidak punya pengalaman pribadi dengan set opsi terakhir ini, jadi tidak banyak membantu.
Catatan Kaki: Setelah menanggapi pertanyaan ini, saya menemukan pertanyaan yang lebih tua , yang memiliki jawaban yang merinci dan membahas beberapa pendekatan di bagian terakhir saya. Utas itu menarik "bacaan lebih lanjut sebagai pekerjaan rumah".
sumber