Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Qué es PWM?
PWM significa Modulación por Ancho de Pulso (en inglés, Pulse Width Modulation).
Es una técnica utilizada en electrónica para controlar el nivel de potencia entregada
a un dispositivo, como un motor eléctrico o un LED. La idea básica detrás del PWM
es variar el ancho de los pulsos eléctricos enviados a un dispositivo durante un
período de tiempo
determinado.
Declaración de funciones:
El código declara varias funciones que se utilizarán más adelante en el programa.
Estas funciones incluyen delay, initPortClocks, initADCChannel0, initADCChannel9,
getADCValue, initpwm, y mapPot.
Variables globales:
El código declara variables globales pwm_value y analog_value, que se utilizan
para almacenar valores relacionados con el control PWM y la lectura del ADC.
Función main:
La función principal main es el punto de entrada del programa. Realiza las
siguientes acciones:
Llama a initPortClocks para habilitar los relojes de los periféricos utilizados (puertos
GPIO, ADC, TIM2 y TIM3).
Función initPortClocks:
Esta función habilita los relojes para los periféricos necesarios. Se utilizan registros
del RCC (Registro de Control del Reloj) para habilitar los relojes de los puertos
GPIO (Puertos A y B), el ADC1, y los temporizadores TIM2 y TIM3.
Función getADCValue:
Esta función habilita la conversión ADC, espera a que termine la conversión y luego
devuelve el valor de la conversión.
Función delay:
Esta función configura el temporizador TIM2 para generar un retardo especificado
en milisegundos. El temporizador se utiliza como temporizador de precisión para
generar un retardo.
Función initpwm:
Esta función configura el TIM3 y el pin de salida PWM en el puerto GPIOB.
Configura el temporizador para generar una señal PWM y establece el canal 4
(CCR4) para controlar la anchura del pulso PWM.
Función mapPot:
Esta función realiza una conversión de valores mapeando un valor de entrada
(analog_pot) desde el rango de valores del ADC (0-4095) al rango deseado de
valores PWM (0-999).
Conclusiones.
El programa se utiliza un potenciómetro como fuente de entrada analógica. El valor
del potenciómetro se mide a través de un canal del ADC, en particular, el canal 0
(PA0).
El ADC convierte la señal analógica del potenciómetro en un valor digital, que se lee
utilizando la función getADCValue.
La función mapPot se utiliza para mapear el valor del ADC en un rango deseado
para el control PWM. El valor mapeado se utiliza para controlar la modulación por
ancho de pulso (PWM) en el pin de salida asociado al TIM3_CCR4. La señal PWM
puede utilizarse para controlar la luminosidad de un LED.