Interferencias cables Jumper hembra hembra de 3 metros

Hola

Estoy usando 8 cables jumper hembra hembra de 3 metros para conectar un teclado y un nodeMCU 8266.
El problema es que parece que cuando los doblo y se "toca" el mismo cable consigo mismo hacen interferencias y las teclas se lian (a veces sale # en lugar de 9, a veces 3 o 4 # a la vez...). Sin embargo si los dejo estirados funcionan bien.

Pongo una foto.


(pongo link a la foto porque a veces no va)

Puede estar pasando que crean interferencias? Puedo poner algún componente para evitarlo o simplemente tengo que dejarlos estirados sin juntarlos entre ellos?

Gracias y perdonad si es una duda muy básica

Hi,
Aqui deberias de hacerr un esquematico de como los tiene alambrados. El contacto suple voltaje uo suple el ground. En la industria hay una tecnica y es de trenzar los cables cuando la senal va una distancia larga. Esto al trrenzar los cables hace que la interferencia entre los cable se cancele pero todo depende de como el contacto esta alambrado. Suple voltaje o suple el ground.Otra cosa es si tiene la resistencia que se conoce "pullup ".

Los 7 cables conectan un teclado 4x4 matriz (es 4x4 pero uso 3x4 porque no me hacen falta las letras A B C D) con 7 pines del nodeMCU, D0, D1, D3, D4, D5, D6, D7

El pin D2 está conectado a un relé, como el VU y el GND

El nodeMCU está conectado a la corriente con un cable USB.
Con cables jumper de 10cm funciona perfectamente, ha sido cambiarlos por jkumpers de 3 metros y a veces falla (lee # en lugar de 9, a veces de 3 etc)

Te pongo una foto, ahora los cables de colores son de 3 metros.

y el esquema

Hi,
Para leer los contactos necesitas hacer una lectura de la entrada necesitas instalar una resistencia de "pullup" etas se instalan externa o interna. Si no las quire instalar iexterna entonces declara la entrada digital como pinMode(pin num ,INPUT_PULLUP) esto hace que instale la resistencia interna y no tienes que instalarla externamente.

Los pines que uso en el teclado son estos

byte rowPins[ROWS] = {D7, D6, D5, D4};
byte colPins[COLS] = {D3, D1, D0};

Tendría entonces que hacer en el void setup() esto para los 7 pines?

pinMode(D7 ,INPUT_PULLUP)

Hi,
Si, esos es correcto. Tienes que hacerlo por cada entrada analoga. Ahora se te hace facil si tienes todos los pines en secuencia y podrias hacer un for/loop y usas una sola instruccion.

De momento funciona, no ha dado más errores! Gracias!!!

Hi,
Se acaso te da errorers intermitente trenza los cable.

Hola, he trenzado los cables y ha vuelto a fallar.
Los he vuelto como antes y falla muy random, a veces funciona y a veces no.

Que podría ser?
Los cables son 7 jumpers de 3 metros. Puede sere que se pierde la potencia por la longitud? o que hacen interferencias?

Hi,
Haz una prueba y es de leer el voltaje en el pin del arduino cuando cierra uno de los contacto. Asi se podra tener una idea de que lo que esta pasando. Normaaalmente las resistencias de pullup se pone al final. Dejenos saber el resultado.