Independiente WiFi Radio Panel de Control (Arduino-Powered) (4 / 10 paso)

Paso 4: Haga y subsistema de entrada de código de codificador rotatorio

Me llevó algún tiempo entender el pinout correcto de mi codificador rotatorio, ya que no pude encontrar una hoja de datos.  Es un codificador rotatorio absoluto que tiene 10 posiciones y 5 pernos sin etiqueta.  Para averiguar cómo funcionaba, tuve que salir de mi probador de continuidad y construir una tabla de verdad.

A partir de lo que se supone era la parte superior, revisé todos los pines para la continuidad.  Ya que se supone que es un codificador simple, suponía (correctamente) que no serían dos conjuntos disjuntos de pins conectados para una posición dada del codificador.  Por lo tanto hice un mapa como el siguiente, tomando nota 0 para pernos que no se conectaron y 1 para pernos que estaban conectados.

Posición: Conectividad pernos 12345)
0 - 00000
1 - 01100
2 - 10100
3 - 11100
4 - 00101
5 - 01101
6 - 10101
7 - 11101
8 - 00110
9 - 01110

Sabiendo que un perno tuvo que ser común, busqué el único pin que fue conectado para todos, pero la posición "0", que pasó a ser el pin 3, en el centro.  Luego trató de discernir algún patrón para los demás números conectados, y como se puede ver, se hizo evidente que los dos pernos de izquierda eran los dos bits menos significativos, y los derecha dos pernos fueron los dos bits más significativos (en ambas parejas, los bits más significativos fueron para la izquierda).  En otras palabras, con pin 3 como común, que quería determinar el valor de número entero formado por los pines 4512.

Para leer este valor, tuve cable los pines en entradas digitales del Arduino, leer los valores y cambio en un byte.  Puesto que los contactos no siempre cambian inmediatamente los valores esperados al cambiar la selección del codificador, agregué algunos código debounce.  A continuación informará el estado del codificador después de que ha permanecido invariable durante milisegundos DEBOUNCE_TIME (en este caso, 10).  Tenga en cuenta los cables siguientes, desde el esquema:
pin de encoder 2 -> ENC_BIT_0
pin de encoder 1 -> ENC_BIT_1
pin de encoder 5 -> ENC_BIT_2
pin de codificador 4 -> ENC_BIT_3

---comienzan---
cuatro bits utilizados por el codificador rotatorio
los pines analógicos pueden utilizarse realmente como IO digital,
sólo se refieren a los números A0-A5 como sus equivalentes digitales: 14-19
#define ENC_BIT_0 14
#define ENC_BIT_1 15
#define ENC_BIT_2 16
#define ENC_BIT_3 17

duración del debounce delay, en milisegundos
es decir, tiempo que valor debe permanecer constante
antes de que se cuenta como una nueva "entrada"
#define DEBOUNCE_TIME 10
uint8_t debounceEncoder() {}
temporizador de uint32_t estática = 0;
estática uint8_t debounced = false;
currentValue uint8_t estática = 0;

uint8_t bit0 =! digitalRead(ENC_BIT_0);
uint8_t albañilería1 =! digitalRead(ENC_BIT_1);
uint8_t bit2 =! digitalRead(ENC_BIT_2);
uint8_t bit3 =! digitalRead(ENC_BIT_3);
uint8_t newValue = 0;
newValue = (bit3 << 3) | (bit2 << 2) | (albañilería1 << 1) | bit0;
Si (newValue! = currentValue & & debounced) {}
temporizador = millis() + DEBOUNCE_TIME;
debounced = false;
}
Si (millis() > temporizador & &! debounced) {}
currentValue = newValue;
debounced = true;
}
volver currentValue;
}
// ------end------

Artículos Relacionados

Panel de Control de Radio de WiFi Twitter

Panel de Control de Radio de WiFi Twitter

esto es una actualización de mi Panel de Control independiente WiFi Radio, que le permite a la estación y canción reproduciendo un tweet.  El proyecto se basa en un AdaFruit Boarduino, una plataforma de microcontrolador Arduino-compatible, con un esc
Estado de la técnica Wifi Radio

Estado de la técnica Wifi Radio

Nuestro WiFi Radio debe tener las siguientes capacidades:Las estaciones de internet almacenada en un archivo actualizable desde una interfaz webJugar o parar la estación deseada en un horario determinado (función de alarma).Estaciones de grabación (s
Orientada a solar, reloj de Arduino-Powered

Orientada a solar, reloj de Arduino-Powered

esto es un reloj diseñado para mantener la hora exacta (independiente de atómico o GPS), Mostrar la salida local del sol, el mediodía solar y puesta de sol y también sí mismo ajustar horario de verano.Quería el reloj para ser fácil de usar y flexible
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 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
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
Cómo Control arduino por bluetooth (PC, pocket PC PDA)

Cómo Control arduino por bluetooth (PC, pocket PC PDA)

Yo quería hacer posible controlar una placa arduino desde mi teléfono.Por lo que pude controlar otros dispositivos.la forma más sencilla parece ser mediante bluetooth.pero cuando recibí las piezas necesarias se quiere absolutamente tan simple como yo
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
Pantalla táctil de pared familia sincronización y Panel de Control Inicio

Pantalla táctil de pared familia sincronización y Panel de Control Inicio

Tenemos un calendario que se actualiza mensualmente con eventos pero se hace manualmente. También tendemos a olvidar cosas hemos corrimos fuera de u otras tareas menores.En esta época de que pensé que era mucho más fácil tener una sincronización cale
Voz de Control Arduino con reconocimiento de voz de Windows 7

Voz de Control Arduino con reconocimiento de voz de Windows 7

En primer lugar, siento cualquier ortografía o errores de gramática que se pueden encontrar aquí, como el inglés no es mi idioma nativo.Esto hice instructable porque no he visto uno que se centra en este tema, así que quería compartir este método. Es
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
Gestión de la mesa final, con panel de control

Gestión de la mesa final, con panel de control

Como tengo un gran interés en hacer, tengo que tener las herramientas para hacerlo; como la pistola de pegamento caliente, soldador dremel (herramienta rotatoria), una lijadora electrónica, diy escritorio ligero (aquí insrtuctable) y más. como se pue
Cómo construir un Arduino Powered ajedrez jugar Robot

Cómo construir un Arduino Powered ajedrez jugar Robot

a juzgar por el número de ajedrez Instructables relacionados, creo que es seguro decir que la comunidad disfruta el juego.  Sin embargo, puede ser difícil, encontrar alguien que juega en el mismo nivel te.  Para resolver este dilema y para aumentar m
Arduino Powered RGB LED Vodka estante

Arduino Powered RGB LED Vodka estante

este instructable conseguir va hacer su propio arduino powered proyecto rojo verde y azul LED. Incluso no tiene que ser un estante! Botellas de vodka se suceden iluminar muy bien así que es lo que elegí hacer.En este proyecto utilizamos cada pin en e