Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
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
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
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
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
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.