Агуулгын хүснэгт:

Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт: 4 алхам
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт: 4 алхам

Видео: Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт: 4 алхам

Видео: Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт: 4 алхам
Видео: Широтно-импульсная модуляция AVR | Часть 1 | Программирование микроконтроллеров AVR 2024, Арваннэгдүгээр
Anonim
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт
Atmega128A пропорциональ мотор жолоодох - ATMEL ICE AVR таймер UART PWM хяналт

Энэхүү зааварчилгаанд би яаж хийхийг тайлбарлах болно

  • ХОУХ -тэй тогтмол гүйдлийн хөдөлгүүрийг удирдах
  • UART -ээр дамжуулан харилцах
  • бариулын таймер тасалдал

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

Алхам 1: Өгөгдлийн хуудас ба эх код руу гүн шумбах - Цагийн хурд

Өгөгдлийн хүснэгтэд гүн гүнзгий шумбах, эх код - Цагийн хурд
Өгөгдлийн хүснэгтэд гүн гүнзгий шумбах, эх код - Цагийн хурд
Өгөгдлийн хүснэгтэд гүн гүнзгий шумбах, эх код - Цагийн хурд
Өгөгдлийн хүснэгтэд гүн гүнзгий шумбах, эх код - Цагийн хурд
Өгөгдлийн хүснэгтэд гүн гүнзгий шумбах & Эх код - Цагийн хурд
Өгөгдлийн хүснэгтэд гүн гүнзгий шумбах & Эх код - Цагийн хурд

1. суманд бид болор давтамжийг тодорхойлж, хөгжлийн самбар дээр харж болно

Алхам 2: UART бүртгэлийг тохируулах

UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах
UART бүртгэлийг тохируулах

UART -тэй холбогдохын тулд та USART Baud Rate Registers - UBRRnL ба UBRRnH -ийг зөв тохируулах хэрэгтэй бөгөөд үүнийг өөрөө тооцоолох боломжтой эсвэл онлайн тооцоолуур ашиглан зөв утгыг хялбархан авах боломжтой болно.

Онлайн тооцоолуур

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') {буфер [bufferIndex] = rcvChar; bufferIndex ++; }}

Та тасалдсан үйлчилгээнийхээ горимд бизнесийн логик хийх ёсгүй. Та функцийг аль болох хурдан буцааж өгөх ёстой.

Алхам 3: ХОУХШ -ийн тохиргоо

PWM тохиргоо
PWM тохиргоо

InitPWM функц дээр бид CPU -ийн цаг хэмжигч, таймер/тоолуурын горимыг хурдан ХОУХ гэж тохируулж, түүний зан төлөвийг COM битээр тохируулдаг.

Бид мөн DC моторыг Хүснэгт 66 -д заасан OC2 зүүтэй холбох ёстой. Гаралтын горим, ХОУХШ -ийн хурдан горимыг манай мэдээллийн хүснэгтэд харьцуулбал OC2 зүү нь (OC2/OC1C) PB7 болохыг харах болно.

Алхам 4: Үр дүн

Үр дүн
Үр дүн
Үр дүн
Үр дүн

Та хавсралт дахь эх кодыг байршуулах үед.

Та DC хөдөлгүүрийн хурдыг тохируулахын тулд UART-ээс PWM-ийн шинэ утгыг (0-255) оруулж болно (та arduino цуваа порт терминал ашиглаж болно).

Зөвлөмж болгож буй: