Así que estoy tratando de hacer un teclado de 5 teclas como un circuito, pero con una mayor sensación táctil, así que olvidé los botones reales comprados en la tienda. Arreglé llaves con papel de aluminio y piezas de plástico y las conecté a 5V. Todos los botones comparten este 5V. Luego, hice algunas almohadillas de contacto de papel de aluminio que tienen un cable intercalado entre dos capas. Este cable tenía dos cables, uno que se conectaba a una de las E/S digitales y otro que se conectaba a una resistencia que luego se conectaba a tierra. Todos los contactos comparten la resistencia (y por lo tanto la tierra). Entonces, cuando la pieza de plástico se conecta con la pieza intercalada, se convierte en un botón. Esto funciona, lo he probado. Lo que no puedo arreglar es que si solo conecto el pin para Digital 2, luego presiono cualquier botón, no solo el que está conectado al pin 2, registra una pulsación.
Aquí está el código que uso para verificar las prensas:
int ledPin = 13;
int val = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
for(int x = 2;x<6;x++){
pinMode(x, INPUT);
}
}
void loop(){
/*for(int x = 2;x<6;x++){
val = digitalRead(x);
if (val == HIGH) {
digitalWrite(ledPin, LOW);
Serial.println(x);
} else {
digitalWrite(ledPin, HIGH);
}
}*/
if(digitalRead(2) == HIGH){
Serial.println("2");
digitalWrite(ledPin, LOW);
} else {
digitalWrite(ledPin, HIGH);
}
}
La parte comentada estaba destinada a verificar las 5 conexiones, mientras que la parte no comentada solo verifica el pin 2.
Necesitas tener una resistencia por botón. Si no lo hace, cualquier pulsación de tecla elevará el nodo común a +5 V y todos registrarán la pulsación de tecla.
nadjatee1996
MatsK
So I would need an individual resistor to all contacts?
SICan they be connected to a common ground?
SIAlso, do they have to have different resistances?
NOnadjatee1996
Ignacio Vázquez-Abrams
TDHofstetter
nadjatee1996
Ignacio Vázquez-Abrams