Advertisement
Guest User

Untitled

a guest
Jun 21st, 2022
17
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. #define Def_NumBotao_2 11 // Número do pino do botão ETAPA 3
  4. #define Def_NumBotao_3 12 // Número do pino do botão ETAPA 3
  5.  
  6. unsigned long botao_millis; // armazenar o millis() no insante.
  7. bool chave_menu; // Variável responsável por (des)ativar o menu
  8. bool chave_menu_old; // Armazena o valor de "chave_menu"
  9. int Variavel_de_dados;
  10.  
  11. void setup() { // Função de inicialização
  12. Serial.begin(115200); // Inicializa o monitor serial, a 115200
  13. pinMode(Def_NumBotao, INPUT); // Define "Def_NumBotao" como "entrada" (input)
  14. pinMode(Def_NumBotao_2, INPUT); // Define o pino como entrada
  15. pinMode(Def_NumBotao_3, INPUT); // Define o pino como entrada
  16. }
  17.  
  18. void loop() {
  19. if (digitalRead(Def_NumBotao) == HIGH) { // Verifica se o botão ESTÁ pressionado
  20. if (millis() - botao_millis >= Def_tempo) { // Verifica se o valor atual do tempo, menos o tempo salvo, é igual a "def_tempo"
  21. // Serial.println("Botão Pressionado por 5 segundos ou mais"); // Em caso positivo, imprime.
  22. // =================================================
  23. // início da área onde a mágica irá acontecer
  24. // =================================================
  25. if (chave_menu == chave_menu_old) { // Se chave_menu for igual a chave_menu_old, habilita a mudança de "chave_menu"
  26. if (chave_menu == 0) { // Se chave_menu for igual a 0
  27. chave_menu = 1; // chave_menu será igual a 1
  28. } // fecha o "if"
  29. else if (chave_menu == 1) { // Se chave_menu for igual a 1
  30. chave_menu = 0; // chave_menu será igual a 0
  31. } // fecha o "else if"
  32. Serial.print("chave_menu ="); // imprime o TEXTO "chave_menu ="
  33. Serial.println(chave_menu); // IMPRIME, o valor da VARIÁVEL "chave_menu"
  34. // ============================================
  35. // Fim da área, onde a mágica acontece.
  36. // ============================================
  37. }
  38. }
  39. }
  40. else { // Caso o botão NÃO ESTEJA PRESSIONADO //
  41. botao_millis = millis(); // Salva o valor atual do tempo
  42. chave_menu_old = chave_menu; // Iguala o valor de chave_menu_old ao chave_menu
  43. }
  44. }
  45.  
  46. void menu_ativo() {
  47. if (digitalRead(Def_NumBotao_2) == HIGH) { // se o "Def_NumBotao_2" foi pressionado
  48. Variavel_de_dados = Variavel_de_dados + 1;
  49. }
  50. else if (digitalRead(Def_NumBotao_3) == HIGH) { // se o "Def_NumBotao_3" foi pressionado
  51. Variavel_de_dados = Variavel_de_dados - 1;
  52. }
  53. Serial.print("MENU ATIVO ---- ");
  54. Serial.print("Variavel_de_dados = ");
  55. Serial.println(Variavel_de_dados);
  56. }
Advertisement
RAW Paste Data Copied
Advertisement