Miniature Traffic Light dengan Raspberry Pi: Wiring banyak LED

8

Latar Belakang:

Saya seorang Insinyur Sipil yang berspesialisasi dalam perangkat kontrol lalu lintas dan saya memiliki proyek hobi kecil untuk membangun sistem lampu lalu lintas model skala. Saya dapat mengelola dan mengendalikan pemrograman pola lampu lalu lintas saya sendiri menggunakan Raspberry Pi (ditambah ini memberi saya kemampuan untuk menerapkan kontrol dinamis dan terprogram, dan antarmuka dengan skema kontrol lalu lintas yang serius dan mungkin data lalu lintas nyata). Saya hanya butuh bantuan dengan memasang banyak LED di sisi perangkat keras :)

Saya mengikuti tutorial ini http://www.raspberrypi-spy.co.uk/2012/06/control-led- using-gpio-output-pin/ baik-baik saja (termasuk menggunakan sumber daya eksternal, bukan Pin 2), tetapi Saya mungkin akan mengalami masalah koneksi GPIO terlalu sedikit untuk semua lampu lalu lintas.

Selanjutnya saya mencoba multiplexing dengan LED Matrix http://www.appelsiini.net/2011/how-does-led-matrix-work . Multiplexing bekerja, bagaimanapun, lampu biasanya redup, saya ragu ini akan berskala baik, dan ini cenderung memperbesar kompleksitas kontrol.

Pertanyaan inti:

Kurang mendapatkan kartu ekspansi pada Raspberry Pi, apakah ada trik lain yang bisa saya gunakan untuk mengontrol beberapa LED dengan lebih sedikit sinyal 0/1?

Satu hal tentang lampu lalu lintas adalah bahwa mereka biasanya datang dalam blok tiga, hanya satu yang pernah aktif pada suatu waktu. Apakah ada beberapa rangkaian yang relatif sederhana di luar sana yang akan memungkinkan saya untuk 'beralih' blok LED menggunakan sinyal 0/1 tunggal?

SkyNT
sumber
1
b = langit-langit (ln (N) / ln (2)) di mana N adalah jumlah LED untuk mengontrol, dan b adalah jumlah bit yang diperlukan untuk mengimplementasikan kontrol. Dengan demikian unit lampu lalu lintas, di mana hanya 1 dalam 3 LED aktif pada suatu waktu, akan membutuhkan 2 I / O bit untuk kontrol. Dengan 8 bit I / O, Anda dapat mengontrol 32 unit lampu lalu lintas: 2 bit untuk data (yang menyalakan 1 dari 3 lampu), 5 bit untuk alamat (yang mana 1 dari 32 atau 2 ^ 5 unit yang Anda maksud), dan 1 bit untuk menempel. Saya harap seseorang dapat memperluas ini ke jawaban yang lengkap.
shimofuri
Jawaban di bawah ini adalah yang bagus dan apa yang akan saya sarankan tetapi sebagai sesuatu yang sederhana tidak dapat menemukan rangkaian referensi yang baik. Anda juga bisa menggunakan mikrokontroler 8-pin $ 1 kecil dan memutar bus serial Anda sendiri untuk perangkat yang hampir tidak terbatas meskipun itu sedikit pada proyek itu sendiri jika Anda belum pernah menggunakannya sebelumnya.
PeterJ
Mencari "[multiplexing] [led]" akan menemukan pertanyaan dengan kedua tag tersebut. Anda mungkin menemukan beberapa informasi berguna di sana.
Phil Frost
OP dapat menikmati lampu lalu lintas ini dari Velleman
Chetan Bhargava

Jawaban:

11

Apakah Anda terbiasa dengan register geser seperti 74HC595? Dibutuhkan 3 pin dari RPI Anda dan Anda dapat mengontrol 8 jalur output. Anda dapat dengan mudah membuat mereka secara efektif mengendalikan garis keluaran n × 8.

Data secara serial dimasukkan ke register geser dan setelah semua 8 bit output ditransfer, Anda menempelkan bit ke output.

Saya akan menambahkan datasheet di sini, tetapi https://www.sparkfun.com/products/733 menunjukkan video yang bagus dan juga memiliki tautan ke datasheet.

jippie
sumber
4

Shift register karena jippie menyarankan berfungsi dengan baik. Tapi, multiplexing juga bisa dibuat bekerja untuk lebih banyak LED daripada yang Anda harapkan. Solusi untuk mengurangi kecerahan adalah dengan meningkatkan arus puncak sehingga arus rata-rata tetap sama. Anda dapat melakukan ini dengan meningkatkan tegangan atau mengurangi resistor pembatas arus.

Alasan arus berlebih merusak LED adalah karena sambungannya terlalu panas. Jika diberi waktu untuk mendinginkan di antara pulsa, pulsa bisa lebih kuat. Lembar data untuk LED Anda harus menentukan arus rata-rata maksimum, dan arus puncak maksimum yang tidak boleh dilampaui. Jika Anda tidak terlalu khawatir tentang keandalan yang tinggi (proyek hobi, bukan kapal ruang angkasa) dan Anda tidak keberatan merokok beberapa LED atau sedikit membengkokkan aturan, Anda selalu dapat menguji batasnya sendiri.

Juga, cari di charlieplexing cara untuk multiplex lebih banyak LED dari jumlah pin yang lebih kecil. Batas atas berapa banyak LED yang dapat dihubungkan dengan metode ini biasanya kecerahan dapat dicapai dengan arus yang tersedia dari pin GPIO, bukan jumlah pin.

Bacaan lebih lanjut: Apakah mengeluarkan LED pada arus yang lebih tinggi menghasilkan kecerahan yang lebih jelas?

Phil Frost
sumber
1
Saya cenderung menghindar dari mendorong arus puncak terlalu tinggi karena tidak adanya keliling yang dapat mencegah deretan terlalu lama. Setiap drive baris berbasis perangkat lunak hampir dijamin gagal sesekali, dan sirkuit yang dirancang dengan baik harus kebal terhadap kerusakan akibat kejadian seperti itu.
supercat
-1

Gunakan USB atau Ethernet untuk mengontrol lampu melalui papan relai yang menempel seperti ini

http://www.robot-electronics.co.uk/acatalog/Relay_Modules.html

Saya telah menggunakan papan ini untuk aplikasi lain dan sangat bagus

Gareth
sumber
2
Kami berharap jawaban di sini sebagian besar berdiri sendiri. Tautan membusuk dari waktu ke waktu, dan tidak boleh diandalkan untuk informasi utama. Nyatakan jawaban Anda dalam satu atau dua paragraf dan gunakan tautan untuk merujuk ke informasi latar belakang tambahan.
Olin Lathrop
Cukup adil! Papan yang dimaksud yang saya rujuk dari Robot Electronics adalah driver relai terkontrol USB atau Ethernet. Itu datang dengan perintah sederhana yang ditetapkan untuk mengatur masing-masing dari 8 atau 16 relay di papan on atau off. Relay ini dapat dengan mudah digunakan untuk mengganti tumpukan LED dari lampu lalu lintas Anda dan memungkinkan kontrol melalui port USB atau Ethernet Raspberry PI
Gareth
@ Gareth Jadi letakkan informasi ini di jawaban tidak di sini.
Butzke