Ruyter

Untitled

Jan 27th, 2021 (edited)
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. /*PROJETO PARA FUNCIONAMENTO CONTÍNUO - Reinicia o funcionamento após retorno da queda de energia
  2. OBS: - Neste caso o botão RESET original da placa NÃO conseguirá parar o sistema, apenas reiniará
  3. - Precisa de um boão adicional, como abaixo
  4.  
  5. PREPARADO PARA TESTAR VIA SERIAL
  6. Diagrama do botão
  7. __|__
  8. Pino 2 <=| |=> Resistor 10k ligado no GND
  9. | O |
  10. 5v <=|_____|=> Não usar
  11. |
  12. */
  13. //Biblioteca da memória
  14. #include <EEPROM.h>
  15.  
  16. //Pino e variável
  17. int bt_parar = 2;
  18. int est_bt_parar = 0; // Armazenar o estado do botao
  19.  
  20. void setup() {
  21. Serial.begin(9600);
  22. pinMode(bt_parar, INPUT);
  23. Serial.println();
  24. Serial.println("INICIALIZANDO ...........");
  25. }
  26.  
  27. void loop() {
  28. parar(); //Chamar na(s) parte(s) do cógigo ou dentro de outra função que quiser
  29.  
  30. if (EEPROM.read(100) == 0) {
  31. Serial.println("EXECUTANDO..... Teste o BOTÃO DE PARAR");
  32. }
  33. else
  34. {
  35. Serial.println("NÃO EXECUTANDO..... Nesta parte não teria nenhum código a ser executado");
  36. Serial.println("Com esta dinâmina para colocar um códico em funcionamento");
  37. Serial.println("precisa que seja gravado na EEPROM o valor: 0");
  38. Serial.println("Desta forma: EEPROM.write(100, 0); O QUE ACONTECERÁ NESTE EXEMPLO APÓS 15 SEGUNDOS");
  39. delay(15000);
  40. EEPROM.write(100, 0); //Grava valor 0 na posição 100 da memória
  41. }
  42. }
  43.  
  44. void parar() {
  45. est_bt_parar = digitalRead(bt_parar); //Leitura do estado do botao
  46. if (est_bt_parar == HIGH) {
  47. EEPROM.write(100, 1); //Grava valor 1 na posição 100 da memória
  48. delay(500);
  49. asm volatile (" jmp 0");
  50. }
  51. }
Add Comment
Please, Sign In to add comment