Table des matières:

Entraînement moteur proportionnel Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Steps
Entraînement moteur proportionnel Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Steps

Vidéo: Entraînement moteur proportionnel Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Steps

Vidéo: Entraînement moteur proportionnel Atmega128A - ATMEL ICE AVR Timer UART PWM Control: 4 Steps
Vidéo: Tutoriel du contrôleur de vitesse de moteur 2024, Novembre
Anonim
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR
Atmega128A Entraînement de moteur proportionnel - Contrôle UART PWM de minuterie ATMEL ICE AVR

Dans ce instructable, je vais vous expliquer comment

  • contrôler un moteur à courant continu avec PWM
  • communiquer via UART
  • gérer les interruptions de la minuterie

Tout d'abord, nous utiliserons une carte de développement du système AVR Core que vous pouvez trouver sur Aliexpress autour de 4 USD. Le lien de la carte de développement est ici. Nous utiliserons également Atmel ICE Debugger et Atmel Studio pour programmer et déboguer notre logiciel.

Étape 1: plongée profonde dans la fiche technique et le code source - Vitesse d'horloge

Plongée en profondeur dans la fiche technique et le code source - Vitesse d'horloge
Plongée en profondeur dans la fiche technique et le code source - Vitesse d'horloge
Plongée en profondeur dans la fiche technique et le code source - Vitesse d'horloge
Plongée en profondeur dans la fiche technique et le code source - Vitesse d'horloge
Plongée en profondeur dans la fiche technique et le code source - Vitesse d'horloge
Plongée en profondeur dans la fiche technique et le code source - Vitesse d'horloge

Dans 1. la balle, nous définissons notre fréquence de cristal où nous pouvons voir sur la carte de développement

Étape 2: configuration des registres UART

Configuration des registres UART
Configuration des registres UART
Configuration des registres UART
Configuration des registres UART
Configuration des registres UART
Configuration des registres UART
Configuration des registres UART
Configuration des registres UART

Afin de communiquer avec UART, vous devez définir les registres de débit en bauds USART - UBRnL et UBRRnH correctement, vous pouvez le calculer vous-même ou vous pouvez utiliser une calculatrice en ligne pour obtenir facilement les valeurs correctes.

Calculatrice en ligne

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

La valeur MYUBBR est donc calculée. Dans le registre UCSR0B, nous activons RXEN0 (recv enable) TXEN0 (transmit enable) et RXCIE0 (RX pour interruption). Dans le registre UCSR0C, nous sélectionnons une taille de caractère de 8 bits.

Après avoir défini le bit d'interruption RX, nous devons ajouter la fonction ISR pour USART0_RX_vect

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

Vous ne devez pas appliquer de logique métier dans votre routine de service d'interruption. Vous devez faire revenir la fonction dès que possible.

Étape 3: Paramètres PWM

Paramètres PWM
Paramètres PWM

Dans la fonction initPWM, nous définissons notre horloge CPU, le mode Timer/Counter comme Fast PWM et définissons son comportement avec les bits COM

Nous devons également connecter le moteur à courant continu à la broche OC2 qui est spécifiée dans le tableau 66. Comparez le mode de sortie, le mode PWM rapide dans notre fiche technique, vous verrez également que la broche OC2 est (OC2/OC1C) PB7

Étape 4: Résultat

Résultat
Résultat
Résultat
Résultat

Lorsque vous téléchargez le code source dans la pièce jointe.

Vous pouvez entrer une nouvelle valeur PWM (0-255) à partir de l'UART (vous pouvez utiliser le terminal du port série arduino) pour définir la vitesse du moteur à courant continu.

Conseillé: