Arduino - Evento de múltiples botones con pantalla LCD

Me gustaría detectar dos botones que se presionan junto con el escudo LCD de Arduino. ¿Alguien tiene un código de ejemplo para manejar múltiples eventos de botón? Necesito un evento cuando los botones Arriba y Abajo se presionan juntos durante 2 segundos.

El LCD Shield es el LCD compatible con 16*2 HD44780 con caracteres BLANCOS y retroiluminación AZUL que tiene 6 botones. Lo obtuve de www.hotsolder.co.uk .

Respuestas (2)

Parece que este escudo tiene 5 botones conectados a resistencias de diferentes valores en un solo pin analógico. El sexto botón está cableado para reiniciar. Aquí está el esquema .

texto alternativo http://www.nuelectronics.com/estore/images/nustore/projects/lcd_schematics.jpg

El código de muestra tiene una tabla de búsqueda para convertir los valores ADC en claves:

int  adc_key_val[5] ={30, 150, 360, 535, 760 };

Si tiene suerte, es posible que pueda detectar dos teclas presionadas al mismo tiempo como una lectura única de ADC.

Intente escribir un boceto breve para imprimir el valor ADC en el puerto serie y luego experimente. Vea si puede encontrar rangos únicos de valores ADC que representen las combinaciones de teclas que le interesan.

Para detectar una pulsación durante un período de tiempo, use la función Arduino millis() para registrar el tiempo y luego comparar. Esto es muy similar a eliminar el rebote de un botón .

Depende de cómo estén conectados los botones, ¿está en una matriz o cada botón se puede leer individualmente? Si es individual, no veo cuál es el problema, solo lea ambos botones, espere hasta que ambos estén presionados y luego espere dos segundos para asegurarse de que no se despresionen durante ese tiempo.

Si están conectados en una matriz, es posible que no pueda leerlos a ambos al mismo tiempo.