Daftar Isi:

Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer Kontrol UART PWM: 4 Langkah
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer Kontrol UART PWM: 4 Langkah

Video: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer Kontrol UART PWM: 4 Langkah

Video: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer Kontrol UART PWM: 4 Langkah
Video: PID Speed Control of DC Motor with ATMEGA128 2024, November
Anonim
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control

Dalam instruksi ini, saya akan menjelaskan caranya

  • mengontrol motor DC dengan PWM
  • berkomunikasi melalui UART
  • menangani interupsi pengatur waktu

Pertama-tama, kami akan menggunakan papan Pengembangan sistem Inti AVR yang dapat Anda temukan di Aliexpress sekitar 4 USD. Tautan papan Pengembangan ada di sini. Kami juga akan menggunakan Atmel ICE Debugger dan Atmel Studio untuk memprogram & men-debug perangkat lunak kami.

Langkah 1: Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam

Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam
Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam
Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam
Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam
Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam
Menyelam Jauh Ke Lembar Data & Kode Sumber - Kecepatan Jam

Dalam 1. peluru kita mendefinisikan frekuensi kristal kita di mana kita bisa melihat di papan pengembangan

Langkah 2: Mengatur Register UART

Mengatur Register UART
Mengatur Register UART
Mengatur Register UART
Mengatur Register UART
Mengatur Register UART
Mengatur Register UART
Mengatur Register UART
Mengatur Register UART

Untuk berkomunikasi dengan UART Anda harus mengatur Register Baud Rate USART – UBRRnL dan UBRRnH dengan benar Anda dapat menghitungnya sendiri atau Anda dapat menggunakan kalkulator online untuk mendapatkan nilai yang benar dengan mudah

Kalkulator Online

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

Jadi nilai MYUBBR dihitung kemudian, Pada register UCSR0B kita aktifkan RXEN0 (recv enable) TXEN0 (transmit enable) dan RXCIE0 (RX untuk interupsi). Pada register UCSR0C kita pilih ukuran char 8 bit.

Setelah kita mengatur bit interupsi RX, kita harus menambahkan fungsi ISR untuk USART0_RX_vect

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

Anda tidak boleh melakukan logika bisnis apa pun dalam rutinitas layanan interupsi Anda. Anda harus mengembalikan fungsi secepatnya.

Langkah 3: Pengaturan PWM

Pengaturan PWM
Pengaturan PWM

Dalam fungsi initPWM kami mengatur scaler jam CPU kami, mode Timer/Counter sebagai PWM Cepat dan mengatur perilakunya dengan bit COM

Kita juga harus menghubungkan motor DC ke pin OC2 yang ditentukan pada Tabel 66. Bandingkan Mode Output, Mode PWM Cepat di lembar data kami, Anda juga akan melihat bahwa pin OC2 adalah (OC2/OC1C) PB7

Langkah 4: Hasil

Hasil
Hasil
Hasil
Hasil

Saat Anda mengunggah kode sumber di lampiran.

Anda dapat memasukkan nilai PWM baru (0-255) dari UART (Anda dapat menggunakan terminal port serial arduino) untuk mengatur kecepatan Motor DC.

Direkomendasikan: