Advertisement
Guest User

Untitled

a guest
Jun 21st, 2022
9
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. bool chave_menu_old; // Armazena o valor de "chave_menu"
  7.  
  8. void setup() { // Função de inicialização
  9. Serial.begin(115200); // Inicializa o monitor serial, a 115200
  10. pinMode(Def_NumBotao, INPUT); // Define "Def_NumBotao" como "entrada" (input)
  11. }
  12.  
  13. void loop() {
  14. if (digitalRead(Def_NumBotao) == HIGH) { // Verifica se o botão ESTÁ pressionado
  15. if (millis() - botao_millis >= Def_tempo) { // Verifica se o valor atual do tempo, menos o tempo salvo, é igual a "def_tempo"
  16. // Serial.println("Botão Pressionado por 5 segundos ou mais"); // Em caso positivo, imprime.
  17. // =================================================
  18. // início da área onde a mágica irá acontecer
  19. // =================================================
  20. if (chave_menu == chave_menu_old) { // Se chave_menu for igual a chave_menu_old, habilita a mudança de "chave_menu"
  21. if (chave_menu == 0) { // Se chave_menu for igual a 0
  22. chave_menu = 1; // chave_menu será igual a 1
  23. } // fecha o "if"
  24. else if (chave_menu == 1) { // Se chave_menu for igual a 1
  25. chave_menu = 0; // chave_menu será igual a 0
  26. } // fecha o "else if"
  27. Serial.print("chave_menu ="); // imprime o TEXTO "chave_menu ="
  28. Serial.println(chave_menu); // IMPRIME, o valor da VARIÁVEL "chave_menu"
  29. // ============================================
  30. // Fim da área, onde a mágica acontece.
  31. // ============================================
  32. }
  33. }
  34. }
  35. else { // Caso o botão NÃO ESTEJA PRESSIONADO //
  36. botao_millis = millis(); // Salva o valor atual do tempo
  37. chave_menu_old = chave_menu; // Iguala o valor de chave_menu_old ao chave_menu
  38. }
  39. }
Advertisement
RAW Paste Data Copied
Advertisement