Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas

Componentes y materiales

Resistencia 330 Ω 1
Resistencia 1k Ω 3
Resistencia 3k Ω 1
Teclado matriz 4x3 (12 teclas) 1
Arduino UNO 1

Herramientas necesarias

Aplicaciones

Sobre el proyecto

Introducción

Objetivo: reducir drásticamente los pines necesarios para un teclado numérico. Un teclado 4x3 matriz estándar requiere 4+3 = 7 pines digitales. En Arduino UNO/Nano, los pines son escasos.

Mi solución: 3 entradas analógicas

El circuito propuesto usa solo 3 pines analógicos (A0, A1, A2) mediante una red de resistencias que genera niveles de voltaje únicos por tecla.

Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas

Por cada columna hay 4 valores de voltaje (una por tecla) + 0V (ninguna pulsada). En el esquema equivalente (b), R1e es una de R1-R4, R2e una de R5-R7.

Para maximizar los intervalos entre voltajes: igualamos R5=R6=R7=1kΩ, y R1=0Ω (cable directo) para que fila 1 dé 5V. Valores elegidos:

Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas

Los intervalos en las 3 salidas son los máximos posibles usando 6 resistencias estándar ±5%. Con una entrada analógica extra y otra resistencia, se extiende a teclado 4x4.

Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas

En el diagrama, R1 va a fila 2 porque fila 1 va cableada directo (referencias escaladas). Los pines analógicos pueden cambiarse según necesidad.

Si Arduino se alimenta a 3.3V, no cambia nada: el ADC usa Vcc como referencia por defecto.

Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas

Para probar sin teclado comercial, construí uno con teclas recicladas. Conector 5 pines a la derecha para cablear a Arduino.

Código - Analog4x3Keybf.ino

/* Analog4x3Keybf - Test teclado 4x3 con 3 salidas analógicas
 * G. Carrera - 19/11/2018 */

// Límites ADC por fila (con margen ±100)
const int NADCm100[4] = {923, 669, 412, 156};
const int NADCp100[4] = {1123, 869, 612, 356};
const char key[13] = {'1','4','7','C','2','5','8','0','3','6','9','E'};

int keyval[3];
int i, colp, val;

void setup() {
Serial.begin(9600);
}

void loop() {
char k = KeyPad();
if (k != 'N') {
Serial.print("key = ");
Serial.println(k);
delay(500);
}
}

char KeyPad() {
KeyScan();
if (keyval[0] + keyval[1] + keyval[2] < 40) return 'N'; // ninguna tecla

delay(10); // anti-rebote
KeyScan();

for (i = 0; i < 3; i++) {
if (keyval[i] > 40) {
colp = i;
val = keyval[i];
for (int j = 0; j < 4; j++) {
if (val >= NADCm100[j] && val <= NADCp100[j]) {
return key[colp * 4 + j];
}
}
}
}
return 'N';
}

void KeyScan() {
keyval[0] = analogRead(A0); delay(1);
keyval[1] = analogRead(A1); delay(1);
keyval[2] = analogRead(A2); delay(1);
}

Esquemático

Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas

Proceso de manufactura

  1. Construye y programa animaciones en matrices WS2812 RGB 8x8 y 16x16 con Arduino y Excel
  2. Alerta de Sed Inteligente para Plantas: Sensor DIY para Riego Óptimo
  3. Reloj de Palabras en Italiano con Arduino Nano, NeoPixel, LCD y RTC
  4. Medidor kWh Sigfox Fiable con Arduino MKR Fox 1200
  5. Monitor de temperatura con Bluetooth usando Arduino Nano
  6. Cerradura por Gestos Sin Contacto: Acceso Seguro con APDS-9960 y Arduino
  7. Kit Compañero Arduino Nano: Componentes y Herramientas Esenciales para Electrónica DIY
  8. Kit Adaptador USB MIDI para Arduino Micro / Leonardo: Lista Completa de Componentes
  9. Circuito de entrada analógica aislada para Arduino
  10. Visualizador Espectro Audio RGB 32 Bandas - Matriz LED Arduino
  11. Test de Precisión de Tiempo de Reacción con Arduino UNO