Como detectar o botão de pressão há muito tempo pressione Arduino

Como detectar o botão de pressão há muito tempo pressione Arduino
Quando a interface humana é necessária para fornecer uma entrada a um programa Arduino Manualmente dispositivos diferentes, como teclado ou botões de push, podem ser usados. Além disso, podemos configurar a funcionalidade de tais dispositivos programando o microcontrolador. Por exemplo, quando precisamos desligar algum dispositivo, podemos configurar o botão que funcionará apenas se for pressionado por algum tempo. Esta funcionalidade também é usada em smartphones. Portanto, para detectar se o botão é pressionado há muito tempo, explicamos o processo com a ajuda de um pequeno circuito e código Arduino que detecta se o botão de pressão for pressionado por muito tempo.

Detectando o longo estado de imprensa do botão

Para adicionar a funcionalidade do botão para funcionar quando ele é pressionado por um longo tempo, criamos um circuito simples cujo esquema de circuito é dado abaixo, seguido pelos componentes que usamos para fazer o circuito.

  • Arduino Uno
  • Conectando fios
  • 1 botão
  • Pão de pão

Conjunto de hardware para detectar o longo estado de imprensa do botão

Para ver como será o circuito no hardware real, fizemos o conjunto de hardware que é dado abaixo na imagem.

Como você pode ver na imagem acima, usamos o pino 8 do Arduino para conectá -lo ao botão de pressão usando o fio verde e usando o fio preto para conectar o botão de pressão com o pino de arduino.

Código Arduino para detectar o longo estado de imprensa do botão

Para detectar a longa pressão do botão, programamos o microcontrolador usando a função Millis (). Detectamos o estado de imprensa longo, conseguindo o tempo para o qual o estado do botão de pressão permaneceu alto e baixo. Depois disso, calculamos a duração pela qual o botão foi pressionado e depois o comparamos com algum valor de tempo constante com base nisso, podemos dizer que o botão foi pressionado por um longo tempo.

Nesse caso, damos o valor de tempo constante de um segundo que é 1000 milissegundos como a curta pressionada para o botão. Se a duração da pressão for mais do que o tempo para o curto período de imprensa, será considerado como a imprensa longa e será exibida no monitor serial. Abaixo, demos o esboço do Arduino usado para programar o controlador para detectar o estado de imprensa longo do botão.

Int Button = 8; /* Pino Arduino para o botão de pressão*/
int curto_time = 1000; / * Tempo que será considerado como o curto tempo de imprensa */
long on_duration;/ * variável que armazenará o valor do tempo para o qual o botão é pressionado */
int anteriorstate = baixo; / * Definindo o estado inicial do botão de pressão alto, pois estamos usando o modo input_pullup */
int presentestate; /* Variável que armazenará o estado atual se o botão*/
não assinado long Press_time = 0; / * Tempo em que o botão foi pressionado */
Long release_time não assinado = 0;/ *tempo em que o botão é liberado */
Void Setup ()
Serial.BEGIN (9600);/* Dando a taxa de transmissão para comunicação serial*/
pinmode (botão, input_pullup);/* dando o modo de trabalho para o botão de pressão que é input_pullup (inverte as entradas do botão)*/

Void Loop ()
// Leia o estado do interruptor/botão:
presentestate = digitalRead (botão);/ * Obtendo o estado atual do botão de pressão */
if (anteriorstate == High && presentestate == Low) / * se o botão for pressionado * /
press_time = millis ();/ * salve o tempo em milissegundos usando a função millis */
caso contrário, if (anteriorstate == low && presentestate == alta) /* se o botão for liberado* /
release_time = millis ();/ * salve o tempo em que o botão foi liberado */
long on_time = release_time - press_time;/* calculando o tempo para o qual o botão permaneceu no estado baixo*/
se (on__time> short_time) /* comparando o valor do tempo para o qual o botão é pressionado ao valor por um curto tempo de imprensa* /
Serial.println ("O botão é pressionado por um longo tempo");/ * Imprimindo os dados no monitor serial */

anteriorstate = presentestate;/ * salvando o valor presente no valor anterior */

Demonstração de hardware

Fizemos o circuito no hardware de acordo com o conjunto de hardware que é discutido anteriormente, e a imagem abaixo mostra a implementação de hardware do circuito de botão para detectar o estado de imprensa longo do botão.

Quando pressionamos o botão por mais de um segundo, o código Arduino mostra no monitor serial que o botão é pressionado por muito tempo, como mostrado na imagem abaixo:

Conclusão

O significado de usar o estado de imprensa longo do botão é que você pode usar um único botão para executar mais de uma tarefa. Então, para explicar como detectar o estado de imprensa longo do botão, projetamos um circuito e o implementamos no hardware real e também fornecemos o esboço do Arduino que fornecerá uma ótima subestimação do tópico.