Paso 7: El teclado...
Para aquellos que nunca han usado un teclado de tipo de matriz se trata de cómo funcionan.
En un esfuerzo por reducir el número de cables que salen de un teclado, los conductores están dispuestos en filas y columnas. Este tipo de teclado tiene algunos Kung Fu para hacerlos funcionar pero también reduce el número de pines que necesitas utilizar.
En un teclado estándar por cable tiene un cable común y un cable para cada botón. En este caso sería un total de 17 hilos.
En una serie por cable teclado que tiene sólo 8. Aquí está la trampa. Los reguladores micro tiene 4 pines como salidas (filas) y set de 4 pines como entradas (las columnas) sólo puede leer 4 botones a la vez.
"Qué???!!!!!! Lo bueno es que me compré un teclado de 12 botones!
Sólo uno de la fila está activada a la vez. Por ejemplo que la primera fila está activada, esto pone potencia a un lado de cada botón de la fila superior (1,2,3, A) si se presiona 1 luego Sabe usted fluye energía de salida 1 a 1 la entrada. Si se presiona 2 sabes que fluye energía de salida 1 entrada 2. Si 3 se presiona entonces fluye energía de salida de 1 a 3 de entrada, y si se presiona A energía está fluyendo de salida 1 a 4 de entrada.
Si se va a girar a la salida 2 en pondría energía a un lado de cada uno de los botones en la segunda fila (4,5,6, B) pulsar 4 flujos de potencia de salida 2 a 1 la entrada. Pulsar 5 flujos de potencia de salida 2 a la entrada 2. Si 6 es presionados entonces energía flujos de salida 2 a la entrada 3 y por último pulsar B flujos de potencia de salida 2 con 4.
Cómo leo el teclado entero que pides. Otro saltamontes es una buena pregunta. Aquí está cómo funciona. El micro controlador piensa muy rápido, así que lo que pasa es esto. Fila uno se enciende que se conecta a 1,2,3, A y los cuatro de las entradas se vieron. Si no está encontrado en cualquiera de las entradas y luego se apaga eso fila y luego fila 2 se activa que se une a 4,5,6, B. Entonces todas las entradas de cuatro se vieron otra vez. Si ninguna energía se observa en las entradas entonces se apaga esa fila y fila tres se enciende que se une a la 7,8,9, C y las entradas son otra vez vieron. Si no poder otra vez se observa en las entradas y que fila apagado y la cuarta fila está encendido que está conectado a *, 0, #, D. y otra vez las entradas se vieron por el poder. Si no se observa poder luego fila 4 se apaga y los procesos de todo empieza otra vez con fila uno.
* Parte importante - si usted encienda más de una fila y se presiona un botón y luego podría haber dos posibilidades en cuanto a que se presiona el botón ya que hay más de una fuente de energía procedente de dos filas diferentes. Dicen que encienda fila 1 y fila 2. Si pulsa el 1 botón el poder se verá en 1 entrada. Si pulsa el botón 4 entonces 1 entrada verá energía otra vez. ¿Entiendo?
Aquí es donde se pone fresco. El microcontrolador mueve tan rápido que no importa qué tan rápido usted empuje el botón de la exploración a ver el dedo sobre un botón, un montón de veces antes de poder obtener el dedo del botón. En el programa escribir un if instrucción. "Si mi dedo es visto en un botón y luego detener la exploración y esperar a que suelte el botón de que (este mantiene que entren 5000 botón presiona antes que pueda levantarse el dedo). Una vez que el dedo libera la tecla luego con la fila y columnas establece una variable para reflejar lo que el número fue presionado. Luego volver a escanear el teclado otra vez a la espera de otra pulsación. Una si la declaración tiene que ser escrita para cada combinación de fila y columna.
Puedo oír a algunos de ustedes diciendo: "Hay una biblioteca para que ya, su keypad.h llamado" eso es correcto, hay, sin embargo no quería que al ser escaneado constantemente para una prensa del botón, sólo en ciertos momentos y de esta manera es algo más fácil para mi control, o por lo menos en mi cabeza es. El análisis está escrito en una función separada de la función loop. En ciertos momentos durante el ciclo si quiero buscar tecla presiona entonces enviar el programa a esa función que ejecuta la exploración de una vez. He escrito mi bucle para avanzar en pasos e ignorar el resto. Así como el lazo viene alrededor del y que paso es activado entonces el análisis se llama para. En su mayoría fácil squeezy.