Teclado analógico Keyestudio AD Key - angelmicelti/Arduineando-en-la-E.S.O. GitHub Wiki
Contenido
- Teclados analógicos
- Teclado analógico Keyestudio AD Key
- Calibración del teclado
- Vídeo de funcionamiento
Teclados analógicos
Los teclados son muy necesarios en nuestros proyectos, dado que, muy habitualmente, necesitamos que nuestros montajes reaccionen a sencillas pulsaciones del usuario.
Un teclado digital precisa de tres cables para su funcionamiento, además de la colocación de una resistencia para poder realizar un pull-up o un pull-down.
He descubierto unos teclados analógicos que permiten obtener, con una sola placa y tres cables, un número bastante elevado de pulsadores, sin necesidad de añadir más componentes electrónicos. Uno de ellos es éste.
Teclado analógico Keyestudio AD Key
Este teclado posee 5 botones, y son cinco las salidas que nos ofrece, dado que sólo se ofrece salida cuando se pulsa un único botón (curiosamente, aunque hay más botones, tenemos menos salidas). Podemos encontrar este teclado en este enlace.
He realizado este montaje:
cuya programación puedes ver en Arduinoblocks, en este enlace.
En este teclado, tenemos cinco botones sobre la placa, y ésta tiene también tres pines:
- OUT, que irá conectado a la entrada analógica
- Vcc, alimentación.
- GND, masa.
Calibración del teclado
Vamos a proceder de una forma muy parecida al teclado KC11BC04.
Realizamos el siguiente montaje para la adquisición de datos a un archivo:
Utilizamos el mismo programa que con el teclado KC11BC04 para enviar los datos a la consola serie, y seguimos el mismo procedimiento descrito allí para guardarlos en un archivo, poder analizarlos y subirlos a esta hoja de cálculo de Google Drive.
SW1 | SW2 | SW3 | SW4 | SW5 | |
---|---|---|---|---|---|
Valor de A0 | 0 | 144-146 | 330-332 | 505-507 | 741-744 |
Ya sólo nos queda escribir para nuestra placa Keyestudio un programa análogo al que he hecho para la placa KC11BC04. Lo encuentro en este enlace. Aquí debajo os dejo también el código:
double teclado;
void setup()
{
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
teclado = 0;
}
void loop()
{
teclado = analogRead(A0);
Serial.println(teclado);
if ((teclado == 0)) {
digitalWrite(13, HIGH);
} else {
digitalWrite(13, LOW);
if (((teclado >= 144) && (teclado <= 146))) {
digitalWrite(12, HIGH);
} else {
digitalWrite(12, LOW);
if (((teclado >= 330) && (teclado <= 332))) {
digitalWrite(11, HIGH);
} else {
digitalWrite(11, LOW);
if (((teclado >= 505) && (teclado <= 507))) {
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
} else {
digitalWrite(11, LOW);
digitalWrite(12, LOW);
if (((teclado >= 741) && (teclado <= 744))) {
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
} else {
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}
}
}
}
delay(50);
}
Vídeo de funcionamiento
Finalmente, podemos ver el vídeo de funcionamiento: