Bagaimana cara mengontrol beberapa ratus led individual dengan Arduino?

10

Saya sedang mengerjakan proyek elektronik yang melibatkan ratusan LED. (Berbicara tentang enam hingga tujuh ratus LED ... banyak, saya tahu.) Apakah ada cara untuk mengendalikan banyak LED ini dengan satu atau beberapa Arduino? Saya ingin dapat mengakses / mengontrol setiap LED secara individual karena apa yang ingin saya lakukan adalah merencanakan LED ke peta dinding dunia. Saya kemudian akan menghubungkan Arduino dengan Google Analytics dan ketika seseorang menavigasi ke situs saya dari tempat tertentu di dunia, LED yang paling dekat dengan wilayah mereka akan menyala hampir dalam waktu nyata.

Bantuan apa pun akan dihargai. Terima kasih! Saya sudah mencoba untuk meneliti beberapa dan membaca tentang multiplexing dan charlie-plexing, tetapi yang tampaknya maksimal 100 atau lebih? Saya berasumsi saya akan membutuhkan perangkat keras / komponen eksternal untuk dapat mengendalikan banyak LED ini, tetapi apa sebenarnya yang saya perlukan untuk mewujudkan ini? Apakah ada orang lain yang pernah membuat matriks LED sebesar ini?

kaffolder
sumber

Jawaban:

9

Ketika Anda mengalikan banyak LED secara individual, cara yang umum adalah dengan menggunakan matriks N x M. Waktu dibagi dalam N langkah, di setiap langkah Anda mengaktifkan salah satu dari baris baris N, dan baris kolom yang sesuai dengan LED yang ingin Anda aktifkan. Perhatikan bahwa garis baris masing-masing dapat membawa M kali arus LED, yang meminta beberapa buffering. Setiap LED menyala hanya 1 / N dari waktu, jadi untuk menjaga kecerahan normal Anda harus meningkatkan N-fold saat ini. Kebanyakan LEDS tidak menyukai ini. Charlieplexing tidak praktis dalam situasi ini karena besarnya arus yang terlibat.

Dari pertanyaan Anda, saya mengerti bahwa Anda hanya ingin mengaktifkan 1 LED dalam satu waktu? Dalam hal ini tidak ada yang salah dengan Charlieplexing. A UC dengan 31 pin I / O dapat menggerakkan 900 LED. Kedengarannya seperti pembangunan akan menjadi mimpi buruk ...


Perbarui 5 tahun kemudian: Multiplexing normal atau Charlieplexing bagus ketika Anda memiliki terlalu banyak waktu, tetapi ketika saya harus mengontrol 100 LED sekarang saya akan membeli strip panjang WS2801 LED.

Wouter van Ooijen
sumber
Saya pikir saya punya sesuatu untuk ditambahkan. Nah, jika masalah arus tinggi maka gunakan tegangan tinggi. seperti 9v tetapi untuk 10mS waktu yang sangat singkat dan siklus tugas dihitung dengan benar. Seperti itu juga menggunakan peningkatan masa pakai lampu LED.
Standard Sandun
Tegangan yang dijatuhkan oleh LED adalah tetap, dan demikian juga tegangan output Arduino (kemungkinan 5V, untuk beberapa jenis 3.3V). Menggunakan arus yang lebih tinggi dengan siklus tugas yang lebih kecil umumnya mengurangi masa pakai LED.
Wouter van Ooijen
9

Anda dapat menggunakan register geser 74HC595 (atau serupa) yang murah dan mudah ditemukan untuk dengan mudah mengontrol ratusan LED menggunakan hanya beberapa pin dari Arduino.

Bahkan ada tutorial tentang ini di situs Arduino!

Serial to Parallel Shifting-Out dengan 74HC595

Menggeser Keluar & chip 595

Terkadang Anda mungkin kehabisan pin pada papan Arduino Anda dan perlu memperpanjangnya dengan register geser. Contoh ini didasarkan pada 74HC595. Lembar data merujuk ke 74HC595 sebagai "8-bit register geser serial, paralel atau keluar dengan kait keluaran; 3-negara." Dengan kata lain, Anda dapat menggunakannya untuk mengontrol 8 output sekaligus sekaligus hanya mengambil beberapa pin pada mikrokontroler Anda. Anda dapat menautkan beberapa register secara bersamaan untuk lebih meningkatkan hasil Anda.

Michael Choi
sumber
Itu akan menjadi banyak register geser, tetapi itu akan berhasil :) Anda akan memerlukan sekitar 88 (700 leds / 8 leds per chip) register geser dan hanya 1 mcu.
Johan
1
Jangan lupa driver logika tambahan, karena 88 input cukup banyak untuk ditangani.
Ignacio Vazquez-Abrams
2

Saya akan membangun ini secara modular. Maxim's 6960 akan menggerakkan 64 LED untuk Anda, meskipun agak mahal. Mereka digerakkan dengan antarmuka serial, dan Anda dapat menghubungkan hingga 256 di antaranya secara bersamaan.

7218/7221 juga akan berfungsi.

Eric Gunnerson
sumber
2

Sedikit jawaban terlambat untuk pertanyaan ini, tetapi di sini ada 528 LED yang dilepas dari satu PICAXE 40X2. Itu akan naik hingga 930 LED jika semua pin didedikasikan untuk pekerjaan itu.

Membangun: http://www.picaxeforum.co.uk/entry.php?25-The-PICaxe-orrery

Sebuah video: http://www.youtube.com/watch?v=82LvqiaH-iA

Arsitektur PICAXE cukup lambat, sehingga jumlah maksimum LED yang dapat menyala secara bersamaan dibatasi sekitar 15 sebelum flicker menjadi masalah. Prosesor yang lebih cepat, dan pemrograman yang lebih pintar, akan meningkatkan angka ini secara signifikan.

Buzby
sumber
1

Saya tidak yakin apakah jawaban saya baik atau tidak ... tetapi mengapa tidak berbicara tentang WS2811 strip led addressable ??

Kami ingin melakukan matriks LED untuk menampilkan teks. Ada sebuah proyek di sini ( https://www.pjrc.com/teensy/td_libs_OctoWS2811.html ), dibuat di Teensy, yang hampir sama dengan Arduino.

Saya pikir itu menggunakan konsep PWM (Pulse Width Modulation), dan dengan demikian memungkinkan untuk mengirim data yang kompleks ke strip leds dengan satu kawat.

Tetapi sekali lagi, saya tidak yakin apakah jawaban saya baik ...

Simon
sumber
Masalahnya adalah bahwa waktu yang diperlukan membatasi jumlah LED yang dapat Anda rangkai bersama, dan menyebarkannya ke berbagai rantai akan menambah waktu pemrosesan keseluruhan.
Ignacio Vazquez-Abrams
0

Kami memiliki sedikit diskusi yang bagus mengenai mengemudi banyak LED di pertanyaan terbaru di sini. Jawaban saya di sana tampaknya langsung berlaku untuk masalah Anda di sini. Lihat jawabannya di sini:

Mengemudi LED pada jarak jauh

Michael Karas
sumber
4
Bisakah Anda membawa informasi yang berlaku dan menyesuaikannya dengan pertanyaan ini, jika jawaban Anda berfungsi dengan baik untuk keduanya itu adalah tanda duplikat yang tepat.
Kortuk
0

Berdasarkan info di http://bildr.org/?s=shift+register pada shift shift 74H595 dengan Arduino Uno, yang mengatakan 'jika Anda memiliki 1000 ini dirantai bersama-sama' proyek dimulai pada layar LED dengan 320 LED. Ketika saya mendapat di atas 100 LED mendapat flicker buruk dan akhirnya menggoreng Arduino.

Jadi saya berbicara dengan dukungan teknis di Sparkfun yang menjual saya papan breakout untuk 74H595. Dia mengatakan Anda hanya dapat menyalakan lima atau enam LED sekaligus. Jadi saya kembali dan membaca kembali artikel di BLDR dan menyadari bahwa Anda dapat mengontrol ribuan LED menggunakan 74H595 / Arduino tetapi Anda hanya dapat memiliki selusin atau lebih pada satu waktu. (Ini masuk akal karena Arduino akan memungkinkan 200mA melalui put out 5 volt dan masing-masing LED menarik 20mA sehingga sekitar sepuluh adalah semua itu akan aman daya)

Transistor telah terlihat yang dapat dinyalakan dengan arus 1mA. Jika itu benar jika seseorang dapat merancang rangkaian yang mengontrol transistor yang memiliki kolektor tegangan / arus jauh lebih tinggi untuk aliran emitor. Maka orang dapat menggunakan kombinasi Arduino / 74H595 untuk mengontrol transistor yang ada di sirkuit dengan arus yang lebih tinggi.

Allen di Dallas

Allen Pitts
sumber