Sadržaj:

Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola: 4 koraka
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola: 4 koraka

Video: Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola: 4 koraka

Video: Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola: 4 koraka
Video: Л.8. Таймеры/счётчики AVR (пример с ДПТ) 2024, Studeni
Anonim
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola
Atmega128A proporcionalna vožnja motorom - ATMEL ICE AVR timer UART PWM kontrola

U ovom uputstvu ću vam objasniti kako to učiniti

  • upravljati istosmjernim motorom s PWM -om
  • komunicirati putem UART -a
  • ručica mjerača vremena prekida

Prije svega, upotrijebit ćemo razvojnu ploču AVR Core sustava koju možete pronaći na Aliexpressu oko 4 USD. Link razvojne ploče je ovdje. Također ćemo koristiti Atmel ICE Debugger i Atmel Studio za programiranje i ispravljanje pogrešaka u našem softveru.

Korak 1: Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina takta

Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina sata
Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina sata
Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina sata
Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina sata
Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina takta
Dubinsko ronjenje u podatkovnoj tablici i izvornom kodu - brzina takta

U 1. točki definiramo našu kristalnu frekvenciju koju možemo vidjeti na razvojnoj ploči

Korak 2: Postavljanje UART registara

Postavljanje UART registara
Postavljanje UART registara
Postavljanje UART registara
Postavljanje UART registara
Postavljanje UART registara
Postavljanje UART registara
Postavljanje UART registara
Postavljanje UART registara

Da biste komunicirali s UART -om, morate ispravno postaviti USART registre brzine prijenosa podataka - UBRRnL i UBRRnH, to možete sami izračunati ili možete koristiti mrežni kalkulator za jednostavno dobivanje ispravnih vrijednosti

Mrežni kalkulator

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

Dakle, tada se izračunava vrijednost MYUBBR. U registru UCSR0B omogućujemo RXEN0 (omogućavanje recv) TXEN0 (omogućavanje prijenosa) i RXCIE0 (RX za prekid). U registru UCSR0C odabiremo 8 -bitnu veličinu znakova.

Nakon što smo postavili RX prekidni bit, trebali bismo dodati ISR funkciju za USART0_RX_vect

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

Ne biste trebali unositi nikakvu poslovnu logiku u rutinu usluge prekida. Morate učiniti da se funkcija vrati što je prije moguće.

Korak 3: Postavke PWM -a

PWM postavke
PWM postavke

U funkciji initPWM postavili smo skaler CPU sata, način Timer/Counter kao Fast PWM i postavili njegovo ponašanje s COM bitovima

Također bismo trebali spojiti istosmjerni motor na OC2 pin koji je naveden u Tablici 66. Usporedite Output Mode, Fast PWM Mode u našem podatkovnom listu, također ćete vidjeti da je OC2 pin (OC2/OC1C) PB7

Korak 4: Rezultat

Proizlaziti
Proizlaziti
Proizlaziti
Proizlaziti

Kada učitate izvorni kod u privitku.

Možete unijeti novu vrijednost PWM (0-255) iz UART-a (možete koristiti terminal serijskog porta arduino) za podešavanje brzine istosmjernog motora.

Preporučeni: