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"