Paso 13: Variador
Esto se hace con retroalimentación desde el tacómetro.
En primer lugar, modulación de anchura de pulso se utiliza para controlar la potencia al motor. Esta modulación de anchura de pulso es simplemente encender y apagar la fuente de alimentación muy rápida. Si los impulsos de 'on' son cortos en comparación con los impulsos de 'off', la media en el tiempo de la corriente suministrada al motor será baja. Si los impulsos de 'on' son más largos que los impulsos de 'off', el poder será grande.
El arduino tiene varias salidas analógicas que utilizan PWM. Estas salidas tienen una resolución de 256 con 0 siendo ninguna energía y 256 completamente abierto.
La tarea del programa en el arduino es encontrar el valor correcto para permitir que el disco gire a 12 revoluciones por segundo. (o 1 revolución en 0.083... s)
En cada revolución de la tira de aluminio conecta los dos cables que actúa como un interruptor digital de arduino puede leer con un pin digital. Como se explica en el paso anterior se utiliza un tirón para arriba del resistor, así cuando el arduino que ve el pin digital va de 'Alto' a 'LOW' lo puede saber que la rueda ha hecho una revolución.
Con el micros() función se puede medir el retraso entre los pulsos. Este retraso es entonces el período de una revolución.
Feedback significa que el arduino puede ajustar la potencia suministrada al motor. Si sucede que el período es demasiado grande, se puede aumentar la potencia para acelerar el motor. Si el período es demasiado corto puede reducir su velocidad.
Después de cada ajuste arduino espera hasta consiguen el disco y el motor da vuelta a una velocidad constante. El motor es quizás un poco demasiado pequeño para este disco y requiere algún tiempo para llegar a su máxima velocidad.
Si el arduino no espere hasta que el disco se hace girar para arriba, aumentaría su energía con cada rotación y cuando el disco finalmente llega a la velocidad correcta seguirá acelerando que causa arduno bajar demasiado el poder. Así surge una especie de oscilación.
Esta oscilación puede reducirse si el arduino espera hasta que el disco alcanza una velocidad constante y después de eso se ajusta si es necesario.
Para saber si el disco se hace girar para arriba, el arduino examina diferencias en retrasos. Si debe acelerar y de repente se observa un período mayor que el anterior, sabe que el disco no es acelerar más, pero su velocidad es más afectada por su entorno que el motor.
El código se puede encontrar a continuación en un archivo zip.
Y finalmente hay un pequeño programa en Python. No es necesario, usted puede substituir fácilmente la primera ' si declaración ' en el circuito por un código para un botón. (realmente en los cuadros anteriores se puede ver un potenciómetro ya que no tengo un botón naar. Y simplemente hice un analogread. Sólo un ejemplo) es sólo útil para iniciar y detener todo desde mi laptop.
También se incluye el código a continuación. (parece haber un problema con el < pre >< / pre > etiquetas.
El motor comienza a ejecutar el programa.
Y como se puede ver en la primera foto, el poder se inicia en el 80, va a ~ 110 y luego fluctúa un poco alrededor de 90. El hecho de que hay que todavía una oscilación en un principio es causada por el hecho de que el pensar casi sacude sí mismo apart y el arduino piensa que el disco se hace girar para arriba por algunos corruptos valores.
Pero, como se puede ver en la segunda foto me funciona más o menos, el período se estabilice aroud 83 Sra. tarda un tiempo pero funciona!