Paso 3: escalera de divisor de tensión
En la siguiente imagen, he conectado dos bloques de interruptores. El bloque de la parte superior tiene dos interruptores, y el bloque inferior tiene cinco interruptores. Puede conectar su palanca separada, momentáneo, táctil, interruptores etc. de la misma manera. Lo importante a notar es la resistencia que el conmutador está conectado a.
En mi ejemplo, he duplicado la resistencia de la resistencia siguiente para crear un espacio de tensión fácil de medir y no se confunden con el interruptor antes o después. Si usted no ha notado antes, mirar de nuevo y darse cuenta de que estamos en nuestro viejo amigo el divisor de tensión resistivo. La primera resistencia, el ohmio 10 k, está conectada a 5V y la resistencia 2 º--la resistencia que va a determinarhacia fuera para el pin SWITCH_ADC , está conectada a cada switch y por lo tanto, cada interruptor está asociada con una tensión de Vout particular que se puede leer en el pin ADC conectado a SWITCH_ADC.
A continuación, determinar la Vout esperado de cada interruptor así:
Vout = Vin * (R2 / (R1 + R2))
para cambiar uno:
Vout = 5V * (500 / (10000 + 500)) = 5 * 0.048 = 0.24V o 240 mV
para cambiar dos:
Vout = 5V * (2200 / (10000 + 2200)) = 5 * 0.18 = 0.9V o ~ 900mV
y así sucesivamente...
No dude en sustituir en sus propios valores para R2 si sólo tiene ciertas resistencias prácticos... Lo clave aquí es mantener una brecha bastante amplia en la tensión entre los contactos de modo que cualquier margen de error en el ADC no pondrá en la tensión de la espera de un switch vecino. He encontrado lo más fácil es construir la escalera de divisor y poner un Multímetro/voltímetro en el pin de ADC y presione cada pin y ver qué valores tienes. Deben ser bastante terreno en lo que se calcula.
Una vez que haya todos los valores de voltaje esperada de cada interruptor con una resistencia particular, después usted puede tener su MCU leer el pin ADC y comparar que a sus valores conocidos para determinar que el interruptor se ha presionado. Por ejemplo, decir que se ha registrado una rutina de servicio de interrupción que se llamará cada vez que hay un cambio detectado en los pines del ADC. Dentro de ese ISR, podría leer al ADC y comparar ese valor con su tabla de interruptor. Si está utilizando un valor de ADC de 8 bits, su voltaje se convertirá en un número entre 0 y 255 que corresponde a una tensión entre 0V y 5V. Esto asume que tienes tu ADC configurado de esta manera.