Mündəricat:

Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control: 4 Addım
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control: 4 Addım

Video: Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control: 4 Addım

Video: Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control: 4 Addım
Video: Atmega128 10 Stepper Motor Phase Excitation Example 2024, Noyabr
Anonim
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Timer UART PWM Control

Bu təlimatda sizə bunu necə edəcəyimi izah edəcəyəm

  • PWM ilə bir DC motorunu idarə edin
  • UART vasitəsilə əlaqə qurun
  • qolu taymeri kəsir

Hər şeydən əvvəl, Aliexpress -də 4 USD ətrafında tapa biləcəyiniz bir AVR Core Sistem İnkişaf etdirmə lövhəsindən istifadə edəcəyik. İnkişaf lövhəsi bağlantısı burada. Proqramımızı proqramlaşdırmaq və düzəltmək üçün Atmel ICE Debugger və Atmel Studio -dan da istifadə edəcəyik.

Addım 1: Vərəqə və Mənbə Koduna Dərin Dalış - Saat Sürəti

Məlumat Cədvəlinə və Mənbə Koduna Dərin Dalış - Saat Sürəti
Məlumat Cədvəlinə və Mənbə Koduna Dərin Dalış - Saat Sürəti
Məlumat Cədvəlinə və Mənbə Koduna Dərin Dalış - Saat Sürəti
Məlumat Cədvəlinə və Mənbə Koduna Dərin Dalış - Saat Sürəti
Məlumat Cədvəlinə və Mənbə Koduna Dərin Dalış - Saat Sürəti
Məlumat Cədvəlinə və Mənbə Koduna Dərin Dalış - Saat Sürəti

1. güllədə inkişaf lövhəsində görə biləcəyimiz kristal tezliyimizi təyin edirik

Addım 2: UART qeydlərini qurun

UART qeydlərinin qurulması
UART qeydlərinin qurulması
UART qeydlərinin qurulması
UART qeydlərinin qurulması
UART qeydlərinin qurulması
UART qeydlərinin qurulması
UART qeydlərinin qurulması
UART qeydlərinin qurulması

UART ilə əlaqə qurmaq üçün USART Baud Rate Registers - UBRRnL və UBRRnH -ni düzgün qurmalısınız, özünüz hesablaya bilərsiniz və ya düzgün dəyərləri əldə etmək üçün onlayn kalkulyatordan istifadə edə bilərsiniz.

Online Kalkulyator

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

Beləliklə, MYUBBR dəyəri hesablanır, UCSR0B registrində RXEN0 (recv etkinleştir) TXEN0 (ötürmə aktivləşdirmə) və RXCIE0 (kəsilmə üçün RX) aktivləşdiririk. UCSR0C qeydində 8 bitlik char ölçüsü seçirik.

RX kəsmə bitini təyin etdikdən sonra USART0_RX_vect üçün ISR funksiyasını əlavə etməliyik

ISR (USART0_RX_vect) {char rcvChar = UDR0; əgər (rcvChar! = '\ n') {tampon [bufferIndex] = rcvChar; bufferIndex ++; }}

Fasilə xidmət qaydasında heç bir iş məntiqi etməməlisən. Funksiyanı ən qısa zamanda geri qaytarmalısınız.

Addım 3: PWM Ayarları

PWM Ayarları
PWM Ayarları

İnitPWM funksiyasında CPU saat ölçmə cihazımızı, Taymer/Sayğac rejimini Sürətli PWM olaraq təyin edirik və davranışını COM bitləri ilə təyin edirik.

DC motorunu Cədvəl 66 -da göstərilən OC2 pininə də bağlamalıyıq. Məlumat cədvəlimizdə Çıxış Modu, Sürətli PWM Modu ilə müqayisə edin, OC2 pininin (OC2/OC1C) PB7 olduğunu da görəcəksiniz.

Addım 4: Nəticə

Nəticə
Nəticə
Nəticə
Nəticə

Mənbə kodunu əlavəyə yüklədiyiniz zaman.

DC Motor sürətini təyin etmək üçün UART-dan (arduino serial port terminalından istifadə edə bilərsiniz) yeni bir PWM dəyəri (0-255) daxil edə bilərsiniz.

Tövsiyə: