Buenos días!
Estoy colaborando con la creación de una sala de escapismo ("escape room") y tengo problemas en una de las pruebas que estamos creando, posteo a ver si alguien me puede ayudar a dar con una solución al error.
Estamos creando una màquina que dispone de 20 pulsadores, el modelo de pulsador que usamos es un modelo tipo arcade.
Los 10 primeros pulsadores serviràn para reproducir canciones (mientras pulsó el botón, suena la canción, al parar de pulsar, deja de sonar).
Los otros diez, sirven para "introducir" la contraseña que desbloquea el premio del juego (bàsicamente, se tienen que pulsar 4 de los 10 botones en un orden concreto, cuales se deben pulsar esta ligado con las canciones anteriores).
Para controlar todo el juego, estamos usando un arduino mega.
Justo hoy hemos creado todas las conexiones de los pulsadores, y es aquí donde estamos encontrando un error, en la lectura de los pulsadores.
La conexión que hemos realizado es la siguiente:
- Todos los puertos COM de los 20 pulsadores están conectados a la misma línia de 5V.
- Todos los puertos NO de los 20 pulsadores tienen dos cables, el primero es el cable de lectura que va conectado a un pin digital (1-20) para leer el estado de este pulsador. El segundo cable de cada pulsador va a una resistència de 10K (para crear la resistencia pull down) , que luego va a una línia de tierra común con todos los demás cables de los otros pulsadores que finalmente van a parar al GND del arduino mega
En el momento de hacer las pruebas, hemos usado un programa simple que nos avisara cuando se pulsaban cada botón (if(digitalRead(1)) {Serial.println("boton 1 pulsado")
El problema es que al pulsar un botón, se recibe correctamente que se pulsa ése botón, pero también nos aparece que se pulsan otros, que además siempre son los mismos en cada caso. Es decir, si presiono el boton 1, me dice que se estan presionando el 1 i el 9. Mientras que si pulso el botón 2, me dice que se presionan el botón 2, 5 i 6. Y así un poco con todos (va variando entre 1, 2 o 3 botones pulsados a la vez).
Mi primera impresión ha sido que podía ser ruido, pero me parece muy raro que siempre afecte a las mismas agrupaciones de botones, otra opción que hemos barajado es que por ejemplo, las resistencias del 2, 5 ,6 están conectadas al cable del negativo una al lado de otra, que pueda ser algún tipo de cruce en este punto, pero tampoco entiendo muy bien cómo podría afectar esto a la lectura de cada pin...
Muchas gracias por adelantado por la ayuda, cualquier duda intentaré resolverla lo mas rapido possible.