- Шта је једносмерни мотор?
- Компоненте потребне
- Кружни дијаграм
- Програмирање Атмега16 за управљање једносмерним мотором
Једносмерни мотори су најчешће коришћени мотори. Ови мотори се могу наћи готово свуда, од малих пројеката до напредне роботике. Претходно смо повезали једносмерни мотор са многим другим микроконтролерима као што су Ардуино, Распберри пи и користили смо га у многим роботским пројектима. Данас учимо да контролишемо једносмерни мотор помоћу АВР микроконтролера Атмега16. Али пре него што наставимо, хајде да знамо више о једносмерном мотору.
Шта је једносмерни мотор?
ДЦ мотор је уређај који трансформише електричну енергију у механичку. Конкретно, једносмерни мотор користи једносмерну струју за претварање електричне енергије у механичку. Основни принцип мотора је интеракција између магнетног поља и струје да би се створила сила унутар мотора која помаже мотору да се окреће. Дакле, када се електрична струја прође кроз завојницу у магнетном пољу, ствара се магнетна сила која производи обртни моменат што резултира кретањем мотора. Смер мотора контролише се окретањем струје уназад. Такође се његова брзина може мењати променом напајаног напона. Будући да микроконтролери имају ПВМ пинове, он се може користити за контролу брзине мотора.
У овом упутству приказат ће се рад једносмерног мотора са Атмега16. Возач мотора Л293Д користиће се за окретање смера струје, а самим тим и смер кретања. Погонски склоп мотора Л293Д користи конфигурацију кола Х-Бридге која на мотор даје потребну струју. Два тастера се користе за одабир смера мотора. Један тастер се користи за одабир ротације у смеру казаљке на сату, а други се користи за одабир протутакатног рада једносмерног мотора.
Компоненте потребне
- Једносмерни мотор (5В)
- Л293Д Мотор Дривер
- Атмега16 микроконтролер ИЦ
- Кристални осцилатор од 16 МХз
- Два кондензатора од 100 нФ
- Два кондензатора од 22 пФ
- Тастер
- Јумпер Вирес
- Бреадбоард
- УСБАСП в2.0
- Лед (било која боја)
Кружни дијаграм
Програмирање Атмега16 за управљање једносмерним мотором
Овде се Атмега16 програмира помоћу УСБАСП и Атмел Студио7.0. Ако не знате како да програмирате Атмега16 помоћу УСБАСП-а, посетите везу. Комплетан програм дат је на крају пројекта, само отпремите програм у Атмега16 и користите два тастера за окретање једносмерног мотора у смеру кретања казаљке на сату и у смеру супротном од казаљке на сату.ДЦ мотор повезан је помоћу покретачког програма мотора Л293Д. Једносмерни мотор ће се окретати у два смера када се притисне одговарајуће дугме. Једно дугме користиће се за ротирање једносмерног мотора у смеру мудрог сата, а друго дугме за окретање истосмерног мотора у смеру супротног од сата. Прво дефинишите ЦПУ фреквенцију микроконтролера и укључите све потребне библиотеке.
#дефине Ф_ЦПУ 16000000УЛ # инцлуде # инцлуде
Затим користите једну променљиву да бисте пратили статус притиснутог дугмета. Ова променљива ће се користити за дефинисање смера мотора.
инт и;
Изаберите режим улаза / излаза ГПИО користећи регистар смера података. У почетку смањите излаз моторне иглице како бисте избегли покретање мотора без притискања дугмета.
ДДРА = 03; ПОРТА & = ~ (1 << 1); ПОРТА & = ~ (1 << 0);
Проверите да ли је притиснуто 1. дугме повезано са ПОРТА4 од Атмега16 и сачувајте статус дугмета у променљивој.
иф (! бит_ис_цлеар (ПИНА, 4)) { и = 1; ПОРТА & = ~ (1 << 1); _делаи_мс (1000); }
Слично проверите да ли 2 ј Тастер је притиснут повезан са ПОРТА5 од Атмега16 и смести статус тастера за у променљиве.
иначе иф (! бит_ис_цлеар (ПИНА, 5)) { и = 2; ПОРТА & = ~ (1 << 0); _делаи_мс (1000); }
Ако је статус 1. дугмета тачан, закрените једносмерни мотор у смеру сата, а ако је статус другог дугмета тачан, ротирајте једносмерни мотор у супротном смеру.
иф (и == 1) { ПОРТА - = (1 << 0); ПОРТА & = ~ (1 << 1); } елсе иф (и == 2) { ПОРТА - = (1 << 1); ПОРТА & = ~ (1 << 0); }
Можете повезати пинове мотора са било којим ГПИО пином, у зависности од кориштеног ГПИО. Такође је важно користити ИЦ управљачки програм мотора како би се смањило оптерећење микроконтролера јер микроконтролери нису способни да пруже потребну струју за покретање једносмерних мотора. За више детаља и друге пројекте засноване на једносмерним моторима, посетите дати линк.
Комплетни код и демонстрациони видео су дати у наставку.