Paso 12: Versión del prototipo - software
El software no es complicado, pero asegúrese de que tener la versión más reciente del controlador de Motorshield de Adafruit. Hay una solución en lo que es importante para este código.El código:
Hay una representación interna, que consta de tres enteros: minutos , currentSecondsy currentHours. Esta vez es previamente establecida al principio y se incrementa mientras que el programa se ejecuta.
El bucle principal del programa toma nota de la hora de inicio, y luego comprueba continuamente el tiempo actual para ver si es 1000 milisegundos más tarde o no. Si es así, entonces incrementa el tiempo de reloj interno (doTick()) y llega a un procedimiento para cambiar la posición de los indicadores en el reloj (renderTime()).
El procedimiento doTick() trata con incremento de segundos a minutos y minutos a horas y restablecer los valores cuando sea necesario.
El procedimiento renderTime() se ocupa de convertir el tiempo en h en posiciones en la esfera del reloj, o más correctamente, del paso a paso. El programa tiene un concepto de la posición actual de los indicadores (preestablecido en el inicio a las 00:00 - la posición de extremo izquierda), y utiliza este inicial Inicio posición para decidir si se va a adelantar o retrasar el paso a paso.
El tiempo interno de Arduino es bastante chunga (véase este instructable para una buena racha hacia abajo sobre por qué y una posible solución). Hay muchas maneras alrededor de esto si es importante: las principales páginas de Arduino tiene algunas maneras de hacerlo exacto, así como cosas sobre el uso de la biblioteca de tiempo. Fui para una solución más sencilla, ya que es un prototipo (sí, es mi excusa para cada vez que hago un hack).
Estoy usando la biblioteca AFMotor para conducir los motores PAP, porque estoy usando el motorshield Adafruit. Si ejecuta el steppers a través de otro circuito, probablemente puede utilizar las bibliotecas de paso a paso regulares de Arduino con picar código mínimo. Si descarga el código, el archivo se guardará con un .pde en el extremo. No está seguro de cómo cambiar el nombre del archivo en instructables.