¿Cómo escanear y diferenciar múltiples interruptores a través de un solo pin de entrada / salida?

0

Estuve leyendo el documento trucos y consejos utilizando controladores de 8 bits en un microchip y encontré este diagrama. Lo he visto en algunos circuitos electrónicos a través de Internet, pero nunca encontré una explicación satisfactoria sobre cómo los cuatro interruptores estaban diferenciados entre sí.

Los tres interruptores se conectaron a un solo pin de E / S del microcontrolador.

El documento dice:

  

Se utiliza un temporizador con un comparador o un cambio de entrada digital para medir   El tiempo de carga del condensador. El tiempo de carga se utiliza para determinar qué   se presiona el botón.

Software sequence:
1. Configure GP2 to output a low voltage to
discharge capacitor through I/O resistor.
2. Configure GP2 as one comparator input and
CVref as the other.
3. Use a timer to measure when the comparator
trips. If the time measured is greater than the
maximum allowed time, then repeat;
otherwise determine which button is pressed.
When a key is pressed, the voltage divider
network changes the RC ramp rate. 

alguien puede ayudarme a entender este método de una manera lúcida. No estoy seguro de cómo eliminar esto y diferenciar los interruptores. Estoy seguro de que esto ayudará a alguien que trabaje para limitar el uso de pines GPIO.

Si hay otras formas alternativas disponibles, todas las opciones y sugerencias serán bien recibidas.

Gracias Con saludos,

Novato

    
pregunta Rookie91

2 respuestas

1

El principio en esta técnica no es tan exacto y confiable.

En esta técnica, el mcu estima qué tan grande es el tiempo de descarga. Un temporizador está sincronizado, el condensador comenzó a descargarse, el comparador está en la interrupción de voltaje de coincidencia. Eso significa que cuando el voltaje del pin de entrada es igual o mayor que un voltaje específico (que se define en el programa, por ejemplo, 2.56V interno), surgirá una interrupción. Ahora, en la rutina de interrupción, puede medir el temporizador / valor del contador.

Es tiempo es proporcional al valor RC que para igual C significa proporcional a R. podemos estimar el valor de la resistencia. entonces puedes adivinar qué tecla está abajo.

Una forma mejor y más confiable es usar un pin ADC para adjuntar varios botones. Aquí se forma una buena explicación: enlace

La regla básica de esta técnica se describe en la siguiente imagen:

Diferentes interruptores, producirán diferentes voltajes en los pines.

La principal ventaja de esta técnica es que sus botones se pueden juntar simultáneamente, por lo que la tensión general es la tensión equivalente de la resistencia general. Debe seleccionar buenos valores de resistencia para tener diferentes voltajes para diferentes interruptores empujados.

Y, por último, otra forma fácil de conectar varios interruptores es usar un decodificador IC como 74148. por ejemplo, conectando el botón 16 a 4 pines.

    
respondido por el HOPE
0

Dependiendo de qué interruptor se presione, la resistencia total entre el condensador y el VCC cambia. Una resistencia más alta significa que el condensador se cargará más lentamente.

    
respondido por el nickandrew

Lea otras preguntas en las etiquetas