İçindekiler:

Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü: 4 Adım
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü: 4 Adım

Video: Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü: 4 Adım

Video: Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü: 4 Adım
Video: 【嘉農】酒、醋、油獲頒國際評鑑大賞 翁章梁親表揚讚許 2024, Kasım
Anonim
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü
Atmega128A Oransal Motor Sürüşü - ATMEL ICE AVR Zamanlayıcı UART PWM Kontrolü

Bu talimatta, size nasıl yapılacağını açıklayacağım

  • DC motoru PWM ile kontrol edin
  • UART aracılığıyla iletişim
  • zamanlayıcı kesintilerini yönet

Her şeyden önce, Aliexpress'de yaklaşık 4 USD bulabileceğiniz bir AVR Çekirdek sistem Geliştirme kartı kullanacağız. Geliştirme kartı bağlantısı burada. Ayrıca yazılımımızı programlamak ve hatalarını ayıklamak için Atmel ICE Debugger ve Atmel Studio'yu kullanacağız.

1. Adım: Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı

Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı
Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı
Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı
Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı
Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı
Veri Sayfasına ve Kaynak Koduna Derinlemesine Dalış - Saat Hızı

1. mermide, geliştirme panosunda görebileceğimiz kristal frekansımızı tanımlarız.

Adım 2: UART Kayıtlarını Ayarlama

UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama
UART Kayıtlarını Ayarlama

UART ile iletişim kurmak için USART Baud Rate Registers - UBRRnL ve UBRRnH'yi doğru bir şekilde ayarlamanız gerekir, bunu kendiniz hesaplayabilir veya doğru değerleri kolayca elde etmek için çevrimiçi hesap makinesini kullanabilirsiniz.

Cevrimici hesap makinesi

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

Böylece MYUBBR değeri hesaplanır, UCSR0B kaydında RXEN0(recv etkinleştirme) TXEN0 (iletim etkinleştirme) ve RXCIE0'ı (interrupt için RX) etkinleştiririz. UCSR0C kaydında 8 bit karakter boyutunu seçeriz.

RX kesme bitini ayarladıktan sonra USART0_RX_vect için ISR fonksiyonunu eklemeliyiz.

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

Kesinti hizmeti rutininizde herhangi bir iş mantığı yapmamalısınız. İşlevin en kısa sürede geri dönmesini sağlamalısınız.

Adım 3: PWM Ayarları

PWM Ayarları
PWM Ayarları

initPWM işlevinde CPU saat ölçekleyicimizi, Zamanlayıcı/Sayaç modunu Fast PWM olarak ayarladık ve davranışını COM bitleriyle ayarladık

Ayrıca DC motoru Tablo 66'da belirtilen OC2 pinine bağlamalıyız. Datasheet'imizde Çıkış Modu, Hızlı PWM Modu ile karşılaştırın, OC2 pininin (OC2/OC1C) PB7 olduğunu da göreceksiniz.

4. Adım: Sonuç

Sonuç
Sonuç
Sonuç
Sonuç

Ekteki kaynak kodunu yüklediğinizde.

DC Motor hızını ayarlamak için UART'tan (arduino seri port terminalini kullanabilirsiniz) yeni bir PWM değeri (0-255) girebilirsiniz.

Önerilen: