Мазмұны:

Arduino және TLC5940 PWM жарықдиодты драйвері IC: 7 қадам
Arduino және TLC5940 PWM жарықдиодты драйвері IC: 7 қадам

Бейне: Arduino және TLC5940 PWM жарықдиодты драйвері IC: 7 қадам

Бейне: Arduino және TLC5940 PWM жарықдиодты драйвері IC: 7 қадам
Бейне: ESP32 Tutorial 15 - DC Motor Speed Control with ESP32 L293D | SunFounder's ESP32 IoT Learnig kit 2024, Қараша
Anonim
Arduino және TLC5940 PWM жарықдиодты драйвері IC
Arduino және TLC5940 PWM жарықдиодты драйвері IC

Бұл мақалада біз Texas Instruments TLC5940 16 каналды жарықдиодты драйвері IC қарастырамыз. Мұны істеудің себебі - көптеген светодиодтарды, сонымен қатар сервоприводтарды басқарудың басқа оңай жолын көрсету. Біріншіден, мұнда TLC5940 бірнеше мысалдары келтірілген. Сіз TLC5940 -ке PMD Way -ден бүкіл әлем бойынша ақысыз жеткізілімге тапсырыс бере аласыз.

TLC5940 DIP нұсқасында, сонымен қатар бетіне бекітілген. Бұл шын мәнінде PWM (импульстік енді модуляция) арқылы он алты жеке жарықдиодты жарықтандыруды реттеуге мүмкіндік беретін ыңғайлы бөлік, сонымен қатар одан да көп басқару үшін бірнеше TLC5940 тізбегінен тұратын болады.

Бұл оқулықта біз бір немесе бірнеше TLC5940 IC -ті светодиодымен қалай басқаруға болатынын түсіндіреміз, сонымен қатар басқару сервосын қарастырамыз. Осы сәтте TLC5940 (.pdf) көшірмесін жүктеп алыңыз, себебі сіз осы процесте оған сілтеме жасайсыз. Сонымен қатар, Алекс Леонаның TLC5940 Arduino кітапханасын жүктеп, орнатыңыз. Егер сіз кітапхананы қалай орнату керектігін білмесеңіз, мына жерді басыңыз.

1 -қадам: TLC5940 демонстрациялық схемасын құрыңыз

TLC5940 демонстрациялық схемасын құрыңыз
TLC5940 демонстрациялық схемасын құрыңыз

Келесі схема Arduino немесе үйлесімді он алты жарықдиодты басқару үшін қажет минимум болып табылады. Сіз оны әртүрлі функциялармен тәжірибе жасау үшін және мүмкін болатын нәрсе туралы түсінік алу үшін пайдалана аласыз. Саған қажет болады:

  • Arduino Uno немесе үйлесімді тақта
  • 16 қалыпты, күнделікті светодиодтар, олар 20 мА дейінгі токқа ие болуы мүмкін
  • 2 кОм резистор (10%беріңіз немесе алыңыз)
  • 0,1uF керамика және 4,7uF электролиттік конденсатор

Жарықдиодты бағдарға назар аударыңыз-және TLC5940-жалпы анодты жарықдиодты драйвер екенін ұмытпаңыз, сондықтан барлық жарықдиодты анодтар бір-біріне қосылады, содан кейін 5В.

2 -қадам:

Бұл схема үшін сізге сыртқы 5В қуат көзі қажет емес, бірақ болашақта сізге қажет болуы мүмкін. Резистордың мақсаты - светодиодтар арқылы өтетін ток мөлшерін бақылау. Резистордың қажетті мәні келесі формуламен есептеледі:

R = 39.06 / Imax, мұнда R (Оммен) - резистордың мәні, ал Imax (амперде) - жарық диодтар арқылы өткіңіз келетін токтың максималды мөлшері.

Мысалы, егер сізде 20 мА тура ток бар светодиодтар болса - резисторды есептеу: R = 39.06 / 0.02 = 1803 Ом болады. Схема құрастырылғаннан кейін - Arduino IDE ашыңыз және TLC5940 кітапханасының мысал қалтасында орналасқан BasicUse.pde нобайын жүктеңіз.

Сізге бейнеде көрсетілгендей нәтиже ұсынылуы керек.

3 -қадам: TLC5940 басқару

Енді схема жұмыс істейді, біз TLC5940 қалай басқарамыз? Біріншіден, міндетті функциялар - эскиздің басында кітапхананы қамтиды:

#«Tlc5940.h» қосыңыз

содан кейін келесілерді void setup () орналастыру арқылы кітапхананы инициализациялаңыз:

Tlc.init (x);

x - қосымша параметр - егер сіз барлық арналарды эскиз бастала салысымен белгілі бір жарықтылыққа орнатқыңыз келсе, Tlc.init () функциясына x үшін 0 мен 4095 аралығындағы мәнді енгізуге болады.

Енді арнаны/жарық диодты қосу немесе өшіру. Әр арна 0-ден 15-ке дейін нөмірленеді және әр арнаның жарықтығын 0-ден 4095-ке дейін реттеуге болады. Бұл екі бөліктен тұратын процесс … Біріншіден-қажетті арналар мен сәйкес жарықтылықты орнату үшін келесі функцияларды қолданыңыз. деңгей):

Tlc.set (арна, жарықтық);

Мысалы, егер сіз алғашқы үш арнаны толық жарықтықта қосқыңыз келсе, мына әрекеттерді қолданыңыз:

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

Екінші бөлім - TLC5940 -ты бірінші бөлімнің қажетті нұсқауларымен жаңарту үшін келесіні қолдану:

Tlc.update ();

Егер сіз барлық арналарды бірден өшіргіңіз келсе:

Tlc.clear ();

4 -қадам:

Таза функциядан кейін TLC.update () шақырудың қажеті жоқ. Төменде барлық арналардың жарықтық/PWM мәндерін әр түрлі деңгейлерге орнататын жылдам мысал эскизі берілген:

#include «Tlc5940.h» void setup () {Tlc.init (0); // TLC5940 инициализациясын және барлық арналарды өшір}

бос цикл ()

{for (int i = 0; i <16; i ++) {Tlc.set (i, 1023); } Tlc.update (); кешіктіру (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 2046); } Tlc.update (); кешіктіру (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 3069); } Tlc.update (); кешіктіру (1000); for (int i = 0; i <16; i ++) {Tlc.set (i, 4095); } Tlc.update (); кешіктіру (1000); }

Әр арна/жарық диодының жеке жарықтығын басқару мүмкіндігі RGB светодиодтарын басқару кезінде де пайдалы болуы мүмкін - содан кейін әр элементтің әр түрлі жарықтық деңгейлері арқылы қажетті түстерді оңай таңдауға болады. Бейнеде демонстрация көрсетілген.

5 -қадам: Екі немесе одан да көп TLC5940 пайдалану

Қосымша жарықдиодты басқару үшін сіз бірнеше TLC5940 телефондарын тізбектей аласыз. Біріншіден, келесі TLC5940 -ты Arduino -ға демонстрациялық схемада көрсетілгендей қосыңыз - бірінші TLC5940 -тың SOUT түйреуішін (17) екінші TLC5940 -тың SIN істігіне (26) қосудан басқа - деректер Arduino -дан өтетін кезде бірінші TLC5940 екіншісіне және т.б. Егер сізде үштен бірі болса, процедураны қайталаңыз және т.

Содан кейін TLC5940 кітапхана қалтасында орналасқан tlc_config.h файлын ашыңыз. NUM_TLCS мәнін бірге қосылған TLC5940 санына өзгертіңіз, содан кейін файлды сақтаңыз және сол қалтада орналасқан Tlc5940.o файлын жойыңыз. Соңында IDE қайта іске қосыңыз. Содан кейін сіз бірінші және одан кейінгі TLC5940 арналарына сілтеме жасай аласыз. Яғни, біріншісі 0 ~ 15, екіншісі 16 ~ 29 және т.б.

6 -қадам: TLC5940 көмегімен сервистерді басқару

TLC5940 PWM (импульстік енді модуляция) шығысын шығаратындықтан, бұл серво жүргізуге де жақсы. Жарықдиодты шамдар сияқты - сіз бірден он алтыға дейін басқара аласыз. Өрмекші тәрізді роботтарды, оғаш сағаттарды немесе шу шығаруға өте ыңғайлы.

Серво таңдағанда, оның жұмыс кезінде 120 мА -тан аспайтынына көз жеткізіңіз (бір арнаға максималды ток), сонымен қатар осы оқулықтың соңындағы «Ток пен жылуды басқару» бөліміне назар аударыңыз. Сыртқы қуатты серво көмегімен пайдаланыңыз, Arduino 5V желісіне сенбеңіз.

Сервоны қосу қарапайым - GND желісі GND -ге қосылады, 5В (немесе кернеудің кернеуі) сіздің 5v -ке (немесе басқа сәйкес келетін қуат көзіне), ал серво -басқару түйрегіші TLC5940 шығысының біріне қосылады. Соңында - және бұл маңызды - қолданылатын TLC5940 шығыс түйреуіштері мен 5В арасындағы 2,2 кОм резисторды қосыңыз. Сервоны басқару жарықдиодты шамадан өзгеше емес. Эскиздің басында сізге бірінші екі жол қажет:

#«Tlc5940.h» қосу#«tlc_servos.h» қосу

содан кейін жарамсыз баптауда ():

tlc_initServos ();

Әрі қарай, келесі сервисті (арнаны) және қажетті бұрышты (бұрышты) таңдауды таңдаңыз:

tlc_setServo (арна, бұрыш);

Светодиодтар сияқты, сіз олардың бірнешеуін біріктіре аласыз, содан кейін пәрменді орындай аласыз:

Tlc.update ();

Ендеше осының бәрін іс жүзінде көрейік. Келесі мысал эскиз 90 градус бойынша төрт серводы сыпырады:

#«Tlc5940.h» қосу#«tlc_servos.h» қосу

жарамсыз орнату ()

{tlc_initServos (); // Ескерту: бұл PWM жиілігін 50 Гц -ке дейін төмендетеді. }

бос цикл ()

{for (int бұрышы = 0; бұрыш = 0; бұрыш--) {tlc_setServo (0, бұрыш); tlc_setServo (1, бұрыш); tlc_setServo (2, бұрыш); tlc_setServo (3, бұрыш); Tlc.update (); кешіктіру (5); }}

Бейнеде бұл эскиз төрт серво көмегімен әрекет етеді.

Егер сіз сервоприводтар дұрыс бұрышқа бұрылмасаңыз - мысалы, сіз 180 градусқа талап етсеңіз, олар тек 90 градусқа немесе сол жаққа бұрылады, қосымша жұмыс қажет.

TLC5940 Arduino кітапхана қалтасында орналасқан tlc_servos.h файлын ашып, SERVO_MIN_WIDTH және SERVO_MAX_WIDTH мәндерімен тәжірибе жасау қажет. Мысалы, SERVO_MIN_WIDTH 200 -ден 203 -ке және SERVO_MAX_WIDTH 400 -ден 560 -қа өзгертіңіз.

7 -қадам: ток пен жылуды басқару

Бұрын айтылғандай, TLC5940 бір арнаға максимум 120 мА сыйымдылығын қолдана алады. Бірнеше тәжірибеден кейін сіз TLC5940 жылынатынын байқайсыз - бұл жақсы.

Бөлікті бұзар алдында таратылатын қуат мөлшерінің максималды шегі бар екенін ескеріңіз. Егер сіз жай ғана түрлі-түсті диодты немесе кішігірім серводты қолдансаңыз, қуат мәселесі болмайды. Егер сіз TLC5940 мүмкіндігінше пайдалануды жоспарлап отырсаңыз - кітапхана авторлары берген ескертулерді қарап шығыңыз.

Қорытынды

Тағы да сіз Arduino -мен керемет пайдалы бөлікті басқаруға бара жатырсыз. Енді кейбір қиялмен сіз көрнекі дисплейлердің барлық түрін жасай аласыз немесе көптеген серверлермен көңілді бола аласыз.

Бұл хабарламаны сізге pmdway.com ұсынады - ол TLC5940 өнімдерін, сонымен қатар өндірушілер мен электроникаға әуесқойларға арналған, бүкіл әлем бойынша ақысыз жеткізуді ұсынады.

Ұсынылған: