Estoy tratando de hacer uso de un teclado que saqué de un teléfono que tiene 3 columnas y 4 filas. He rastreado el esquema en su PCB y he descubierto una manera de manejarlo que creo que podría funcionar, pero no estoy seguro de que sea seguro para el microcontrolador (es un pequeñito ++ 2.0 en este caso, pero creo que la respuesta es sería el mismo para la mayoría de los microcontroladores AVR).
La forma en que funciona el teclado es que tiene 3 pines para la columna 1,2,3 y 4 pines para las filas 1,2,3,4 cuando se presiona un botón para completar un circuito entre la fila y la columna que el botón está en.
Entonces, el circuito que diseñé funcionaría así: tengo 3 pines de salida conectados a las columnas y 4 pines de entrada conectados a las filas. Haría un ciclo a través de las columnas poniendo una señal alta y luego leyendo las filas para ver si se presionó algún botón.
Me di cuenta de un problema de seguridad con este diseño, que es que si mantiene presionados dos botones en la misma fila, habrá un corto entre dos columnas diferentes y dado que uno se configuró en salida alta y la otra salida baja podría crear una condición de sobrecorriente (como se describe en enlace ).
Para resolver eso, tuve la idea de hacer que los pines de salida de la columna realmente ingresen pines cuando no se están utilizando para emitir una señal alta, y agregar resistencias de arrastre hacia abajo a los pines de entrada de mi fila. Sin embargo, lo que esto significaría es que estoy moviendo los pines entre el modo de entrada y salida en un bucle que se repite cada 15 ms (ya que duermo durante 5 ms entre sondear las columnas).
¿Es seguro / saludable que el microcontrolador cambie sus pines entre entrada y salida en un bucle de aproximadamente 15 ms? ¿O podría este circuito ser seguro de una manera diferente?
También agradecería cualquier enlace a las páginas que describan qué circuitos básicos con pines de entrada / salida son seguros y cuáles no.