Mejorada lectura de codificador rotatorio de Arduino

Codificadores rotativos grandes dispositivos de entrada para proyectos de electrónica - ojala este Instructable inspirará y ayudarle a utilizar en su próximo proyecto.

¿Por qué escribir código de codificador rotatorio?

Quería usar un codificador rotatorio de bajo costo como un mecanismo de entrada para uno de mis próximos proyectos inicialmente fue desconcertado por las Opciones de código disponibles para tomar lecturas del codificador rotatorio y determinar cuántos ciclos el codificador había hace clic en pasado y en qué dirección o "topes". Creo que mi bosquejo principal tendrá que utilizar la mayor parte de la memoria de mi Arduino por lo que estoy evitando las varias bibliotecas de codificador disponible, que parece ser difícil de hacer cuando probé un par de ellos. También aparecen utilizar mucho más el presupuesto de código que los enfoques de código basado en el bosquejo discutidos desde aquí.

Si desea omitir el pensamiento detrás de mi enfoque y entrar directamente en el Instructable, dude pase al paso 1.

Otros enfoques

Varios de los principales bosquejo-basado (es decir, que no utilizan una biblioteca) enfoques se discuten en blog de rt post donde escriben código de codificador rotatorio que hace utilizables como entradas de Arduino los codificadores más baratos. También tienen un buen ejemplo de señal lógica que produce el codificador. RT encontró que un sistema de interrupción de timer trabaja mejor para ellos pero me preocupa que la frecuencia de sondeo detraería de la velocidad de actualización de pantalla en el bucle principal de mi bosquejo de proyecto. Dado que el codificador rotatorio se trasladará para una pequeña proporción del tiempo que quiero la pantalla de actualizando, esto parece un partido pobre de mi aplicación.

Decidí empezar con código de Steve Spence, que estaba bien en su propia pero parece realmente reducir la velocidad incorporando el resto de mi código de bosquejo (que implica escribir actualizaciones de pantalla en una pequeña pantalla TFT). Al principio me preguntaba si podría ser debido a que el bucle principal contiene una declaración de debounce.

Luego leí el artículo de codificador rotatorio de Oleg en una versión de la rutina de servicio de interrupción de su anterior post, también pensé que podría ser una buena idea usar manipulación puerto directo para leer ambos pasadores al mismo tiempo y tan pronto como se activa la interrupción. Su código puede utilizarse en cualquier perno de la entrada si se reescribe el código de manipulación de puerto. En cambio, decidí usar solo las interrupciones de hardware en digitales pins 2 y 3, así que podemos fijar interrupciones para disparar solamente sobre un flanco ascendente de la tensión del perno, más que en pin de cambio de voltaje, que incluye caídas los bordes. Esto reduce el número de veces que el ISR se llama distracción desde el bucle principal.

Código de Oleg utiliza una tabla de búsqueda para reducir el tamaño del código compilado para un tamaño realmente pequeño pero no pude obtener resultados confiables que cogería muy lenta rotación y rotación razonablemente rápido. Tenga en cuenta que el hardware contra rebotes (véase paso 2) pueden ayudar mucho con la confiabilidad de las lecturas pero después de una solución de software para simplificar la compilación hardware y ser tan portable a otras aplicaciones de hardware posible.

Esto concluye la introducción de mi reto y consideraciones. En el paso 2 a echar un vistazo en el hardware codificador, terminología y algunas consideraciones prácticas para integrar un codificador rotatorio en su proyecto.

Artículos Relacionados

Arduino Nano y Visuino: Control de servos con codificador rotatorio

Arduino Nano y Visuino: Control de servos con codificador rotatorio

Hay un montón de Instructables que Servo control con potenciómetro, sin embargo a veces es útil controlar con un Codificador rotatorio. En este Instructable, les mostraré lo fácil que es implementar esto con la ayuda de Visuino - un ambiente de desar
Arduino Nano: Codificador rotatorio con Visuino

Arduino Nano: Codificador rotatorio con Visuino

Los codificadores rotativos son sensores de rotación exacto muy útiles, también de uso frecuente como usuario control dispositivos de entrada en lugar de potenciómetros. Son fáciles de conectar al Arduino, y con la ayuda de Visuino - un ambiente de d
Arduino Nano y Visuino: Control de Motor paso a paso con codificador rotatorio

Arduino Nano y Visuino: Control de Motor paso a paso con codificador rotatorio

A veces es necesario tener un Motor de pasos seguir la rotación de un Codificador rotatorio para posicionamiento preciso. Yo he estado planeando Instructable sobre este por un tiempo, pero finalmente el par de días después otra pregunta del usuario V
Menús de Arduino fácil de codificador rotatorio

Menús de Arduino fácil de codificador rotatorio

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 u
Arduino - codificador rotatorio Simple ejemplo KY-040

Arduino - codificador rotatorio Simple ejemplo KY-040

¡Hola mundo! Este es un ejemplo de cómo usar el codificador rotatorio de KY-040.Su forma muy básica pero si su nuevo a arduino o no pudo encontrar ningún código, entonces tienes algo para comenzar con.porque hay poca documentación sobre el kit de sen
ESP8266 y Visuino: Control Servo remotamente sobre Wi-Fi con codificador rotatorio

ESP8266 y Visuino: Control Servo remotamente sobre Wi-Fi con codificador rotatorio

Módulos de ESP8266 son controladores de bajo costo independiente gran con construido en Wi-Fi. En este Instructable mostrará cómo puede controlar un Servo remotamente sobre Wi-Fi con un codificador rotatorio. El Instructable es una versión similar pe
Codificador rotatorio tira LED brillo controlador

Codificador rotatorio tira LED brillo controlador

Simplemente tira brillo controlador de LED con rotary encoder y attiny microcontrolador 85Paso 1: Introducción:Le mostrará cómo controlar fácilmente el brillo de la tira LED. Este es realmente un controlador PWM. Está diseñado sólo para DC. Olvidar C
Ejemplo de codificador rotatorio de RGB (ATmega328, AVR)

Ejemplo de codificador rotatorio de RGB (ATmega328, AVR)

las anterior configuración utiliza interrupción servicio rutinas (ISRs) para interpretar un codificador rotatorio.  El codificador rotatorio específico utilizado también contiene un LED RGB, que es conducido por PWM.  Hay un video en el artículo comp
Valores analógicos de lectura de la LDR con Arduino

Valores analógicos de lectura de la LDR con Arduino

en este instructables tendremos que jugar utilizando ldr para obtener valores analógicos... (resistor dependiente luz más como célula solar en que la resistencia disminuye la luz cae sobre ella)Paso 1: Componentes necesarios * Arduino Uno* Pot(To inc
Gire mi Kit: Codificador rotatorio protoboard a

Gire mi Kit: Codificador rotatorio protoboard a

Rotary encoders son dispositivos que pueden transmitir la posición y el sentido de rotación mediante el uso de dos canales de salida, A y B.  Por lo que hemos hecho un tablero de arranque que es ambos protoboard amable y súper fácil de armar!Usted pu
Iontoforesis controlada por arduino contador

Iontoforesis controlada por arduino contador

Dispositivo de iontoforesis DIY con Arduino con la función de temporizadorEstos dispositivos tendrán un interruptor de polaridad en el intervalo de tiempo (ON y OFF).Paso 1: antecedentes HISTORIA:La hiperhidrosis es la condición caracterizada por ano
La veleta Digital de 8 bits

La veleta Digital de 8 bits

Todos hemos visto esos veletas de hierro 'labrado' grande que pegan en la parte superior de su casa y molestar a todo el pueblo con sus nervios chirriantes movimiento de rejilla. Ahora, por fin, podemos mantener todas esas pintorescas características
Administrador de sonido de ambiente

Administrador de sonido de ambiente

Hola a todos,Este es mi primer proyecto y les espero guste.La Idea:Mi idea era hacer algo que podría coger el ruido donde es y mostrar al usuario como una variación de color.¿Por qué? Hay algunas personas que tienen mascotas o incluso preguntando sob
Motor paso a paso ARDUINO controlado con codificador giratorio y l293d o chip SN754410NE

Motor paso a paso ARDUINO controlado con codificador giratorio y l293d o chip SN754410NE

Motor paso a paso es muy útil para muchos proyectos de bricolaje. En la mayoría de los casos el microcontrolador puede controlar todos los movimientos de los pasos, pero en algunos casos puede que desee controlar manualmente el motor de pasos para es