Taula de continguts:

Conducció proporcional del motor Atmega128A: temporitzador ATMEL ICE AVR Control UART PWM: 4 passos
Conducció proporcional del motor Atmega128A: temporitzador ATMEL ICE AVR Control UART PWM: 4 passos

Vídeo: Conducció proporcional del motor Atmega128A: temporitzador ATMEL ICE AVR Control UART PWM: 4 passos

Vídeo: Conducció proporcional del motor Atmega128A: temporitzador ATMEL ICE AVR Control UART PWM: 4 passos
Vídeo: Mantenimiento del Sensor Oxigeno - LIQUI MOLY #liquimoly # limpiador #aceleración #autos 2024, Desembre
Anonim
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM
Conducció proporcional del motor Atmega128A - Temporitzador ATMEL ICE AVR Control UART PWM

En aquest instructiu, us explicaré com fer-ho

  • controleu un motor de corrent continu amb PWM
  • comunicar-se mitjançant UART
  • maneja les interrupcions del temporitzador

En primer lloc, utilitzarem una placa de desenvolupament de sistemes bàsics AVR que podeu trobar a Aliexpress al voltant de 4 USD. L’enllaç de la placa de desenvolupament és aquí. També utilitzarem Atmel ICE Debugger i Atmel Studio per programar i depurar el nostre programari.

Pas 1: busseig profund en full de dades i codi font: velocitat de rellotge

Busseig profund en full de dades i codi font: velocitat de rellotge
Busseig profund en full de dades i codi font: velocitat de rellotge
Busseig profund en full de dades i codi font: velocitat de rellotge
Busseig profund en full de dades i codi font: velocitat de rellotge
Busseig profund en full de dades i codi font: velocitat de rellotge
Busseig profund en full de dades i codi font: velocitat de rellotge

A 1. la bala definim la nostra freqüència de cristall on la podem veure al tauler de desenvolupament

Pas 2: Configuració dels registres UART

Configuració de registres UART
Configuració de registres UART
Configuració de registres UART
Configuració de registres UART
Configuració de registres UART
Configuració de registres UART
Configuració de registres UART
Configuració de registres UART

Per comunicar-vos amb UART heu d’establir correctament els registres de velocitat en bauds USART: UBRRnL i UBRRnH, podeu calcular-lo vosaltres mateixos o bé podeu utilitzar la calculadora en línia per obtenir valors correctes fàcilment

Calculadora en línia

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

Per tant, es calcula el valor MYUBBR, al registre UCSR0B activem RXEN0 (habilitació recv) TXEN0 (habilitació transmissió) i RXCIE0 (RX per interrupció). Al registre UCSR0C seleccionem una mida de caràcter de 8 bits.

Després d’establir el bit d’interrupció RX, hauríem d’afegir la funció ISR per a USART0_RX_vect

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

No hauríeu de fer cap lògica empresarial a la rutina del servei d'interrupcions. Heu de fer que la funció torni el més aviat possible.

Pas 3: Configuració de PWM

Configuració de PWM
Configuració de PWM

A la funció initPWM configurem el nostre escalador de rellotge de la CPU, el mode temporitzador / comptador com a PWM ràpid i configurem el seu comportament amb bits COM

També hauríem de connectar el motor de corrent continu al pin OC2 que s’especifica a la taula 66. Compareu el mode de sortida, el mode PWM ràpid al nostre full de dades, també veureu que el pin OC2 és (OC2 / OC1C) PB7

Pas 4: resultat

Resultat
Resultat
Resultat
Resultat

Quan pengeu el codi font al fitxer adjunt.

Podeu introduir un nou valor PWM (0-255) des de UART (podeu utilitzar el terminal de port sèrie arduino) per configurar la velocitat del motor de corrent continu.

Recomanat: