Мазмуну:

Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control: 4 кадам
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control: 4 кадам

Video: Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control: 4 кадам

Video: Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control: 4 кадам
Video: 고유한 기능의 내장 CIP로 기능 안전을 돕는 Microchip AVR® DA 제품군 2024, Ноябрь
Anonim
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control
Atmega128A пропорционалдуу мотор айдоо - ATMEL ICE AVR Timer UART PWM Control

Бул көрсөтмөдө мен муну кантип түшүндүрөм

  • PWM менен DC моторун башкаруу
  • UART аркылуу байланыш
  • кармоочу таймер үзгүлтүктөрү

Биринчиден, биз 4 доллардын тегерегинде Aliexpressтен таба турган AVR Core системасын өнүктүрүү тактасын колдонобуз. Биз ошондой эле Atmel ICE мүчүлүштүктөрдү оңдоочу программасын жана программалык камсыздоону оңдоо үчүн Atmel Studio колдонобуз.

1 -кадам: Маалымат баракчасына жана булак кодуна терең чумкуу - Саат ылдамдыгы

Маалымат баракчасына терең чумкуу & Булак коду - Саат ылдамдыгы
Маалымат баракчасына терең чумкуу & Булак коду - Саат ылдамдыгы
Маалымат баракчасына терең чумкуу & Булак коду - Саат ылдамдыгы
Маалымат баракчасына терең чумкуу & Булак коду - Саат ылдамдыгы
Маалымат баракчасына терең чумкуу & Булак коду - Саат ылдамдыгы
Маалымат баракчасына терең чумкуу & Булак коду - Саат ылдамдыгы

Жылы 1. ок биз кристалл жыштыгын аныктайбыз, биз аны өнүктүрүү тактасынан көрө алабыз

2 -кадам: UART регистрлерин орнотуу

UART регистрлерин орнотуу
UART регистрлерин орнотуу
UART регистрлерин орнотуу
UART регистрлерин орнотуу
UART регистрлерин орнотуу
UART регистрлерин орнотуу
UART регистрлерин орнотуу
UART регистрлерин орнотуу

UART менен байланышуу үчүн сиз USART Baud Rate реестрлерин орнотушуңуз керек - UBRRnL жана UBRRnH сиз туура эсептей аласыз же туура баалуулуктарды алуу үчүн онлайн калькуляторду колдоно аласыз.

Online Calculator

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

Ошентип, MYUBBR мааниси эсептелет, UCSR0B реестринде биз RXEN0 (recv иштетүү) TXEN0 (өткөрүүнү иштетүү) жана RXCIE0 (үзгүлтүккө учуроо үчүн RX) иштетебиз. UCSR0C реестринде биз 8 разряддын өлчөмүн тандап алабыз.

RX үзгүлтүк битин койгондон кийин, USART0_RX_vect үчүн ISR функциясын кошушубуз керек

ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar; bufferIndex ++; }}

Сиз үзгүлтүккө учуроо кызматында эч кандай бизнес логикасын кылбашыңыз керек. Функцияны тез арада кайтарууңуз керек.

3 -кадам: PWM Орнотуулары

PWM Орнотуулары
PWM Орнотуулары

IntPWM функциясында биз CPU сааттын масштабын, Таймерди/Счетчик режимин Fast PWM кылып коюп, анын жүрүшүн COM биттери менен орнотобуз.

Биз ошондой эле DC моторун 66 -таблицада көрсөтүлгөн OC2 төөнөгүчүнө туташтырышыбыз керек. Чыгуу режимин, биздин маалымат барагындагы Fast PWM режимин салыштырыңыз, сиз OC2 пини (OC2/OC1C) PB7 экенин көрөсүз

4 -кадам: Жыйынтык

Жыйынтык
Жыйынтык
Жыйынтык
Жыйынтык

Тиркемеде баштапкы кодду жүктөгөндө.

DC Motor ылдамдыгын орнотуу үчүн UARTтан жаңы PWM маанисин (0-255) киргизе аласыз (arduino сериялык порт терминалын колдоно аласыз).

Сунушталууда: