Saya ingin menggunakan papan Arduino biasa untuk LED kontrol - apa yang paling lampu saya dapat mengontrol secara individual dari papan?
Apakah ada tutorial tentang cara menghubungkannya?
Saya ingin menggunakan papan Arduino biasa untuk LED kontrol - apa yang paling lampu saya dapat mengontrol secara individual dari papan?
Apakah ada tutorial tentang cara menghubungkannya?
Jawaban:
Saya percaya menggunakan Charlie-plexing N garis kontrol N * (N-1) LED. Ada artikel bagus di Wikipedia.
Seorang teman saya, Jimmie P. Rodgers, muat 126 LED pada Arduino Shield. Dia menggunakan charlie-plexing untuk mengontrol LED. Beberapa informasi di papannya ada di - jimmieprodgers.com/2009/12/my-development-process/ (copy archive.org)
Pada pertemuan Kelompok Pengguna Boston Arduino terakhir, Jimmie P. Rodgers menggambar diagram Charlie-plexing sebagai matriks dengan jaring berlabel. Skema yang digambar dengan cara ini tampaknya melakukan pekerjaan yang baik dalam mengkomunikasikan konsep tersebut. Saya membuat beberapa skema yang sama - Lihat http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html
jimmieprodgers.com
link dalam jawaban ini sarat dengan virus.
Anda dapat menggunakan Shift Register ( http://en.wikipedia.org/wiki/Shift_register ) untuk mendapatkan sebanyak mungkin keluaran paralel dari aliran serial tunggal seperti yang Anda inginkan.
Anda harus peduli dengan kendala kekuatan Anda. Saya sebenarnya tidak pernah menggunakan Arduino sendiri tetapi saya berasumsi ia memiliki batas saat ini seperti PICs lakukan. Juga, register geser akan memiliki batas saat ini sendiri. Jika Anda mengalami ini, Anda akan perlu melihat menggunakan sesuatu seperti MOSFET untuk memungkinkan Anda untuk mengontrol LED tanpa harus mengeluarkan banyak tenaga langsung dari mikro kontroler Anda.
Setiap pin mikrokontroler AVR yang diberikan diizinkan untuk sumber hingga 40 mA, dan catu daya total bersumber atau ditenggelamkan oleh chip (yaitu, di tanah dan pin Vcc) harus di bawah 200 mA.
Charlieplexing adalah solusi hebat untuk situasi di mana Anda membutuhkan banyak LED, tetapi dapat bertahan hanya dengan satu LED menyala pada satu waktu. Papan Arduino standar (seperti Duemilanove) menyediakan pin I / O 17 "gratis", tidak termasuk TX, RX, Reset, atau pin 13. Jadi, Anda dapat menghubungkan 17 * 16 = 272 LED. Ini dapat bekerja dengan baik, terutama jika Anda menyalakan satu LED, atau dengan cepat memindai hanya beberapa. Tetapi jika Anda mencoba untuk menerangi seluruh matriks dengan sebuah pola, Anda akan menemukan bahwa masing-masing menyala (sedikit kurang dari) 1/272 waktu, jadi jika arus drive Anda adalah 30 mA pada saat tertentu, setiap LED arus rata-rata sekitar 0,1 mA-- cukup redup.
Jika Anda tidak membutuhkan banyak LED tetapi sebaliknya membutuhkan lebih banyak kecerahan, multiplexing tradisional mungkin merupakan pilihan yang lebih baik. Dalam hal ini, Anda menggunakan beberapa baris sebagai baris dan beberapa sebagai kolom dalam matriks. Jika Anda menggunakan arus LED 10 mA, Anda dapat menentukan matriks 4 kolom dan 13 baris, di mana semua 4 LED dalam satu baris dapat hidup pada satu waktu, dan Anda memindai melalui baris. Kemudian setiap baris pada 1/13 waktu pada arus 10 mA, sehingga arus LED rata-rata bisa setinggi 0,76 mA, TETAPI Anda hanya mendapatkan 4 * 13 = 104 LED. (Jelas lebih cerah per LED daripada dengan charlieplexing.)
Batas dalam contoh terakhir adalah 40 mA per pin pada AVR - karena setiap baris sumber pin mengemudi 4x10 = 40 mA. Jika Anda membiarkan transistor eksternal (yang bisa murah dan kecil) ditambahkan ke output baris, maka Anda dapat menghindari batas tertentu dan menjadi lebih cerah. Misalnya, Anda bisa membuat sebuah array 8x9, dengan 8 baris dan kolom 9, 72 LED sama sekali. Salah satu dari 8 baris pada satu waktu, yang dipilih melalui transistor. Hingga semua 9 LED dalam satu baris tertentu dapat menyala pada satu waktu, didorong pada 20 mA, jadi 180 mA berasal dari transistor, dan Anda tetap berada di bawah batas AVR saat ini. Saat ini rata-rata per LED sekarang 20 mA / 8 = 2,5 mA-- biasanya cukup cerah.
Ada tutorial yang sangat bagus dan terperinci di sini yang mencakup bagian tentang menggunakan Arduino untuk menjalankan kubus LED 8x8x8. (Jangan lewatkan film YouTube mereka memiliki hingga)
Dengan 17 pin I / O, tujuh belas NPN transistor (pengikut emitor untuk meningkatkan arus) seharusnya tidak ada masalah khusus yang menunjukkan 272 LED dalam kombinasi sewenang-wenang pada 1/17 siklus kerja, dengan arus rata-rata atau 0,7mA (200mA / 272), dibatasi oleh kemampuan chip untuk menarik 200mA sekaligus. Menambahkan dioda untuk mendapatkan penurunan 0,7 volt akan memungkinkan penambahan 17 LED lainnya (mengurangi siklus kerja menjadi 1/18), meskipun kecerahannya tidak akan sama dengan yang lainnya.
Sementara Windell Oskay membuat argumen yang baik yang 104 LED adalah maksimal tanpa menambah lebih banyak transistor, Tom Igoe telah memposting foto-foto matriks 128 LED yang langsung dikontrol oleh satu Arduino Mega - tanpa transistor tambahan, terpisah atau terintegrasi.
Apakah Tom Igoe "kecurangan" oleh singkat melebihi "arus maksimum absolut per pin" yang tercantum dalam datasheet?