Teclado para conectar a Arduino usando un solo pin analógico (A0).
El montaje está basado en el que se puede ver en el vídeo https://www.youtube.com/watch?v=G14tREsVqz0 de Hari Wiguna.
Las resistencias utilizadas son de 4,3 Kohms y de 910 Ohms porque eran las que tenía a mano y más aproximadas a las que proponen en el vídeo. El funcionamiento del montaje con estos valores es el correcto y se pueden identificar bien las teclas pulsadas en cada momento.
En el programa en Arduino se pueden hacer pruebas para ver el valor de resistencia que devuelve la pulsación de cada tecla y configurar la aplicación según esos valores.
Resistencia que se obtiene en el pin A0 de Arduino al pulsar las teclas con los valores de resistencias utilizados en este montaje:
| Tecla pulsada | Resistencia obtenida |
|---|---|
| Sin pulsar teclas | Entre 1017 y 1019 Ohmios |
| Tecla '1' | 404 Ohmios |
| Tecla '2' | 312 Ohmios |
| Tecla '3' | 188 Ohmios |
| Tecla 'A' | 5 Ohmios |
| Tecla '4' | 636 Ohmios |
| Tecla '5' | 602 Ohmios |
| Tecla '6' | 562 Ohmios |
| Tecla 'B' | 514 Ohmios |
| Tecla '7' | 741 Ohmios |
| Tecla '8' | 723 Ohmios |
| Tecla '9' | 704 Ohmios |
| Tecla 'C' | 682 Ohmios |
| Tecla '*' | 801 Ohmios |
| Tecla '0' | 790 Ohmios |
| Tecla '#' | 778 Ohmios |
| Tecla 'D' | 766 Ohmios |


El montaje se ha realizado en una placa perforada en la que se han soldado por la parte inferior los pin usando cables

El montaje se ha realizado con alimentación de 5V que se obtiene del Arduino. Si se utilizan otros voltajes habría que calibrar los valores en ohmios que se obtienen al pulsar cada tecla. El montaje utiliza 3 cables para conectarse con Arduino: un cable para el positivo de la alimentación, otro para la masa y un tercero para conectarse con el pin analógio A0 del Arduino.

Programa utilizado en este montaje
// Teclado conectado al pin analógico A0
// Montaje basado en el que se puede ver en...
// https://www.youtube.com/watch?v=G14tREsVqz0
void setup () {
Serial.begin(115200);
}
void loop()
{
int value = analogRead(A0);
// Serial.println(value);
// Tecla '1' - Valor: 404
if ((value > 399) && (value < 409)) {
Serial.println('1');
Serial.println(value);
delay(100);
}
// Tecla '2' - Valor: 312
if ((value > 307) && (value < 317)) {
Serial.println('2');
Serial.println(value);
delay(100);
}
// Tecla '3' - Valor: 188
if ((value > 183) && (value < 203)) {
Serial.println('3');
Serial.println(value);
delay(100);
}
// Tecla 'A' - Valor: 5
if ((value > 0) && (value < 10)) {
Serial.println('A');
Serial.println(value);
delay(100);
}
// Tecla '4' - Valor: 636
if ((value > 631) && (value < 641)) {
Serial.println('4');
Serial.println(value);
delay(100);
}
// Tecla '5' - Valor: 602
if ((value > 597) && (value < 607)) {
Serial.println('5');
Serial.println(value);
delay(100);
}
// Tecla '6' - Valor: 562
if ((value > 557) && (value < 567)) {
Serial.println('6');
Serial.println(value);
delay(100);
}
// Tecla 'B' - Valor: 514
if ((value > 509) && (value < 519)) {
Serial.println('B');
Serial.println(value);
delay(100);
}
// Tecla '7' - Valor: 741
if ((value > 736) && (value < 746)) {
Serial.println('7');
Serial.println(value);
delay(100);
}
// Tecla '8' - Valor: 723
if ((value > 718) && (value < 728)) {
Serial.println('8');
Serial.println(value);
delay(100);
}
// Tecla '9' - Valor: 704
if ((value > 699) && (value < 709)) {
Serial.println('9');
Serial.println(value);
delay(100);
}
// Tecla 'C' - Valor: 682
if ((value > 677) && (value < 687)) {
Serial.println('C');
Serial.println(value);
delay(100);
}
// Tecla '*' - Valor: 801
if ((value > 796) && (value < 806)) {
Serial.println('*');
Serial.println(value);
delay(100);
}
// Tecla '0' - Valor: 790
if ((value > 785) && (value < 795)) {
Serial.println('0');
Serial.println(value);
delay(100);
}
// Tecla '#' - Valor: 778
if ((value > 773) && (value < 783)) {
Serial.println('#');
Serial.println(value);
delay(100);
}
// Tecla 'D' - Valor: 766
if ((value > 761) && (value < 771)) {
Serial.println('D');
Serial.println(value);
delay(100);
}
delay(200);
}
/*
Resistencia que se obtiene en el pin al pulsar las teclas:
Sin pulsar teclas - Valor: 1017 a 1019
Tecla '1' - Valor: 404
Tecla '2' - Valor: 312
Tecla '3' - Valor: 188
Tecla 'A' - Valor: 5
Tecla '4' - Valor: 636
Tecla '5' - Valor: 602
Tecla '6' - Valor: 562
Tecla 'B' - Valor: 514
Tecla '7' - Valor: 741
Tecla '8' - Valor: 723
Tecla '9' - Valor: 704
Tecla 'C' - Valor: 682
Tecla '*' - Valor: 801
Tecla '0' - Valor: 790
Tecla '#' - Valor: 778
Tecla 'D' - Valor: 766
*/
Pulsa aquí para descargar el código "teclado1pin.ino"

