Os debo una explicación de lo que descubrí la semana pasada. Ahí va:
Primero de todo, aunque podría ser válida, tengo que eliminar una parte de la explicacion:
Lectura Velocidad
Me resultó muy curioso que se midiera la velocidad pinchando en la salida de potencia, y en un principio no veía su utilidad. Como he dicho justo arriba, la salida es una modulación por ancho de pulso, y si se quiere utilizar para algo esa información, hay que procesar esa señal.
¿Por qué lo hacen de esta manera? Pues porque la indicación de velocidad se hace directamente en base a la lectura de la salida de potencia, en lugar de mirar el valor del ancho de pulso que le aplicas al PWM. Digamos que muestra la velocidad real del tren, no la que estás aplicando por Software.
Para hacerlo, hay que convertir el PWM en una señal contínua y adaptarla de los 9V de salida a un máximo de 5V que admite el Microcontrolador. Para ello se utiliza el siguiente circuito:
Las dos resistencias actúan de divisor de tensión:
Vout = PWM*R1 / (R2+R1)
Por tanto, si aplicamos la fórmula a los 9V de entrada, tenemos que la Vout es de 2,87V.
El condensador actúa de filtro. Es decir, convierte la señal cuadrada de entrada en una señal contínua con el valor promedio de tensión correspondiente al Duty Cycle aplicado. Es decir, si tenemos un DC del 50%, significa que durante el 50% del tiempo la señal de salida es 9V y el otro 50% es 0, por lo que su promedio es de 4,5V en un periodo (1,435V después del divisor de tensión). El condensador es el encargado de hacer ese “promedio” ya que su tiempo de carga y descarga es mucho más lento. Tendría que meterme en teoría electrónica, pero tampoco es el propósito de este artículo.
Ahora vamos con la explicación nueva (ya no se si decir "correcta" )
Lectura Salida PWM
El equipo lee la salida PWM para poder sincronizar el arranque del tren, con el indicador de velocidad y el sonido. Esto se basa en un efecto de los motores de contínua: La Fuerza Contraelectromotriz
Vamos a hacer una explicación simple del fenómeno. Quien quiera más info, puede consultar la wikipedia y tirar del hilo (lo que hice yo):
https://es.wikipedia.org/wiki/Fuerza_con...ctromotriz
Un ejemplo con números imaginarios
Imáginemos que estamos dando al motor una señal cuadrada de 1 segundo de 10V con 50% de positivo (1/2 segundo) y 50% de negativo
(1/2 segundo). En promedio, le estamos dando al motor 5V, pero con pulsos de 10V medio segundo de cada segundo.
El motor todavía no arranca. La lectura del microcontrolador para la salida es de 5V.
Imaginemos que si le aplicamos los 10V durante 510ms (51%) y que en ese momento el motor arranca. El microcontrolador tendría que leer 5,1V. Pero como el motor ha empezado a girar, durante el tiempo en que no se aplican los 10V (490ms) el motor funciona como generador, por lo que genera algo de corriente y a la pata de lectura del microcontrolador le llegan 5,1V (de cuando se aplican los 10V durante 510ms) más un extra generado por el motor (imaginemos 500mV más), lo que hace un total de 5,6V
Si con el microcontrolador somos capaces de detectar ese salto (de 5,0 a 5,6V cuando debería ser 5,1), seremos capaces de detectar cuando arranca el motor. Con ello, podemos activar en ese momento el velocímetro y el sonido y hemos sincronizado el sistema.
Esto hace que haya que hacer algún cálculo mas, ya que en el momento en que arranca, tenemos que utilizar ese valor de PWM (en el ejemplo el 51) como "punto 0" de nuestro sistema y hacer que ese 49% restante hasta el 100% se reparta en los pasos de velocidad y sonido que tiene el equipo.
Por cierto
- La salida PWM es de 19,6KHz
- La Velocidad 1 corresponde a un PWM de un 44%
- La Velocidad 2 corresponde a un PWM de un 55%
- La Velocidad 3 corresponde a un PWM de un 70%
- La Velocidad 4 corresponde a un PWM de un 90%
Con las pruebas que he hecho, acostumbra a arrancar con un PWM de alrededor de un 22%
Saludos