Paso 5: Seguimiento de eje Simple: Software
Estaba encantado de encontrar una solución preparada para la determinación de altitud/acimut de latitud y longitud en los foros de Arduino. Si usted está interesado en la operación del código les recomiendo leer el hilo, solo señalaré algunos puntos salientes.
Determinar tiempo/localización de GPS
He escrito sobre esto unas cuantas veces ahora en Instructables otros, por lo que para mi propia cordura voy a dirigirlo a mi sensor de proximidad GSM, el paso 2 para más detalles.
Tuve que convertir la latitud y longitud para el tipo de datos apropiado y listo, código de mowcius' escupiera una elevación y acimut
Verificar el Software
Tienes que verificar que los valores de elevación y acimut que obtienen son correctos, recomiendo herramienta práctica de timeanddate, aquí hay un enlace de ciudad del cabo, pero usted será capaz de encontrar su propia ciudad.
Conversión de elevación en la posición del Servo
Si coges un vistazo a la parcela anterior, verá que la elevación se extiende de 0° a aproximadamente 78° y luego a 0°. Este ángulo representa la "altura" del sol sobre el horizonte.
Ya que mi eje de seguidores de la rotación tiene un ángulo norte-sur el servo debe moverse desde 0° (amanecer) a 90° (mediodía) y a 180° (sunset).
Decidí que la manera más fácil de lograr esto era ampliar el ángulo de elevación (utilizando la función map()), lo que necesito para calcular la elevación del mediodía antes de tiempo. Lo hago paso a paso a través de horas decimales en intervalos de 6 minutos y calculando la posición del sol para cada uno.
La única cuestión pendiente es convertir el movimiento del sol de 0°-90°-0 ° 0° - 180° movimiento del servo. Sin embargo es fácil, simplemente dividimos el día al mediodía y hacer dos asignaciones separadas.
Visualización estado de carga
Es útil para saber si el dispositivo se está cargando o no, por suerte, hay una librería que incluye. A continuación es un ejemplo de cómo usarla para definir la variable de estado para mi ámbar LED
Destella el indicador LED
He utilizado mi código de mi proyecto anterior para manejar los LEDS parpadear o actualización