Advertisement
Guest User

Untitled

a guest
Jun 21st, 2022
14
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define Def_tempo 5000 // Define o tempo de espera, após pressionar o botão
  2. #define Def_NumBotao 10 // Define o numero do GPIO, para receber o sinal do botão
  3.  
  4. unsigned long botao_millis; // armazenar o millis() no insante.
  5. bool chave_menu; // Variável responsável por (des)ativar o menu
  6.  
  7. void setup() { // Função de inicialização
  8. Serial.begin(115200); // Inicializa o monitor serial, a 115200
  9. pinMode(Def_NumBotao, INPUT); // Define "Def_NumBotao" como "entrada" (input)
  10. }
  11.  
  12. void loop() {
  13. if (digitalRead(Def_NumBotao) == HIGH) { // Verifica se o botão ESTÁ pressionado
  14. if (millis() - botao_millis >= Def_tempo) { // Verifica se o valor atual do tempo, menos o tempo salvo, é igual a "def_tempo"
  15. // Serial.println("Botão Pressionado por 5 segundos ou mais"); // Em caso positivo, imprime.
  16. // =================================================
  17. // início da área onde a mágica irá acontecer
  18. // =================================================
  19. if (chave_menu == 0) { // Se chave_menu for igual a 0
  20. chave_menu = 1; // chave_menu será igual a 1
  21. } // fecha o "if"
  22. else if (chave_menu == 1) { // Se chave_menu for igual a 1
  23. chave_menu = 0; // chave_menu será igual a 0
  24. } // fecha o "else if"
  25. Serial.print("chave_menu ="); // imprime o TEXTO "chave_menu ="
  26. Serial.println(chave_menu); // IMPRIME, o valor da VARIÁVEL "chave_menu"
  27. // ============================================
  28. // Fim da área, onde a mágica acontece.
  29. // ============================================
  30. }
  31. }
  32. else { // Caso o botão não esteja pressionado...
  33. botao_millis = millis(); // Salva o valor atual do tempo
  34. }
  35. }
Advertisement
RAW Paste Data Copied
Advertisement