Съдържание:

Arduino 2-в-1 модел влаков контролер: 4 стъпки
Arduino 2-в-1 модел влаков контролер: 4 стъпки

Видео: Arduino 2-в-1 модел влаков контролер: 4 стъпки

Видео: Arduino 2-в-1 модел влаков контролер: 4 стъпки
Видео: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, Юли
Anonim
Arduino 2-в-1 модел влаков контролер
Arduino 2-в-1 модел влаков контролер

Преди четиридесет години проектирах дроселна клапа на базата на операционен усилвател за няколко приятели, а след това преди около четири години я пресъздадох с помощта на микроконтролер PIC. Този проект на Arduino пресъздава PIC версията, но също така добавя възможността да се използва Bluetooth връзка вместо ръчните превключватели за газта, спирачката и посоката на управление. Докато дизайнът, който представям тук, е насочен към 12 -волтов модел железопътен мотор, той може лесно да бъде модифициран за различни други приложения за управление на DC двигател.

Стъпка 1: Модулация на ширината на импулса (PWM)

Модулация на широчината на импулса (PWM)
Модулация на широчината на импулса (PWM)

За тези от вас, които не са запознати с ШИМ, това не е толкова страшно, колкото звучи. Всичко, което наистина означава за нашето просто приложение за управление на двигателя, е, че генерираме квадратна вълна с някаква честота и след това променяме работния цикъл. Работният цикъл се дефинира като отношение на времето, през което изходът е логически висок в сравнение с периода на формата на вълната. Можете да видите това съвсем ясно на горната диаграма с горната форма на вълната при 10% работен цикъл, средната форма на вълната при 50% работен цикъл и долната форма на вълната при 90% работен цикъл. Пунктираната линия, поставена върху всяка форма на вълната, представлява еквивалентното DC напрежение, видяно от двигателя. Като се има предвид, че Arduino има вградена PWM възможност, наистина е доста лесно да се генерира този тип управление на DC двигател. Друго предимство на използването на PWM е, че то помага да се предпази мотора от замахващото стартиране, което може да се случи при използване на прав DC. Един недостатък на ШИМ е, че понякога се чува шум от двигателя при честотата на ШИМ.

Стъпка 2: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер

Първата снимка показва връзките на Arduino за превключвателите и модула на драйвера на двигателя LM298. Вътре в Arduino има слаби издърпващи се резистори, така че за превключвателите не са необходими издърпващи се резистори. Превключвателят за посока е прост SPST (еднополюсен еднократен) превключвател. Превключвателите на дросела и спирачката са показани като нормално отворени, бутони за моментни контакти.

Втората снимка показва връзките Arduino за Bluetooth модула и модула на драйвера на двигателя LM298. Bluetooth TXD изходът се свързва директно към серийния вход на Arduino RX.

Третата картина е L298N двоен H-мостов модул. Модулът LM298 има вграден 5 -волтов регулатор, който може да се активира от джъмпер. Нуждаем се от +5 волта за Arduino и Bluetooth, но искаме +12 волта за задвижване на двигателя. В този случай прилагаме +12 волта към входа „ +12V power“на L298N и ще оставим джъмпера „5V enable“на място. Това позволява на 5-волтовия регулатор да извежда към връзката „+5 мощност“на модула. Свържете го с Arduino и Bluetooth. Не забравяйте да свържете заземяващите проводници за входа +12 и изхода +5 към модула „захранване GND“.

Искаме изходното напрежение на двигателя да варира в зависимост от ШИМ, генерирано от Arduino, вместо просто да бъде пълно или пълно. За да направите това, премахваме джъмперите от “ENA” и “ENB” и свързваме нашия PWM изход Arduino към “ENA” на модула. Имайте предвид, че действителният щифт за активиране е този, който е най -близо до ръба на платката (до „входните“щифтове). Задният щифт за всяко активиране е +5 волта, така че искаме да сме сигурни, че не се свързваме с това.

Пиновете „IN1“и „IN2“на модула са свързани към съответните щифтове Arduino. Тези щифтове контролират посоката на двигателя и, да, има основателна причина да позволите на Arduino да ги контролира, вместо просто да свържете превключвател към модула. Ще видим защо в дискусията за софтуера.

Стъпка 3: Bluetooth модул

Bluetooth модул
Bluetooth модул

Картината, показана тук, е типична за наличните Bluetooth модули. Когато търсите такъв, който да купите, можете да търсите по термините „HC-05“и HC-06”. Разликите между двете са във фърмуера и обикновено в броя на пиновете на платката. Снимката по-горе е на HC-06 модул и идва с опростен фърмуер, който позволява само много основна конфигурация. Също така е зададено като Bluetooth устройство само за „Slave“. С прости думи това означава, че може да реагира само на команди от „главно“устройство и не може да издава команди самостоятелно. Модулът HC-05 има повече възможности за конфигуриране и може да бъде зададен като „главно“или „подчинено“устройство. HC-05 обикновено има шест пина вместо само четирите показани по-горе за HC-06. Щифтът на състоянието не е наистина важен, но ключът (понякога се нарича под други имена като „EN“) е необходим, ако искате да направите някаква конфигурация. По принцип модулите не се нуждаят от никаква конфигурация, ако сте добре със стандартната скорост на предаване 9600 и не се интересувате да дадете конкретно име на модула. Имам няколко проекта, в които ги използвам, така че обичам да ги назова съответно.

Конфигурирането на Bluetooth модулите изисква или да закупите, или да изградите интерфейс към сериен порт RS-232 или към USB порт. В тази публикация няма да опиша как да я създам, но трябва да можете да намерите информация в мрежата. Или просто купете интерфейс. Командите за конфигуриране използват AT команди като нещо, което се използва в старите дни с телефонни модеми. Тук съм приложил ръководство за потребителя, което включва AT команди за всеки тип модул. Едно нещо, което трябва да се отбележи, е, че HC-06 изисква UPPERCASE команди и командният низ трябва да завърши в рамките на 1 секунда. Това означава, че някои от по -дългите низове за неща като промяна на скоростта на предаване ще трябва да бъдат изрязани и поставени във вашата терминална програма или ще трябва да настроите текстови файлове за изпращане. ИЗИСКВАНЕТО НА ГОРНАТА СЛАВА е само ако се опитвате да изпращате команди за конфигуриране. Редовният режим на комуникация може да приема всякакви 8-битови данни.

Стъпка 4: Софтуер

Софтуерът е доста прост както за ръчната версия, така и за Bluetooth версията. За да изберете Bluetooth версията, просто декомментирайте израза „#define BT_Ctrl“.

Когато написах PIC кода, експериментирах с PWM честотата и накрая се спрях на 500-Hz. Открих, че ако честотата е твърде висока, тогава модулът LM298N не е в състояние да реагира достатъчно бързо на импулсите. Това означава, че изходното напрежение не е линейно и може да направи големи скокове. Arduino има вградени PWM команди, но те ви позволяват само да променяте работния цикъл, но не и честотата. За щастие, честотата е около 490-Hz, така че това е достатъчно близо до 500-Hz, който използвах на PIC.

Една от „характеристиките“на дроселите на влака е усещането за инерция за ускорение и спиране, за да се симулира как работи истинският влак. За да се постигне това, в цикъла за ръчната версия на софтуера се вмъква просто времево забавяне. С показаната стойност са необходими приблизително 13 секунди, за да преминете от 0 до 12 волта или от 12 волта обратно към нула. Забавянето може лесно да бъде променено за по -дълго или по -кратко време. Единственият случай, при който инерцията не е в сила, е, когато превключвателят за посока се смени. За целите на защитата работният цикъл на ШИМ веднага се настройва на 0%, когато този превключвател се смени. Това всъщност прави превключвателя за посока също двойно като аварийна спирачка.

За да осигуря незабавно боравене с превключвателя за посока, поставих кода му в манипулатор на прекъсвания. Това също ни позволява да използваме функцията „прекъсване при промяна“, така че няма значение дали промяната е от ниска към висока или висока към ниска.

Bluetooth версията на софтуера използва команди с една буква за иницииране на функциите напред, назад, спирачка и газ. На практика получените команди заместват ръчните превключватели, но предизвикват същите реакции. Приложението, което използвам за Bluetooth контрол, се нарича „Bluetooth сериен контролер“от Next Prototypes. Тя ви позволява да конфигурирате виртуална клавиатура и да зададете свои собствени командни низове и имена за всеки клавиш. Той също така ви позволява да зададете честота на повторение, така че зададох бутоните спирачка и газ на 50 мс, за да дадете около 14 секунди инерция. Деактивирах функцията за повторение за бутоните напред и назад.

Това е всичко за този пост. Вижте другите ми инструкции. Ако се интересувате от проекти за микроконтролер PIC, разгледайте моя уебсайт на адрес www.boomerrules.wordpress.com

Препоръчано: