En primer lugar echa un vistazo en el esquema.
Lo que tenemos aquí es 9 botones y 6 líneas de señal (3 entradas, 3 salidas). La configuración básica es un patrón de grilla donde las tres líneas de entrada llegan como columnas (PIN0, PIN1 y PIN2), y las líneas de tres salida ven a través como filas (PIN3, PIN4 y PIN5).
Cada botón es un botón normalmente abierto momentáneo. Así que qué va a pasar es cuando presiona el botón que hará una conexión entre entrada de pulsador y salida, otros sabios allí ninguna conexión.
La clave aquí está en el software.
Qué va a hacer el software es muy rápido de barrido entre las entradas y salidas para cada combinación. Describirá los pasos para la 1 entrada, y luego simplemente repite los mismos pasos uno para el otro de entrada.
Para entrada de PIN0
--PIN0, 1, 2, definidas como salidas
-PIN3, 4, 5 define como entradas
1. Ponga el PIN0, PIN1 y PIN2 a baja
2. Coloque el PIN0 en alta
3. Compruebe si PIN3 es alta o baja, si alta van a función SW1
4. Compruebe si PIN4 es alta o baja, si alta van a función SW4
5. comprobar si PIN5 es alta o baja, si alta van a función SW7
6. Ajuste el PIN0 en baja
Esto se repita con las únicas diferencias siendo que clavija de entrada está establecido en alto, y los nombres de lo SW funciona va a.
Para que veáis el concepto básico aquí. Convierte una entrada de alta, luego comprueba cada una de las salidas para una señal. Si la señal está ahí va en función de que el interruptor. Si no encuentra una señal en cualquier pin de salida, establece esa entrada a bajo y establece la siguiente entrada alta y comprueba a cada salida. Esto continuará hasta encontrar una señal de barrido como esta.
Luego puede ajustar las funciones cambia a sus necesidades. El bosquejo de ejemplo simplemente contiene una serial instrucción print impresión qué botón ha sido presionado.
Puede ajustar el código/esquema que sin embargo necesita. Añadir botones, quitar botones. Mi uso típico es colocar todo esto en una función y luego llamar a esa función cuando el programa espera un botón al ser presionado o se espera de una pulsación.
Algunos comentarios claves:
1. sólo puede tener 1 entrada alta en el momento. No sólo las salidas no leerá correctamente, pero se pueden corto circuito cosas si pulsa la combinación correcta.
2. también sugeriría colocar resistencias en algún lugar de las líneas. Ya sea uno en cada una de las entradas o uno en cada una de las salidas, evita quemar el microcontrolador
3. también puede colocar diodos para evitar combinaciones de cortocircuitos, pero no son necesarios.
4. quizás también necesite resistencias pull-up en el sistema. a veces lo hace, a veces no.
Voy a trabajar sobre cómo añadir opciones de circuito adicional y un arduino muestra boceto para esto.