Πίνακας περιεχομένων:

Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Steps
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Steps

Βίντεο: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Steps

Βίντεο: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Steps
Βίντεο: PID Control for ball on inclined Plane. Atmega128 2024, Ενδέχεται
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

Σε αυτό το διδακτικό, θα σας εξηγήσω πώς να το κάνετε

  • ελέγξτε έναν κινητήρα DC με PWM
  • επικοινωνήστε μέσω UART
  • χειριστεί τις διακοπές του χρονοδιακόπτη

Πρώτα απ 'όλα, θα χρησιμοποιήσουμε έναν πίνακα ανάπτυξης συστήματος AVR Core τον οποίο μπορείτε να βρείτε στο Aliexpress περίπου 4 USD. Ο σύνδεσμος του πίνακα ανάπτυξης είναι εδώ. Θα χρησιμοποιήσουμε επίσης το Atmel ICE Debugger και το Atmel Studio για τον προγραμματισμό και τον εντοπισμό σφαλμάτων του λογισμικού μας.

Βήμα 1: Κατάδυση σε φύλλο δεδομένων και πηγαίο κώδικα - Ταχύτητα ρολογιού

Deep Diving In Datasheet & Source Code - Clock Speed
Deep Diving In Datasheet & Source Code - Clock Speed
Deep Diving In Datasheet & Source Code - Clock Speed
Deep Diving In Datasheet & Source Code - Clock Speed
Deep Diving In Datasheet & Source Code - Clock Speed
Deep Diving In Datasheet & Source Code - Clock Speed

Στο 1. η σφαίρα ορίζουμε την κρυσταλλική μας συχνότητα όπου μπορούμε να δούμε στον πίνακα ανάπτυξης

Βήμα 2: Ρύθμιση μητρώων UART

Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART
Ρύθμιση μητρώων UART

Για να επικοινωνήσετε με το UART πρέπει να ορίσετε σωστά τα μητρώα USART Baud Rate - UBRRnL και UBRRnH μπορείτε να τα υπολογίσετε μόνοι σας ή μπορείτε να χρησιμοποιήσετε την ηλεκτρονική αριθμομηχανή για να λάβετε εύκολα τις σωστές τιμές

Online Υπολογιστής

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

Έτσι, η τιμή MYUBBR υπολογίζεται στη συνέχεια, Στο μητρώο UCSR0B ενεργοποιούμε το RXEN0 (ενεργοποίηση επανασύνδεσης) TXEN0 (ενεργοποίηση μετάδοσης) και το RXCIE0 (RX για διακοπή). Στο μητρώο UCSR0C επιλέγουμε μέγεθος 8 bit κάρτας.

Αφού ορίσουμε το bit διακοπής RX, θα πρέπει να προσθέσουμε τη λειτουργία ISR για το USART0_RX_vect

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

Δεν πρέπει να κάνετε καμία επιχειρηματική λογική στη ρουτίνα παροχής υπηρεσιών διακοπής. Πρέπει να κάνετε τη συνάρτηση να επιστρέψει το συντομότερο δυνατό.

Βήμα 3: Ρυθμίσεις PWM

Ρυθμίσεις PWM
Ρυθμίσεις PWM

Στη λειτουργία initPWM ορίζουμε τον κλιμακωτή ρολογιού CPU, τη λειτουργία χρονοδιακόπτη/μετρητή ως γρήγορο PWM και ορίζουμε τη συμπεριφορά του με bit COM

Θα πρέπει επίσης να συνδέσουμε το μοτέρ DC με τον ακροδέκτη OC2 που καθορίζεται στον πίνακα 66. Συγκρίνετε τη λειτουργία εξόδου, τη γρήγορη λειτουργία PWM στο φύλλο δεδομένων μας, θα δείτε επίσης ότι η ακίδα OC2 είναι (OC2/OC1C) PB7

Βήμα 4: Αποτέλεσμα

Αποτέλεσμα
Αποτέλεσμα
Αποτέλεσμα
Αποτέλεσμα

Όταν ανεβάζετε τον πηγαίο κώδικα στο συνημμένο.

Μπορείτε να εισαγάγετε μια νέα τιμή PWM (0-255) από το UART (μπορείτε να χρησιμοποιήσετε τερματικό σειριακής θύρας arduino) για να ρυθμίσετε την ταχύτητα του κινητήρα DC.

Συνιστάται: