Kabel RGB LED

13

Saya bertanya-tanya apakah mungkin untuk menghubungkan 8 individu RGB dipimpin seperti strip Adafruit . Saya melihat proyek Pumpkin Pi dan ingin membangunnya. Saya tidak memiliki LED kuning atau merah, tetapi memiliki persediaan RGB yang kecil.

Aku tahu Arduino saya akan menggunakan 270ohm resistor untuk katoda RGB dan mengontrol setiap kecerahan oleh skala 0untuk 255.

Apakah ada cara untuk melakukan ini pada Raspberry Pi?


Memperbarui


Jadi saya sudah melihat lebih dalam lagi. Saya mengambil ide teman-teman Anda menggunakan TLC5940Driver LED.

Jadi sekarang saya meminta bantuan lagi. Saya pikir 1 pertanyaan panjang yang akhirnya memecahkan ini lebih baik daripada banyak yang tersebar di seluruh stackexchange. Sekarang sampai pada bagian pengkabelan. Saya menggunakan tutorial pengkabelan Arduino sebagai permulaan karena saya jauh di atas kepala saya. Saya juga merujuk pada lembar data . Menurut diagram pin 27 or VPRGmembingungkan saya. Diagram Arduino telah di-ground-kan, jadi saya grounding. . . Bagaimana cara menghubungkan ini dengan benar ke pi? Saya juga menduga saya perlu resistor juga ...

Maaf jika ini terdengar sangat bodoh, tapi saya benar-benar pemula dalam hal ini. Anda harus belajar merangkak sebelum bisa berjalan.

Apa yang harus saya lakukan untuk memperbaiki diagram pengkabelan ini ( fritzing )?

File fzz kabel dapat diunduh dari google di sini . TLC5940

masukkan deskripsi gambar di sini


Perbarui 2 - setelah komentar


Dengan mempertimbangkan beberapa jawaban dan komentar ini akan menjadi diagram pengkabelan lalu? 330ohm ke anoda. 2k ohm untuk disematkan 20. Bagaimana input masuk dari pi ke chip? masukkan deskripsi gambar di sini

atrueresistance
sumber
Ooohhh the pumpkin pi =: 0
Piotr Kula
Apakah Anda akan menjelaskan beberapa hal? Apakah Anda ingin menggerakkan semua LED merah, hijau, dan biru dari 8 LED RGB (yang akan menghasilkan 24 output, jadi 8 lebih banyak dari 16 yang disediakan oleh TLC5940). Apa RGB LED yang Anda gunakan? Kita perlu tahu apakah itu anoda umum atau katoda umum (kabel Anda terlihat seperti katoda umum, yang tidak akan bekerja dengan TLC5940, yang hanya dapat menenggelamkan arus. Katoda umum akan membutuhkan chip yang berbeda). Biru juga mungkin tidak aktif menggunakan 3.3V, jadi perlu 5V. Harus melalui lubang elektronik (misalnya DIP), dan bukan permukaan mount. Apakah Anda peduli jika menggunakan 3 chip, bukan satu?
gbulmer
@ gbulmer Maaf tentang itu. Saya tidak memiliki paket LED datang, tetapi berpikir Anda benar pada Common Cathode untuk menyalakan mereka di Arduino saya menulis TINGGI. Saya akan mengambil beberapa Anode Umum dari radioshack malam ini. Saya Memiliki 5 chip TLC5940 dan tidak peduli jika saya menggunakan semuanya. Alasan mengapa saya menggunakan DIP adalah menggunakan papan tempat memotong roti (langkah kecil). Setelah saya mulai bekerja saya akan beralih ke mount permukaan.
atrueresistance

Jawaban:

4

Saya melihat dua hal yang harus diatasi dalam pertanyaan ini:

  1. Bagaimana menghubungkan dan berkomunikasi dengan TLC5940

  2. Cara menghubungkan LED hingga TLC5940 .

Untuk bagian pertama, Anda harus menghubungkannya ke pin i2c pada header P1 Raspberry Pi (yang merupakan pin 3 (data) dan 5 (jam)). Anda kemudian dapat menggunakan pin 1 (3.3 V) untuk VCC dari TLC5940 . Ini merekomendasikan dari 3 V hingga 5.5 V untuk input menurut datasheet. Anda juga ingin menghubungkan pin ground dari P1 (misalnya pin 5) ke GND dari TLC5940 . Dan Anda akan membutuhkan GPIO tambahan (mis. Pin 7) untuk terhubung ke sinyal XLAT TLC5940 untuk mengunci nilai register geser.

Maka Anda perlu mengatur Pi untuk komunikasi i2c: dengan asumsi raspbian, hapus i2c-bcm2708dari /etc/modprobe.d/raspi-blacklist.conf, muat dan i2c-devdan Anda harus mendapatkan /dev/i2c-0dan /dev/i2c-1( i2c-1itulah yang akan Anda gunakan untuk Model B Rev. 2 Pis).

Terakhir, Anda harus menggunakan transaksi i2c untuk mengatur nilai register geser internal, dan kemudian memberi sinyal XLAT (jika menggunakan pin 7, itu GPIO 4).

Saya juga mengabaikan pin GSCLK. Anda harus memberikan input jam sehingga penghitung internal benar-benar bertambah, yang dapat dilakukan dari jalur GPIO lain jika dikonfigurasi dengan benar. Saya juga tidak berpikir 3,3 V rail akan memberikan arus yang cukup untuk aplikasi ini ( 50 mA max ). Jika Anda pindah ke rel 5 V, Anda dapat menggambar hingga ~ 300 mA , tetapi harus menggunakan logika 5 V untuk i2c lalu (dan GSCLK), yang membutuhkan lebih banyak komponen.

Untuk bagian kedua, kedengarannya seperti Anda yang menangani proyek Arduino sebelumnya, kecuali saya salah baca?

opello
sumber
6

Iya. Anda akan menggunakan pin GPIO dalam mode PWM untuk mengontrol setiap skala kecerahan. Contoh pengkabelan dari wiring.org.co . Utilitas & panduan GPIO dari Gordons Project adalah tempat lain untuk memulai

masukkan deskripsi gambar di sini

Edit

Seperti yang ditunjukkan oleh Alex Chamberlain , hanya satu pin GPIO yang mendukung PWM. Anda dapat menggunakan perangkat lunak untuk mencapai PWM pada pin GPIO lainnya. Info & contoh untuk C & Python .

Ini mungkin berlebihan, karena proyek Pumpkin Pi hanya membutuhkan cahaya oranye. Jika Anda memiliki persediaan RGB, dan waktu untuk bereksperimen, Anda dapat menerangi satu warna LED pada RGB & mencampurnya dengan yang lain untuk menghasilkan warna tersier. Rasio 2 bagian merah untuk 1 bagian hijau akan muncul sebagai oranye. Beralih setengah dari LED merah akan membuat ilusi oranye berkedip menjadi kuning. Tapi itu teori warna ; yang belum saya coba.

emcconville
sumber
1
Bukankah hanya ada satu output PWM?
Alex Chamberlain
Pertanyaan bagus. eLinux mengklaim bahwa semua pin GPIO dapat dikonfigurasi ulang untuk PWM; namun, Fungsi Kabel Umum hanya menyatakan GPIO-1 (pin 18) mendukung PWM. Bagian 6.2 Fungsi Alternatif Tugas dari BCM2835 daftar semua pin PWM; di mana, hanya satu yang hadir pada GPIO pi.
emcconville
Artikel eLinux ditulis dengan buruk; ini sedikit lebih baik di bawah ini.
Alex Chamberlain
1
Pin GPIO benar-benar tidak dapat sumber atau tenggelam cukup saat ini untuk mengarahkan LED secara langsung
John La Rooy
1

Sesuatu seperti TLC5940 adalah cara yang baik untuk menggerakkan beberapa LED PWM

Lihat juga TCA6507 di appnote "Programming fun lights" , meskipun tidak tersedia di DIP

Sunting: Tidak apa-apa untuk menjaga pin VPRG pada TLC5940 terhubung ke ground. Ini berarti bahwa Anda tidak dapat menggunakan "koreksi titik" untuk mengkompensasi variasi dalam LED Anda. Jika Anda memiliki banyak LED dan Anda ingin menuju tingkat kerumitan berikutnya, Anda dapat menggunakan koreksi titik untuk membuatnya menyala secara merata.

2k resistor pada pin 20 diperlukan untuk mengatur arus keluaran.

I OUT = 3.96 * R IREF
LED biasa biasanya 20mA, sehingga rumus memberikan 2k untuk resistor

John La Rooy
sumber
0

Ini adalah limpahan yang sangat membantu yang dilakukan seseorang tentang cara menggunakan TLC5940 dengan AVR: https://sites.google.com/site/artcfox/demystifying-the-tlc5940

Ini cukup membantu untuk belajar tentang proses belajar cara menulis kode yang bekerja dengan TLC5940.

Versi pertama dari kode contoh cukup umum. Saya sedang berusaha mengubah semua pernyataan #define dan fungsi tingkat rendah menjadi sesuatu yang akan bekerja pada Raspberry Pi.

jfenwick
sumber