Orientada a solar, reloj de Arduino-Powered (3 / 10 paso)

Paso 3: Software - sistema de menú

Lo primero que desarrollé con el sistema de menú y configuración. La creación de los menús es fácil - sólo incrementar o disminuir el índice de un array y luego leer la cadena de flash usando la Directiva PROGMEM. Supongo que hubo bastante pocas cadenas lo acaba de poner en la memoria RAM, pero usando el FLASH siempre que sea posible es un buen hábito.

El trabajo real es el sistema de ajuste. Quería ser capaz de establecer cada valor carácter por carácter. Algunos de los números, como la longitud y latitud son 5-6 dígitos (ignorando los decimales) - no quiero usar una prensa y método de cambio, incluso con un incremento de salto en el botón hold. Hablando de botones, este proyecto utiliza Button.h, que inicialmente había pensado maneja contra rebotes pero realmente no. Una mejor opción sería Bounce.h. Fue suficiente para lanzar un pequeño retraso en los lazos de la interrogación de botón, ya que la CPU sí mismo no está haciendo otra cosa - el RTC mantiene tiempo su propio.

Tan de todos modos, el primer problema de un sistema de ajuste por carácter es saber donde puede ir, esto es manejado por una matriz de dos dimensiones que almacena un 1 o 0 para cada posición en el VFD para indicar si el cursor está permitido o no el cursor. Si no, el cursor salta hasta el siguiente lugar disponible o se queda en el último lugar. Hice liberal uso de constantes definidas para no tener que memorizar qué valor del índice va con matriz de configuración.

El segundo problema de un sistema de ajuste por carácter encarga de validación de datos. Crees que es tan simple como volver a montar sus dígitos en el valor y luego hacer una comparación con el valor máximo, pero para bloquear al usuario de ir al siguiente valor que hay que ver lo que ese valor + 1 haría el número en su conjunto. Que no está mal para un par de dígitos, pero es un lío para 5-6. Encontré que era más fácil tener un array bidimensional como la matriz de posición para mantener el máximo valor permitido por carácter. Esto le permite comprobar lo mismo basado en el índice cada vez que el usuario intenta incrementar, y junto con un cheque por el valor máximo en su conjunto, captura la mayoría de las violaciones de límites. Todavía será posible para el usuario a veces establecer un valor ilegal. Era eso o mucho más código.

En la misma línea, no me importaba si el usuario intentó establecer algo así como 30 de febrero. Puede agregar que tipo de límites de control si usted quiere. Admito que me "proyecto fatiga" y ese tipo de cosas a la izquierda.

Artículos Relacionados

Solar Powered reloj de Arduino!

Solar Powered reloj de Arduino!

Recientemente me he interesado en la energía solar y sus aplicaciones. Con los avances en la tecnología de panel solar, paneles solares se han convertido en mucho más eficientes y baratos al mismo tiempo. Sin embargo, son todavía un poco caros, por l
Reloj de LED Arduino powered

Reloj de LED Arduino powered

Un divertido y sencillo reloj LED, que te dará la hora a la media hora más cercana utilizando LEDs solo-color. Piezas necesarias son las siguientes:Arduino NanoTablero de 400 puntos de amarreCable de cintaDS1307 RTC IC32,768 kHz cristal(12) 10mm LEDs
Arduino Powered reloj binario

Arduino Powered reloj binario

este instructable le ayudará a construir un reloj binario de Arduino.  La idea orignial de este instructable fue diseñado por Daniel Andrade.  Mi instructable utiliza componentes de montaje superficial, pero puede ser fácilmente adaptado para a travé
Arduino Powered trazadores de líneas del guante Heated

Arduino Powered trazadores de líneas del guante Heated

Arduino Powered Guantes calientesEste proyecto es sobre cómo hacer las más inteligente del mundo calienta guante los trazadores de líneas para condiciones de frío extremo como los de Minnesota o personas que tienen syndrome(like me) de Raynaud. Estos
Arduino Powered RGB humor lámpara además Simon

Arduino Powered RGB humor lámpara además Simon

esto es básicamente una lámpara de estado de ánimo de arduino powered RGB y el simon dice juego, dos en uno.Modo de empleo: El dispositivo se inicia con el programa de humor de RGB lámpara por defecto, al pulsar cualquiera de las cuatro teclas en la
Arduino Powered Gainclone (amplificador)

Arduino Powered Gainclone (amplificador)

para aquellos de ustedes que no saben y no lo hice hasta hace poco, un Gainclone es un amplificador que es un 'clon' del original diseño de un amplificador de 47 laboratorios llamados un Gaincard y está basado en amplificadores de único chip de Natio
Arduino Powered Infared cosa

Arduino Powered Infared cosa

Hola, este es mi primer instructible. Voy a mostrar cómo hacer un lector de arduino powered sensor análogo (va a utilizar un fotodiodo infrarrojo).Paso 1: partes Necesita varias cosas para hacerlo:1. algún tipo de caja o caja de2. un escudo de Adafru
Reloj de Arduino con un motor de corriente continua (una aguja)

Reloj de Arduino con un motor de corriente continua (una aguja)

Hola,Estaba tratando de hacer un reloj con arduino con un solo motor pero no era posible con el método estándar como tiene que haber al menos dos agujasHoras y minutos, así que intenté algo nuevo. En este reloj hay seis divisiones en una hora en luga
Reloj de Arduino

Reloj de Arduino

Ahmed Mohamed hizo un reloj despertador que fue confundido con una bomba. Policías no le creyeron cuando él les dijo que no era una bomba, pero un reloj de alarma. En mi clase, sentíamos que asunción fue injusta y para mostrar nuestro apoyo creado re
TimeDuino - 7 segmento de reloj de Arduino (no hay registros de cambio necesitados!)

TimeDuino - 7 segmento de reloj de Arduino (no hay registros de cambio necesitados!)

Hey todos los asistentes instructable! Este es mi primer proyecto. Sí, sé las palabras generalmente el estereotipo actitud de "Esto no va a ser un buen proyecto", pero llevo esperando mucho tiempo para un proyecto que merece posiblemente rompien
Arduino powered calabaza de Halloween con detección de movimiento

Arduino powered calabaza de Halloween con detección de movimiento

Hola,Este Instructable le mostrará cómo hacer algunos Halloween decoraciones incluyendo arduino powered calabaza de Halloween con detección de movimiento.Paso 1: Hacer calabaza de Halloween Materiales:Globo redondoPeriódicos viejosHarina suaveAguaTém
Un controlado inalámbricamente, tablero de mensajes Arduino-Powered

Un controlado inalámbricamente, tablero de mensajes Arduino-Powered

usted mismo construir un tablero de mensajes controlados de forma inalámbrica, Arduino powered!Aquí es un proyecto fácil que crea una tabla de forma inalámbrica programable del mensaje. Utiliza los módulos XBee para un enlace serial inalámbrico entre
3 canal arduino Powered controlador de luces de Navidad!

3 canal arduino Powered controlador de luces de Navidad!

Para Navidad este año, quise hacer un proyecto genial pero bastante no sabía qué hacer. Como me estaba poniendo la salida de luces de Navidad para decorar, había un viejo temporizador de luz de Navidad roto. Tomé distancia y miró a su alrededor en el
Arduino powered tanque RC

Arduino powered tanque RC

este es mi primer instructable así que por favor oso conmigo. Mi nombre es Stanley Deakins y he estado jugando con la electrónica desde hace algún tiempo, aunque fue hace años. Debido a mi trabajo reciente he reavivar esa pasión. He conseguido mis ma