Mündəricat:
- Addım 1: TLC5940 Nümunə Dövrü qurun
- Addım 2:
- Addım 3: TLC5940 -a nəzarət
- Addım 4:
- Addım 5: İki və ya daha çox TLC5940 istifadə edin
- Addım 6: TLC5940 ilə servolara nəzarət
- Addım 7: Cari və İstiliyi İdarə Edin
Video: Arduino və TLC5940 PWM LED Sürücü IC: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Bu yazıda Texas Instruments TLC5940 16 kanallı LED sürücüsü IC-ni araşdıracağıq. Bunu etməyimizin səbəbi, bir çox LED idarə etmənin başqa bir daha asan yolunu göstərməkdir - həm də servo. Əvvəlcə TLC5940 -dan bir neçə nümunə. TLC5940 -ı bütün dünyada pulsuz çatdırılma ilə PMD Way -dən sifariş edə bilərsiniz.
TLC5940, DIP versiyasında və səthə montajda mövcuddur. Bu, həqiqətən, PWM (nəbz genişliyi modulyasiyası) vasitəsilə on altı fərdi LED-in parlaqlığını tənzimləməyə imkan verən əlverişli bir hissədir-və daha da çox idarə etmək üçün birdən çox TLC5940-dan zəncirvari zəncir edə bilərsiniz.
Bu təlimat zamanı bir və ya daha çox TLC5940 IC -nin LED ilə necə idarə olunacağını izah edəcəyik və həmçinin servoların idarə olunmasına baxacağıq. Bu nöqtədə, zəhmət olmasa TLC5940 (.pdf) bir nüsxəsini bu prosesdə istinad edəcəyiniz kimi yükləyin. Bundan əlavə, burada tapa biləcəyiniz Alex Leone tərəfindən TLC5940 Arduino kitabxanasını yükləyin və quraşdırın. Kitabxananı necə quracağınızı bilmirsinizsə, bura vurun.
Addım 1: TLC5940 Nümunə Dövrü qurun
Aşağıdakı sxem, Arduino və ya uyğun olan on altı LED -i idarə etmək üçün tələb olunan minimumdur. Fərqli funksiyaları sınamaq və nəyin mümkün olduğunu anlamaq üçün istifadə edə bilərsiniz. Sizə lazım olacaq:
- Bir Arduino Uno və ya uyğun bir lövhə
- 20 mA -a qədər irəli cərəyana malik olan 16 normal, gündəlik LED
- 2 kΩ rezistor (10%verin və ya alın)
- 0.1uF keramika və 4.7 uF elektrolitik kondansatör
LED oriyentasiyasına diqqət yetirin-və TLC5940-ın ümumi anodlu bir LED sürücüsü olduğunu unutmayın-buna görə də bütün LED anodları bir-birinə, sonra 5V-ə qoşulur.
Addım 2:
Bu xüsusi dövrə üçün xarici 5V enerji təchizatına ehtiyacınız olmayacaq - ancaq gələcəkdə ehtiyacınız ola bilər. Rezistorun məqsədi LED -lərdən keçə bilən cərəyanın miqdarını nəzarət etməkdir. Lazım olan müqavimət dəyəri aşağıdakı düsturla hesablanır:
R = 39.06 / Imax, burada R (Ohmda) müqavimət dəyəri və Imax (Amperdə) LED -lərdən keçmək istədiyiniz maksimum cərəyandır.
Məsələn, 20 mA irəli cərəyanı olan LEDləriniz varsa - rezistorun hesablanması belə olacaq: R = 39.06 / 0.02 = 1803 Ohm. Dövrə yığdıqdan sonra - Arduino IDE -ni açın və TLC5940 kitabxanasının nümunə qovluğunda olan BasicUse.pde eskizini yükləyin.
Videoda göstərilənə bənzər bir çıxış təqdim edilməlidir.
Addım 3: TLC5940 -a nəzarət
İndi dövrə işlədiyi üçün TLC5940 -ı necə idarə edə bilərik? Birincisi, məcburi funksiyalar - eskizin əvvəlinə kitabxananı daxil edin:
#"Tlc5940.h" daxil edin
və sonra aşağıdakıları void setup () yerləşdirərək kitabxananı işə salın:
Tlc.init (x);
x isteğe bağlı bir parametrdir - eskiz başlayan kimi bütün kanalları müəyyən bir parlaqlığa təyin etmək istəyirsinizsə, Tlc.init () funksiyasında x üçün 0 ilə 4095 arasında bir dəyər daxil edə bilərsiniz.
İndi bir kanal/LED açmaq və ya söndürmək üçün. Hər bir kanal 0-dan 15-ə qədər nömrələnir və hər bir kanalın parlaqlığı 0 ilə 4095 arasında tənzimlənə bilər. Bu iki hissəli bir prosesdir … Birincisi-lazımi kanalları və müvafiq parlaqlığı (PWM) qurmaq üçün aşağıdakı funksiyalardan birini və ya bir neçəsini istifadə edin. səviyyə):
Tlc.set (kanal, parlaqlıq);
Məsələn, ilk üç kanalın tam parlaqlıqda olmasını istəyirsinizsə, istifadə edin:
Tlc.set (0, 4095); Tlc.set (1, 4095); Tlc.set (2, 4095);
İkinci hissə, TLC5940 -ı birinci hissədən tələb olunan təlimatlarla yeniləmək üçün aşağıdakılardan istifadə etməkdir:
Tlc.update ();
Bütün kanalları bir anda söndürmək istəyirsinizsə, sadəcə istifadə edin:
Tlc.clear ();
Addım 4:
Təmiz funksiyadan sonra TLC.update () çağırmaq lazım deyil. Aşağıda, bütün kanalların parlaqlığını/PWM dəyərlərini fərqli səviyyələrə qoyan qısa bir nümunə eskizdir:
#include "Tlc5940.h" void setup () {Tlc.init (0); // TLC5940 -ı işə salın və bütün kanalları söndürün}
boşluq döngəsi ()
{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); gecikmə (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); gecikmə (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); gecikmə (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); gecikmə (1000); }
Hər bir kanal/LED üçün fərdi parlaqlığı idarə etmək qabiliyyəti RGB LED -lərini idarə edərkən də faydalı ola bilər - sonra hər bir element üçün fərqli parlaqlıq səviyyələri ilə lazım olan rəngləri asanlıqla seçə bilərsiniz. Videoda bir nümayiş göstərilir.
Addım 5: İki və ya daha çox TLC5940 istifadə edin
Daha çox LED-i idarə etmək üçün bir neçə TLC5940-ı birləşdirə bilərsiniz. Birincisi - Növbəti TLC5940 -ı nümayiş sxemində göstərildiyi kimi Arduino -ya bağlayın - ilk TLC5940 -ın SOUT pinini (17) ikinci TLC5940 -ın SIN pininə (26) bağlamaq istisna olmaqla - məlumatlar Arduinodan keçərkən birinci TLC5940 ikinciyə və s. Üçüncünüz varsa, prosesi təkrarlayın və s. Cərəyanı təyin edən resisotr -u unutmayın!
Sonra, TLC5940 kitabxana qovluğunda yerləşən tlc_config.h faylını açın. NUM_TLCS dəyərini birlikdə bağladığınız TLC5940 sayına dəyişdirin, sonra faylı qeyd edin və eyni qovluqda yerləşən Tlc5940.o faylını silin. Nəhayət IDE -ni yenidən başladın. Daha sonra birincidən ardıcıl olaraq ikinci və digər TLC5940 kanallarına müraciət edə bilərsiniz. Yəni birincisi 0 ~ 15, ikincisi 16 ~ 29 və s.
Addım 6: TLC5940 ilə servolara nəzarət
TLC5940, PWM (nəbz eni modulyasiyası) çıxışı yaratdığından, servo idarə etmək üçün də əladır. LEDlər kimi - eyni anda on altıya qədər idarə edə bilərsiniz. Hörümçək kimi robotlar, qəribə saatlar yaratmaq və ya səs-küy salmaq üçün idealdır.
Servo seçərkən, işləyərkən 120 mA -dan çox çəkmədiyinə əmin olun (hər kanal üçün maksimum cərəyan) və bu təlimatın sonunda "Cərəyanı və istiliyi idarə etmək" bölməsinə diqqət yetirin. Xarici gücdən servo ilə istifadə edin, Arduinonun 5V xəttinə etibar etməyin.
Bir servoya qoşulmaq çox sadədir - GND xətti GND -yə, 5V (və ya təchizat gərginliyi) 5v -ə (və ya digər uyğun təchizata) və servo idarəetmə pimi TLC5940 -ın çıxışlarından birinə qoşulur. Nəhayət - və bu vacibdir - istifadə olunan TLC5940 çıxış pin (lər) i ilə 5V arasında 2.2 kΩ rezistor bağlayın. Bir servoya nəzarət etmək LED -dən o qədər də fərqlənmir. Eskizin əvvəlində ilk iki sətrə ehtiyacınız var:
#"Tlc5940.h" daxil edin#"tlc_servos.h" daxil edin
sonra aşağıdakılar etibarsız olaraq qurulur ():
tlc_initServos ();
Sonra, hansı servonun (kanalın) işləyəcəyini və lazım olan bucağı (bucağı) seçmək üçün aşağıdakı funksiyanı istifadə edin:
tlc_setServo (kanal, bucaq);
LEDlər kimi onlardan bir neçəsini bir araya gətirə və sonra əmri yerinə yetirə bilərsiniz:
Tlc.update ();
Odur ki, bütün bunları hərəkətdə görək. Aşağıdakı nümunə eskiz, 90 dərəcə boyunca dörd servo süpürür:
#"Tlc5940.h" daxil edin#"tlc_servos.h" daxil edin
boş quraşdırma ()
{tlc_initServos (); // Qeyd: bu, PWM tezliyini 50Hz -ə endirəcək. }
boşluq döngəsi ()
{for (int açısı = 0; bucaq = 0; bucaq--) {tlc_setServo (0, bucaq); tlc_setServo (1, bucaq); tlc_setServo (2, bucaq); tlc_setServo (3, bucaq); Tlc.update (); gecikmə (5); }}
Videoda bu eskiz dörd servo ilə hərəkətdədir.
Əgər servolar düzgün bucağa dönmürsə - məsələn, 180 dərəcə istəsən və onlar yalnız 90 -a və ya oraya dönsələr, bir az əlavə iş tələb olunur.
TLC5940 Arduino kitabxana qovluğunda yerləşən tlc_servos.h faylını açmalı və SERVO_MIN_WIDTH və SERVO_MAX_WIDTH dəyərlərini sınamalısınız. Məsələn SERVO_MIN_WIDTH 200 -dən 203 -ə və SERVO_MAX_WIDTH 400 -dən 560 -a dəyişin.
Addım 7: Cari və İstiliyi İdarə Edin
Daha əvvəl də qeyd edildiyi kimi, TLC5940 hər kanal üçün maksimum 120 mA tuta bilir. Bir az təcrübədən sonra TLC5940 -ın istiləşdiyini görə bilərsiniz - bu da yaxşıdır.
Diqqət yetirin ki, hissəni məhv etməzdən əvvəl dağıla biləcək gücün maksimum həddi var. Yalnız adi bağ LEDləri və ya daha kiçik servolardan istifadə edirsinizsə, güc problemi olmayacaq. Ancaq TLC5940 -dan maksimum istifadə etməyi planlaşdırırsınızsa - kitabxana müəllifləri tərəfindən verilən qeydləri nəzərdən keçirin.
Nəticə
Bir daha Arduino ilə inanılmaz dərəcədə faydalı bir hissəni idarə etmək yolundasınız. İndi bir az təsəvvür edərək hər cür vizual ekran yarada və ya bir çox servo ilə əylənə bilərsiniz.
Bu yazı, TLC5940 məhsullarını, istehsalçıları və elektronika həvəskarları üçün hər şeyi, dünyada pulsuz çatdırılma ilə birlikdə təqdim edən pmdway.com tərəfindən sizə təqdim olunur.
Tövsiyə:
Silgi istifadə edərək USB Flash Sürücü necə etmək olar - DIY USB Sürücü Çantası: 4 addım
Silgi istifadə edərək USB Flash Sürücü necə etmək olar | DIY USB Sürücü Çantası: Bu blog "Silgi istifadə edərək USB Flaş Sürücü Necə Hazırlanır?" Haqqında DIY USB Sürücü Çantası " Ümid edirəm bəyənəcəksiniz
Boomstick - Cizgi LED Sürücü: 10 addım
Boomstick - Cizgi LED Sürücü: Boomstick, kiçik bir Arduino ilə işləyən və musiqiyə reaksiya verən, proqramlaşdırıla bilən RGB LED -lərdən ibarət animasiya simli yaratmaq üçün bir layihədir. Bu təlimat Boomstick proqramını işə salmaq üçün yığa biləcəyiniz bir hardware konfiqurasiyasına yönəlmişdir. Bu h
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım
ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
Alətləri Gücləndirmək üçün Treadmill DC Sürücü Motoru və PWM Sürət Nəzarətçisindən istifadə edin: 13 Addım (Şəkillərlə birlikdə)
Güc Alətləri üçün Koşu Bantı DC Sürücü Motoru və PWM Sürət Nəzarətçisindən istifadə edin: Metal kəsmə freze və torna, Qazma presləri, şerit testereleri, zımpara və daha çox kimi elektrikli alətlər tələb edə bilər. Təsadüfən əksər Koşu Bantları 80-260 VDC mühərrikdən istifadə edir
Tualet Kağıdı Roll Flash Sürücü "Yuyan Sürücü": 6 addım
Tualet Kağıdı Roll Flash Sürücü "Yuyan Sürücü": Vay! Tualet kağızım bitdi! Amma … boş rulonu atmaq əvəzinə niyə yenidən istifadə etməyəsən?