Daftar Isi:

Arduino dan IC Driver LED TLC5940 PWM: 7 Langkah
Arduino dan IC Driver LED TLC5940 PWM: 7 Langkah

Video: Arduino dan IC Driver LED TLC5940 PWM: 7 Langkah

Video: Arduino dan IC Driver LED TLC5940 PWM: 7 Langkah
Video: Проект Ардуино № 13 | 5 контактов, 32 светодиода, 2 светодиодных драйвера [TLC5940] 2024, November
Anonim
Arduino dan IC Driver LED TLC5940 PWM
Arduino dan IC Driver LED TLC5940 PWM

Pada artikel ini kita akan memeriksa IC driver LED 16-channel Texas Instruments TLC5940. Alasan kami melakukan ini adalah untuk mendemonstrasikan cara lain yang lebih mudah untuk menggerakkan banyak LED – dan juga servos. Pertama, berikut adalah beberapa contoh TLC5940. Anda dapat memesan TLC5940 dari PMD Way dengan pengiriman gratis ke seluruh dunia.

TLC5940 tersedia dalam versi DIP, dan juga pemasangan di permukaan. Ini benar-benar bagian yang nyaman, memungkinkan Anda untuk menyesuaikan kecerahan enam belas LED individu melalui PWM (modulasi lebar pulsa) – dan Anda juga dapat daisy-chain lebih dari satu TLC5940 untuk mengontrol lebih banyak lagi.

Selama tutorial ini kami akan menjelaskan cara mengontrol satu atau lebih IC TLC5940 dengan LED dan juga melihat pengontrolan servos. Pada titik ini, silakan unduh salinan TLC5940 (.pdf) karena Anda akan merujuknya melalui proses ini. Selanjutnya silahkan download dan install TLC5940 Arduino library by Alex Leone yang dapat ditemukan disini. Jika Anda tidak yakin bagaimana cara menginstal perpustakaan, klik di sini.

Langkah 1: Bangun Sirkuit Demonstrasi TLC5940

Bangun Sirkuit Demonstrasi TLC5940
Bangun Sirkuit Demonstrasi TLC5940

Sirkuit berikut adalah minimum yang diperlukan untuk mengontrol enam belas LED dari Arduino Anda atau yang kompatibel. Anda dapat menggunakannya untuk bereksperimen dengan berbagai fungsi dan mendapatkan ide tentang apa yang mungkin. Anda akan perlu:

  • Arduino Uno atau papan yang kompatibel
  • 16 LED normal, setiap hari yang dapat memiliki arus maju hingga 20 mA
  • resistor 2 kΩ (memberi atau menerima 10%)
  • keramik 0,1uF dan kapasitor elektrolitik 4,7uF

Perhatikan orientasi LED – dan ingat bahwa TLC5940 adalah driver LED anoda umum – jadi semua anoda LED dihubungkan bersama dan kemudian ke 5V.

Langkah 2:

Untuk sirkuit khusus ini, Anda tidak memerlukan catu daya 5V eksternal – namun Anda mungkin memerlukannya di masa mendatang. Tujuan dari resistor adalah untuk mengontrol jumlah arus yang dapat mengalir melalui LED. Nilai resistor yang dibutuhkan dihitung dengan rumus sebagai berikut:

R = 39,06 / Imax di mana R (dalam Ohm) adalah nilai resistor dan Imax (dalam Amps) adalah jumlah maksimum arus yang Anda inginkan untuk mengalir melalui LED.

Misalnya, jika Anda memiliki LED dengan arus maju 20 mA – perhitungan resistornya adalah: R = 39,06 / 0,02 = 1803 Ohm. Setelah rangkaian terpasang – buka Arduino IDE dan unggah sketsa BasicUse.pde yang ada di folder contoh untuk pustaka TLC5940.

Anda harus disajikan dengan output yang mirip dengan apa yang ditampilkan dalam video.

Langkah 3: Mengontrol TLC5940

Sekarang setelah rangkaian berfungsi, bagaimana kita mengontrol TLC5940? Pertama, fungsi wajib – sertakan perpustakaan di awal sketsa dengan:

#sertakan "Tlc5940.h"

dan kemudian inisialisasi perpustakaan dengan menempatkan yang berikut ini ke dalam void setup():

Tlc.init(x);

x adalah parameter opsional – jika Anda ingin mengatur semua saluran ke kecerahan tertentu segera setelah sketsa dimulai, Anda dapat memasukkan nilai antara 0 dan 4095 untuk x dalam fungsi Tlc.init().

Sekarang untuk menghidupkan atau mematikan saluran/LED. Setiap saluran diberi nomor dari 0 hingga 15, dan kecerahan setiap saluran dapat disesuaikan antara 0 dan 4095. Ini adalah proses dua bagian… Pertama – gunakan satu atau beberapa fungsi berikut untuk mengatur saluran yang diperlukan dan kecerahan masing-masing (PWM tingkat):

Tlc.set(saluran, kecerahan);

Misalnya, jika Anda ingin mengaktifkan tiga saluran pertama dengan kecerahan penuh, gunakan:

Tlc.set(0, 4095);Tlc.set(1, 4095); Tlc.set(2, 4095);

Bagian kedua adalah menggunakan yang berikut ini untuk memperbarui TLC5940 dengan instruksi yang diperlukan dari bagian satu:

Tlc.update();

Jika Anda ingin mematikan semua saluran sekaligus, cukup gunakan:

Tlc.clear();

Langkah 4:

Anda tidak perlu memanggil TLC.update() setelah fungsi clear. Berikut ini adalah contoh sketsa cepat yang menetapkan nilai kecerahan/PWM semua saluran ke tingkat yang berbeda:

#sertakan "Tlc5940.h"void setup() { Tlc.init(0); // inisialisasi TLC5940 dan matikan semua saluran }

lingkaran kosong()

{ untuk (int i = 0; i < 16; i++) { Tlc.set(i, 1023); } Tlc.update(); penundaan (1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 2046); } Tlc.update(); penundaan (1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 3069); } Tlc.update(); penundaan (1000); for (int i = 0; i < 16; i++) { Tlc.set(i, 4095); } Tlc.update(); penundaan (1000); }

Kemampuan untuk mengontrol kecerahan individu untuk setiap saluran/LED juga dapat berguna saat mengontrol LED RGB – Anda kemudian dapat dengan mudah memilih warna yang diperlukan melalui tingkat kecerahan yang berbeda untuk setiap elemen. Sebuah demonstrasi ditampilkan dalam video.

Langkah 5: Menggunakan Dua atau Lebih TLC5940s

Anda dapat melakukan daisy-chain beberapa TLC5940 bersama-sama untuk mengontrol lebih banyak LED. Pertama – sambungkan TLC5940 berikutnya ke Arduino seperti yang ditunjukkan pada rangkaian demonstrasi – kecuali sambungkan pin SOUT (17) dari TLC5940 pertama ke pin SIN (26) dari TLC5940 kedua – saat data bergerak dari Arduino, melalui TLC5940 pertama ke yang kedua dan seterusnya. Kemudian ulangi prosesnya jika Anda memiliki yang ketiga, dll. Jangan lupa resisotr yang mengatur arus!

Selanjutnya, buka file tlc_config.h yang terletak di folder library TLC5940. Ubah nilai NUM_TLCS menjadi jumlah TLC5940s yang telah Anda hubungkan bersama, lalu simpan file dan hapus juga file Tlc5940.o yang juga terletak di folder yang sama. Terakhir restart IDE. Anda kemudian dapat merujuk ke saluran TLC5940 kedua dan selanjutnya secara berurutan dari yang pertama. Artinya, yang pertama adalah 0~15, yang kedua adalah 16~29, dan seterusnya.

Langkah 6: Mengontrol Servo Dengan TLC5940

Karena TLC5940 menghasilkan output PWM (modulasi lebar pulsa), ini juga bagus untuk menggerakkan servo. Sama seperti LED – Anda dapat mengontrol hingga enam belas sekaligus. Ideal untuk membuat robot seperti laba-laba, jam aneh, atau membuat kebisingan.

Saat memilih servo Anda, pastikan servo tidak menarik lebih dari 120 mA saat beroperasi (arus maksimum per saluran) dan juga perhatikan bagian “Mengelola arus dan panas” di akhir tutorial ini. Dan gunakan daya eksternal dengan servos, jangan mengandalkan jalur 5V Arduino.

Untuk menghubungkan servo sederhana – jalur GND terhubung ke GND, 5V (atau kabel tegangan suplai) terhubung ke 5v Anda (atau suplai lain yang sesuai) dan pin kontrol servo terhubung ke salah satu output TLC5940. Terakhir – dan ini penting – sambungkan resistor 2.2kΩ antara pin keluaran TLC5940 yang digunakan dan 5V. Mengontrol servo tidak jauh berbeda dengan LED. Anda membutuhkan dua baris pertama di awal sketsa:

#sertakan "Tlc5940.h"#sertakan "tlc_servos.h"

maka yang berikut ini di void setup():

tlc_initServos();

Selanjutnya, gunakan fungsi berikut untuk memilih servo (saluran) mana yang akan dioperasikan dan sudut (sudut) yang diperlukan:

tlc_setServo(saluran, sudut);

Sama seperti LED, Anda dapat menggabungkan beberapa di antaranya, dan kemudian menjalankan perintah dengan:

Tlc.update();

Jadi mari kita lihat semua itu dalam tindakan. Contoh sketsa berikut menyapu empat servos di 90 derajat:

#sertakan "Tlc5940.h"#sertakan "tlc_servos.h"

batalkan pengaturan()

{ tlc_initServos(); // Catatan: ini akan menurunkan frekuensi PWM ke 50Hz. }

lingkaran kosong()

{ for (int sudut = 0; sudut = 0; sudut--) { tlc_setServo(0, sudut); tlc_setServo(1, sudut); tlc_setServo(2, sudut); tlc_setServo(3, sudut); Tlc.update(); penundaan (5); } }

Video menunjukkan sketsa ini beraksi dengan empat servos.

Jika servo Anda tidak berputar ke sudut yang benar – misalnya Anda meminta 180 derajat dan mereka hanya berputar hingga 90 atau sekitar itu, diperlukan sedikit kerja ekstra.

Anda perlu membuka file tlc_servos.h yang terletak di folder perpustakaan Arduino TLC5940 dan bereksperimen dengan nilai untuk SERVO_MIN_WIDTH dan SERVO_MAX_WIDTH. Misalnya ubah SERVO_MIN_WIDTH dari 200 menjadi 203 dan SERVO_MAX_WIDTH dari 400 menjadi 560.

Langkah 7: Mengelola Arus dan Panas

Seperti disebutkan sebelumnya, TLC5940 dapat menangani maksimum 120 mA per saluran. Setelah beberapa percobaan, Anda mungkin memperhatikan bahwa TLC5940 menjadi hangat – dan tidak apa-apa.

Perhatikan bahwa ada batas maksimum jumlah daya yang dapat dihamburkan sebelum menghancurkan bagian tersebut. Jika Anda hanya menggunakan LED varietas taman biasa atau servo yang lebih kecil, daya tidak akan menjadi masalah. Namun jika Anda berencana menggunakan TLC5940 secara maksimal – harap tinjau catatan yang diberikan oleh penulis perpustakaan.

Kesimpulan

Sekali lagi Anda sedang dalam perjalanan untuk mengendalikan bagian yang sangat berguna dengan Arduino Anda. Sekarang dengan beberapa imajinasi Anda dapat membuat segala macam tampilan visual atau bersenang-senang dengan banyak servos.

Posting ini dipersembahkan oleh pmdway.com – yang menawarkan produk TLC5940 beserta segalanya untuk pembuat dan penggemar elektronik, dengan pengiriman gratis ke seluruh dunia.

Direkomendasikan: