Paso 3: Software
El software fue desarrollado utilizando el kit de desarrollo LaunchPad de MSP 430 barato de Texas Instruments. El LaunchPad se conecta a un ordenador Windows via USB. Algunos componentes tales como los controladores del transistor se agregue mediante un protoboard durante el circuito y desarrollo de software.
Hay otros Instructables que muestra cómo utilizar el MSP 430 LaunchPad con suministrado código compositor Studio de TI para desarrollar código, por lo que no se duplique aquí. Usar la interfaz gráfica gracia para configurar el microcontrolador. El archivo main.cfg contiene la configuración de la gracia, y main.c es el código fuente de C. Listados de código también se suministran en forma de pdf, si desea ver el código sin necesidad de instalar código compositor estudio.
El software es por interrupción. Una vez que el microcontrolador se configura, se pone en modo "dormir". Se despierta cuando uno de la interrupción se cumplen las condiciones.
Un contador de tiempo conducido por el reloj de cristal se desborda y genera una interrupción cada dos segundos. Esto se utiliza como el modo básico para el reloj.
El comparador genera una interrupción cuando se genera el pulso de voltaje positivo de la bobina. Una rutina de temporizador de interrupción en moda de máquina de estado
- retrasa una cantidad de tiempo que el imán se mueva levemente más allá de la bobina para el empuje óptimo
- se enciende la bobina de
- vueltas de la bobina fuera y permita que en reposo para que no se detecta un segundo disparo falso.
Para cada Estado, se genera una interrupción, las acciones y el microcontrolador espalda para dormir, para esperar el siguiente paso.
El software mide cada oscilación del péndulo y compara el tiempo de oscilación actual al deseada 1 segundo, generando un número de error. Un algoritmo de control PID (proporcional - integral - diferencial) modificado utiliza la señal de error para ajustar la duración del pulso a la bobina. Esto modifica el ángulo de oscilación del péndulo para acelerar o ralentizar el péndulo y por lo tanto el reloj. El código de C es
pulso = NominalPulse - (Kp * error + Ki * i_error);
Donde Kp y Ki son constantes derivados empíricamente y error y i_error son respectivamente el error proporcional e integral (no diferencial es necesario o utilizado).
Un registrador de datos de National Instruments fue utilizado para ayudar a obtener los valores constantes y sintonizar el sistema. Una rutina de software configurar un ancho de pulso modulado en Puerto de salida (PWM) conectado a un filtro de paso bajo simple y el datalogger. La rutina genera una tensión proporcional a la anchura de pulso a la bobina o la señal de error del algoritmo PID. Es un registro de la señal de error de cierre y bloqueo en cero.
El software enciende un LED bicolor rojo o verde para indicar si el péndulo se está moviendo demasiado rápido o demasiado lento. Esto permite que el bob a ajustarse hacia arriba o hacia abajo en tan sólo unos minutos para configurar el péndulo. Una vez que se encuentra lo suficientemente cerca, el microcontrolador regula el péndulo para guardar tiempo exacto.
Circuitos fueron diseñados y construidos después de que el hardware y el software fueron acabados.