Codificadores rotativos con centro de botones son geniales entrada hardware para proyectos, especialmente si usted quiere ser capaz de desplazarse por los menús y seleccione Opciones. Esperemos que este Instructable le dará la confianza para probar un sistema de menús básico y combinarlo con un codificador rotatorio para dar un toque profesional con su próximo proyecto!
Por qué menús y codificadores rotatorios necesitan código
Quería tener un menú en un próximo proyecto y utiliza un codificador rotatorio con un botón de centro como mi hardware de entrada. Esto es muy similar a la controladores de LCD para rampas y Arduino MEGA impresoras 3D. El codificador rotatorio me permitirá desplazarse por las opciones del menú, es decir, navegar por el menú, selecciona sub menús y también cambiar los valores dentro de sub-menus/settings - muy versátil para una interfaz de hardware! Un microcontrolador es necesario para gestionar todo esto y microcontroladores necesitan instrucciones, también conocido como código!
Otras opciones de
El problema que tuve con bibliotecas de menú existentes de Arduino y código es que por sencillos menús eran demasiado complejas. Otro inconveniente de muchas alternativas fue que el código fue diseñado para pantallas de LCD y botones de presión momentáneos, codificadores no rotatorios y adaptable a otras salidas de pantalla. Estos menús se orientaron alrededor seleccionando entre un número pequeño de los modos e incrementar los valores relativamente lentamente. Sabemos que los codificadores rotatorios son una opción de entrada de gran hardware porque pueden permitirse cambios de valor de entrada relativamente rápida conservando control fino a baja velocidad. Quería escribir el código que permite la navegación por el menú de nivel superior sin ambigüedades pero que también le permiten desplazarse rápidamente a través de una amplia gama de valores dentro de cada sub-menu/ajuste, explotando las fortalezas de codificador rotatorio.
El enfoque de
Decidí seguir algunos consejos para usar comandos de un if() para una estructura de menú simple y mantenerlo basada en esbozos. El código resultante se basa en mi Instructable anterior que intentó leer confiablemente los pulsos de rotación y dirección. Compruébela hacia fuera para el fondo.
En este bosquejo, que añadir la lectura del botón de centro en el eje del codificador rotatorio, utilizando código que Nick Gammon desarrollado para grabar los cambios de estado con contra rebotes y sin depender de la función delay() de Arduino que impide que el microcontrolador ejecute otro código y potencialmente introducir retardo notable en nuestro bosquejo, lento por ejemplo, tasas de refresco de pantalla. Código de cambio de estado de botón es mucho más útil que simplemente leer lógica digital alta o baja cuando se utiliza un botón para seleccionar algo una vez, como una opción de menú, como puede ayudar a prevenir inintencionales selecciones múltiples para cada pulsación.
Echemos un vistazo a lo que usted necesita para utilizar este ejemplo de código en el paso 1.