Съдържание:
- Стъпка 1: Потапяне в лист с данни и изходен код - Скорост на часовника
- Стъпка 2: Задаване на UART регистри
- Стъпка 3: Настройки на PWM
- Стъпка 4: Резултат
Видео: Atmega128A Пропорционално задвижване на двигателя - ATMEL ICE AVR Таймер UART PWM управление: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
В тази инструкция ще ви обясня как да
- управлява DC мотор с PWM
- комуникирайте чрез UART
- дръжка таймер прекъсвания
На първо място ще използваме дъска за разработка на AVR Core система, която можете да намерите на Aliexpress около 4 USD. Връзката към борда за развитие е тук. Ще използваме също Atmel ICE Debugger и Atmel Studio за програмиране и отстраняване на грешки в нашия софтуер.
Стъпка 1: Потапяне в лист с данни и изходен код - Скорост на часовника
В 1. куршума определяме нашата кристална честота, която можем да видим на таблото за разработка
Стъпка 2: Задаване на UART регистри
За да комуникирате с UART, трябва да настроите правилно регистрите на скоростта на предаване на USART - UBRRnL и UBRRnH, можете да го изчислите сами или можете да използвате онлайн калкулатор, за да получите лесно правилните стойности
Онлайн калкулатор
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Така че стойността MYUBBR се изчислява след това. В регистър UCSR0B активираме RXEN0 (разрешаване на повтор) TXEN0 (разрешаване на предаване) и RXCIE0 (RX за прекъсване). В регистър UCSR0C избираме 8 -битов размер на символа.
След като зададем бит за прекъсване на RX, трябва да добавим ISR функция за USART0_RX_vect
ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {буфер [bufferIndex] = rcvChar; bufferIndex ++; }}
Не бива да правите никаква бизнес логика в рутинната си услуга за прекъсване. Трябва да накарате функцията да се върне възможно най -скоро.
Стъпка 3: Настройки на PWM
Във функцията initPWM задаваме нашия скейлер за часовник на процесора, режим Таймер/Брояч като бърз ШИМ и задаваме поведението му с COM битове
Също така трябва да свържем DC двигателя към OC2 щифт, който е посочен в Таблица 66. Сравнете изходния режим, бърз PWM режим в нашия лист с данни, ще видите също, че OC2 щифт е (OC2/OC1C) PB7
Стъпка 4: Резултат
Когато качите изходния код в прикачения файл.
Можете да въведете нова PWM стойност (0-255) от UART (можете да използвате терминал за сериен порт на arduino), за да зададете скоростта на DC двигателя.
Препоръчано:
Използване на таймер 556 за задвижване на стъпков двигател: 5 стъпки
Използване на таймер 556 за задвижване на стъпков двигател: Тази инструкция ще обясни как таймер 556 може да управлява стъпков двигател. Не е необходим код за тази верига
Просто управление на двигателя чрез мобилен телефон: 5 стъпки
Просто управление на двигателя чрез мобилен телефон: Това ръководство показва как да управлявате интелигентен IoT Servo " HDrive17 " от мобилния си телефон само с помощта на HTML и JavaScript. Уеб страницата, включително този скрипт, се съхранява на двигателя сам и може да бъде прикрепена към WebApp на вашия мобилен телефон
AVR микроконтролер. Светодиоди мигат с помощта на таймер. Таймери Прекъсва. Таймер CTC режим: 6 стъпки
AVR микроконтролер. Светодиоди мигат с помощта на таймер. Таймери Прекъсва. Таймер CTC режим: Здравейте всички! Таймерите са важна концепция в областта на електрониката. Всеки електронен компонент работи по време. Тази времева база помага да се поддържа цялата работа синхронизирана. Всички микроконтролери работят на предварително зададена тактова честота
Проект за управление на двигателя с TB6612FNG: 4 стъпки
Проект за управление на двигателя с TB6612FNG: Това е просто прост проект, който управлява линеен задвижващ механизъм и серво мотор с SparkFUN TB6612FNG платка за управление на двигателя и Arduino Uno. Посетете моя блог за повече от моите проекти тук
Задвижване с постоянен ток на двигателя: 4 стъпки (със снимки)
Задвижване с постоянен ток на мотор с постоянен ток: Тази инструкция ще разгледа подробно проектирането, симулацията, изграждането и тестването на превключващ режим DC към DC преобразувател и контролер на системата за управление за DC двигател. След това този преобразувател ще се използва за цифрово управление за шунтиращ DC двигател с l