commit 4e37b7b629184bb429ac1083b3af6ed2f4f1f917
parent bdd0998bc95646c5c68eb133f1eea2884cc0fbc8
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Mon, 3 Nov 2025 11:54:02 -0300
Updated `app/adc_pwm.txt`
Diffstat:
2 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/app/adc_pwm.txt b/app/adc_pwm.txt
@@ -0,0 +1,24 @@
+En este ejemplo se combinan los dos ejemplos anteriores `tdse-tp4_02-pwm` y
+`tdse-tp4_01-adc` de manera tal de regular el ciclo activo de la señal PWM a
+traves de la lectura de la posicion del potenciometro.
+
+Para que la lectura del ADC sea mas estable, y precisa, se realizan varias
+mediciones en lugar de una y luego se hace un promedio de todas las muestras.
+Se tiene en cuenta el tiempo de ejecucion de la tarea, ya que aumenta
+drasticamente debido a esto, de todas formas la cantidad de muestras tomadas es
+tal que el tiempo de ejecucion de la tarea que controla el ADC no supera el
+milisegundo.
+
+Para la generacion de la señal PWM se normaliza el valor del ADC leido al
+intervalo entre 0 y 1, para esto es necesario utilizar numeros de punto
+flotante, en este caso el microcontrolador utilizado no dispone de un periferica
+para este motivo, por lo que la aritmetica de este tipo se hace por software.
+Existen metodos para mapear un intervalo a otro sin utilizar aritmetica de punto
+flotante, pero en este caso se utilizo de todas formas ya que no impacto
+significativamente en el tiempo de ejecucion de la tarea que controla el PWM.
+
+Debido a que se controla un LED con la señal PWM generada, se optó por mapear el
+valor ADC leido al ciclo de trabajo de manera exponencial, esto porque la
+intensidad del LED responde de esta manera al ciclo de trabajo. La función
+utilizada para mapear el valor leido al ciclo de trabajo de la señal se puede
+ver en la figura del archivo `duty_cycle_vs_adc_value.png`.
diff --git a/app/duty_cycle_vs_adc_value.png b/app/duty_cycle_vs_adc_value.png
Binary files differ.