TB6612FNG және Arduino көмегімен тұрақты ток қозғалтқыштарын басқару
Бұл оқулықта біз TB6612FNG қозғалтқыш драйвер модулін пайдаланып, тұрақты ток қозғалтқыштарының жылдамдығы мен бағытын қалай басқаруға болатынын үйренеміз. Бұл қондырғы екі қозғалтқышты тәуелсіз басқаруға мүмкіндік береді, бұл дөңгелекті роботтар немесе механикаландырылған жобаларды құрудың практикалық жолын қамтамасыз етеді. Сонымен қатар, біз әр қозғалтқыштың жылдамдығын дәл басқару үшін Импульс Ені Модуляциясын (PWM) қалай қолдануға болатынын зерттейміз, бұл жобаңыздың қозғалыс мүмкіндіктерін арттырады.
Осы нұсқаулық бойына біз Arduino тақтасын TB6612FNG breakout тақтасымен және екі тұрақты ток редукторлы қозғалтқышпен бірге қолданамыз. TB6612FNG - бұл L298N сияқты ескі биполярлы драйверлерге қарағанда үлкен жаңарту, себебі ол жоғары тиімді MOSFET транзисторларын пайдаланады. Бұл әсіресе беріктік пен қуат тиімділігі қажет болатын батареямен жұмыс істейтін қосымшаларда пайдалы, себебі бұл драйвер қозғалтқыштарға қызып кетпей немесе үлкен жылу таратқышты қажет етпей көбірек қуат жеткізеді.
Қондырғы мен бағдарламалау туралы қосымша түсінік алу үшін (00:00-дегі бейнеде) тиісті бейнені міндетті түрде қараңыз.
Аппараттық құрал түсіндірмесі
Бұл жобадағы негізгі компоненттерге TB6612FNG қозғалтқыш драйвері, микроконтроллер (Arduino) және екі тұрақты ток қозғалтқышы кіреді. TB6612FNG драйвері Arduino-дан төмен токты логикалық сигналдарды қабылдайды және оларды батареядан қозғалтқыштарға жоғары токты қуатты ауыстыру үшін пайдаланады. Оның әдетте логикалық қуат, қозғалтқыш қуаты, бағытты басқару (AIN1, AIN2, BIN1, BIN2) және жылдамдықты басқару (PWMA, PWMB) үшін арнайы түйреуіштері болады.
Тұрақты ток қозғалтқыштары айналу үшін драйвердің шығыс түйреуіштерінен (A01/A02 және B01/B02) модуляцияланған қуатты алады. Күту түйреуіші (STBY) бас қосқыш ретінде әрекет етеді, қозғалтқыштарды жылдам өшіруге және чипті төмен қуатты ұйқы күйіне ауыстыруға мүмкіндік береді. Әр компонент жетек жүйесінің тегіс және тиімді жұмысын қамтамасыз етуде маңызды рөл атқарады.
Деректер парағының мәліметтері
|
Өндіруші |
Toshiba (IC) / Әртүрлі (Модуль) |
|---|---|
|
Бөлшек нөмірі |
TB6612FNG |
|
Логика/IO кернеуі |
2.7 В - 5.5 В |
|
Қоректендіру кернеуі (VM) |
2.7 В - 15 В |
|
Шығыс тогы (арнаға) |
1.2 А үздіксіз |
|
Шыңдық ток (арнаға) |
3.2 А |
|
PWM жиілігі бойынша нұсқау |
100 кГц-ке дейін |
|
Кіріс логикалық шектері |
Жоғары: > 2.0В, Төмен: < 0.8В (5В VCC кезінде) |
|
Кернеу түсуі / RDS(on) / қанығу |
0.5 Ω (әдеттегі) |
|
Жылулық шектеулер |
Кіріктірілген жылулық өшіру тізбегі |
|
Қаптама |
SSOP24 / Breakout тақтасы |
|
Ескертулер / нұсқалар |
L298N-ді әлдеқайда жоғары тиімділікпен алмастырады. |
-
Тиісті кернеу деңгейлерін қамтамасыз етіңіз (VCC-ны Arduino-дың 5В немесе ESP32-нің 3.3В-ына сәйкестендіріңіз).
-
VM (Қозғалтқыш қуаты) түйреуіші үшін бөлек батарея қоректендіруін қамтамасыз етіңіз.
-
Барлық жерлерді (батарея, Arduino және модуль) біріктіруге абай болыңыз, бұл тұрақсыз әрекетті болдырмау үшін қажет.
-
Қысқа тұйықталуды болдырмау үшін қуат беруден бұрын қосылымдарды тексеріңіз.
-
Әрқашан STBY түйреуішін ЖОҒАРЫ тартыңыз, әйтпесе қозғалтқыштар жұмыс істемейді.
Сым қосу нұсқаулары
Барлық компоненттер үшін қуат пен жерді қосудан бастаңыз. Arduino-дың жерін макет тақтасының теріс шинасына қосыңыз. Содан кейін сыртқы батареяңыздың оң сымын қозғалтқыш драйверіндегі VM түйреуішіне, ал Arduino-дың 5В түйреуішін драйвердегі VCC түйреуішіне қосыңыз.
Әрі қарай, логикалық кірістерді қосыңыз: AIN1-ді Arduino-дағы цифрлық түйреуіш 2-ге, AIN2-ні цифрлық түйреуіш 4-ке және PWMA-ны PWM қабілетті түйреуішке, мысалы цифрлық түйреуіш 5-ке қосыңыз. Екінші қозғалтқыш үшін BIN1-ді 7-ге, BIN2-ні 8-ге және PWMB-ны 6 түйреуішіне қосыңыз. STBY түйреуішін цифрлық түйреуіш 9-ға қосуды ұмытпаңыз.
Қозғалтқыштарға шығыс үшін бірінші тұрақты ток қозғалтқышының екі терминалын A01 және A02-ге қосыңыз. Екінші тұрақты ток қозғалтқышын B01 және B02-ге қосыңыз. Барлық жерлердің ортақ жер шинасында бөлісетінін қайта тексеріңіз.
Код мысалдары және түсіндірме
Жобада қолданылатын кейбір негізгі идентификаторлар мен код үзінділерін қарастырайық. Кодтың бірінші бөлігі бағытты басқару, жылдамдық және күту үшін түйреуіштерді инициализациялайды:
const int AIN1 = 2;const int AIN2 = 4;const int PWMA = 5;const int STBY = 9;
Мұнда AIN1 және AIN2 A қозғалтқышының бағытын басқару үшін тағайындалған, ал PWMA PWM арқылы жылдамдықты басқару үшін қолданылады. STBY Arduino-ға чипті оятуға немесе ұйқы күйіне ауыстыруға мүмкіндік береді.
Әрі қарай, setup функциясы осы түйреуіштерді шығыс ретінде конфигурациялайды және чипті қосады:
void setup() { pinMode(AIN1, OUTPUT); pinMode(AIN2, OUTPUT); pinMode(PWMA, OUTPUT); pinMode(STBY, OUTPUT); // Қозғалтқыш драйверін қосу digitalWrite(STBY, HIGH);}
pinMode() командалары түйреуіштерді шығыс режиміне орнатады. STBY мәнін HIGH күйіне қою TB6612FNG белсенді және командаларды қабылдауға дайын екенін қамтамасыз етеді.
Цикл функциясында біз қозғалтқышқа толық жылдамдықпен алға айналуды, тоқтауды, содан кейін кері айналуды бұйырамыз:
void loop() { // Толық жылдамдықпен алға digitalWrite(AIN1, HIGH); digitalWrite(AIN2, LOW); analogWrite(PWMA, 255); delay(2000); // Тоқтау (еркін айналу) digitalWrite(AIN1, LOW); digitalWrite(AIN2, LOW); analogWrite(PWMA, 0); delay(1000);}
Мұнда AIN1 мәнін HIGH және AIN2 мәнін LOW етіп орнату ішкі H-көпірге токты бір бағытта жіберуді айтады. analogWrite(PWMA, 255) максималды жылдамдықты қолданады. Тоқтату үшін екі бағыт түйреуішін де LOW күйіне тартамыз.
Қосымша мәліметтер мен қос қозғалтқышты басқаруды және арнайы функцияларды қамтитын толық кодты алу үшін мақаланың астында жүктелген толық бағдарламаны қараңыз.
Демонстрация / Не күтуге болады
Сымдарды қосу аяқталғаннан және код жүктелгеннен кейін, қозғалтқыштың екі секунд алға айналғанын, бір секунд тоқтағанын және циклді қайталағанын көруіңіз керек (егер кері айналу логикасын қосқан болсаңыз, келесіде ол кері айналады). Қозғалтқыштың PWM сигналдарына дұрыс жауап беретініне көз жеткізіңіз; егер ол алға жүруін күткенде кері айналса, A01 және A02-ге жалғанған сымдарды ауыстырыңыз (бейнеде 12:30-да).
Жиі кездесетін қателіктерге STBY түйреуішін HIGH күйіне тартуды ұмыту немесе қозғалтқыштарды VM түйреуішіндегі арнайы батареяның орнына Arduino-ның 5V түйреуішінен тікелей қуаттандыру әрекеті жатады, бұл ауыр жүктеме кезінде Arduino-ның қалпына келуіне себеп болуы мүмкін. Қуат көздеріңізді және ортақ жерлерді міндетті түрде тексеріңіз.
Сізге қажет болуы мүмкін нәрселер
-
Амазонка
-
АмазонкаBuy TB6612FNG or DRV8833 motor driver board from AliExpresss.click.aliexpress.com
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Техникалық сипаттама (pdf)
-
motor driver TB6612FNG datasheet
motor_driver_TB6612FNG_datasheet.pdf0.20 MB