30.7.13

Multiplexando botones...parte 3

La interrupción externa del microcontrolador se genera cuando alguno de los 10 botones es presionado.

La rutina de servicio solamente recupera la variable boton que después será utilizada en el lazo principal
del programa (main loop).

Con esta variable podemos hacer lo que queramos dentro del programa ya que queda almacenada
de forma numérica y esto es lo que da utilidad a la botonera que generamos.

El esquemático muestra la rutina de servicio de la interrupción externa.

El loop principal de prueba que utilizo  toma la variable boton y la despliega
en un display de 7 segmentos utilizando pines del microcontrolador directamente
eso lo voy a mostrar en el siguiente post.

Multiplexando botones...parte 2

El bloque del microcontrolador contiene todo lo necesario para hacer funcionar el microcontrolador , que depende
de cual utilicen. como requisito para hacer esto se necesita que soporte al menos una interrupcion externa y una
interrupcion de reloj, hay que considerar en la programacion si vale la pena sacrificar estos recursos.

Primero voy a mostrar un esquematico de la interrupcion de reloj (int_timer). Cada vez que se ejecuta la rutina
puede o no generarse un canto de reloj. segun cada cuantas interrupciones se decida generar los cantos de reloj.
cada vez que se genera un canto de subida de reloj (señal clock) se incrementa la variable boton que es la que le dice
al microcontrolador que boton se está leyendo en ese momento. La señal clodk es la misma que entra al 4017 para
que vaya alimentando cada boton secuencialmente. De esta forma se logra coordinar el micro con el 4017.

Otro detalle de la rutina de servicio, es que tiene un rebalse de la variable boton para que cuente de 1 a 10 solamente. El tiempo
del reloj se define con otra variable que se va incrementando con cada interrupcion, si llega hasta una constante definida se genera
el canto de subida y con otra constante el canto de bajada. si se modifican estas constantes en el programa se acortan o alargan
los pulsos de reloj.

28.7.13

Multiplexando botones con un 4017

Jovenes, como punto de partida de un proyecto más grande voy a multiplexar 10 botones con un integrado 4017 para hacer una botonera. La ventaja de hacer esto es que se utilizan sólo dos puertos del microcontrolador para leer que botón se presionó.

El esquematico de más abajo muestra esquemáticamente lo que voy a hacer.

int_ext es una interrupción externa al microcontrolador

la señal clock es una señal cuadrada que ingresa al módulo de botones.


saludos