Cómo detectar el botón Push Long Presione Arduino

Cómo detectar el botón Push Long Presione Arduino
Cuando se requiere la interfaz humana para dar una entrada a un programa de Arduino, se pueden usar dispositivos manualmente diferentes como el teclado o los botones PUSH. Además, podemos configurar la funcionalidad de tales dispositivos programando el microcontrolador. Por ejemplo, cuando tenemos que apagar algún dispositivo, podemos configurar el botón Push que funcionará solo si se presiona durante bastante tiempo. Esta funcionalidad también se usa en teléfonos inteligentes. Entonces, para detectar si el botón se presiona por mucho tiempo, hemos explicado el proceso con la ayuda de un pequeño circuito y código Arduino que detecta si el botón Push se presiona durante mucho tiempo.

Detectando el estado de presentación largo del botón Push

Para agregar la funcionalidad del botón para que funcione cuando se presiona durante mucho tiempo, hemos hecho un circuito simple cuyo esquema de circuito se da a continuación seguido por los componentes que hemos usado para hacer el circuito.

  • Arduino Uno
  • Conectando cables
  • 1 Botón Push
  • Tablero de circuitos

Ensamblaje de hardware para detectar el botón Long Press State of Push

Para ver cómo se verá el circuito en el hardware real, hemos hecho el ensamblaje de hardware que se da a continuación en la imagen.

Como puede ver en la imagen de arriba, hemos usado el pin 8 de Arduino para conectarlo con el botón Push usando el cable verde y usando el cable negro para conectar el botón Push con el pasador de tierra de Arduino.

Código Arduino para detectar el botón Long Press State of Push

Para detectar la larga presión del botón Push, hemos programado el microcontrolador utilizando la función Millis (). Hemos detectado el estado de prensa largo al obtener el tiempo para el cual el estado del botón Push permaneció alto y bajo. Después de eso, calculamos la duración para la cual se presionó el botón y luego lo comparamos con algún valor de tiempo constante en función de que podemos decir que el botón se presionó durante mucho tiempo.

En este caso, hemos dado el valor de tiempo constante de un segundo que es de 1000 milisegundos como la breve presiona para el botón. Si la duración de la prensa es más que el tiempo para el tiempo de prensa corto, se considerará como la prensa larga y se mostrará en el monitor en serie. A continuación, hemos dado el boceto Arduino utilizado para programar el controlador para detectar el estado de presentación largo del botón Push.

int buty = 8; /* Arduino pin para el botón Push*/
int short_time = 1000; / * Tiempo que se considerará como el tiempo de prensa corto */
Long on_duration;/ * variable que almacenará el valor del tiempo para el cual se presiona el botón */
int anteriorState = Low; / * Configuración del estado inicial de botón Push Alto, ya que estamos utilizando el modo input_pullup */
int presente State; /* Variable que almacenará el estado actual si el botón*/
Unsigned Long Press_time = 0; / * Hora en la que se presionó el botón */
Unsigned Long Release_time = 0;/ *Tiempo en el que se libera el botón */
setup () void
De serie.BEGIN (9600);/* Dando la tasa de baudios para la comunicación en serie*/
PinMode (botón, input_pullup);/* Dar el modo de trabajo al botón PUSH que es input_pullup (invertida las entradas del botón)*/

bucle void ()
// Lea el estado del interruptor/botón:
presenteState = DigitalRead (botón);/ * Obtener el estado actual del botón Push */
if (anteriorState == high && presenteState == Low) / * Si se presiona el botón * /
press_time = Millis ();/ * Guarde el tiempo en milisegundos usando la función Millis */
else if (anteriorState == Low && presenteState == High) /* if Bother se libera* /
libe_time = millis ();/ * Guardar el tiempo en el que se liberó el botón */
Long on_time = rotion_time - press_time;/* Calculando el tiempo para el que el botón permaneció en el estado bajo*/
if (on_time> short_time) /* Comparando el valor del tiempo para el cual se presiona el botón al valor para un corto período de prensa* /
De serie.println ("El botón se presiona durante mucho tiempo");/ * Imprimiendo los datos en el monitor en serie */

AnteriorState = presenteState;/ * Guardar el valor presente en el valor anterior */

Demostración de hardware

Hemos hecho el circuito en el hardware correctamente de acuerdo con el ensamblaje de hardware que se discute anteriormente, y la imagen a continuación muestra la implementación del hardware del circuito de botón PUSH para detectar el estado de presentación largo del botón.

Cuando presionamos el botón durante más de un segundo, el código Arduino muestra en el monitor en serie, el botón se presiona durante mucho tiempo como se muestra en la imagen a continuación:

Conclusión

La importancia de usar el estado de presentación largo del botón Push es que puede usar un solo botón para realizar más de una tarea. Entonces, para explicar cómo detectar el estado de prensa largo del botón Push, hemos diseñado un circuito y lo implementamos en el hardware real y también hemos proporcionado el boceto Arduino que proporcionará una gran subestimación del tema.