Índice:
- Etapa 1: O que é este temporizador de watchdog?
- Etapa 2: Como habilitar o temporizador do Watchdog?
- Etapa 3: mantenha seu programa funcionando
- Etapa 4: Exemplo de uso
- Etapa 5: problemas de cronômetro de watchdog
- Etapa 6: aproveite
Vídeo: O Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Olá a todos, Isso acontece com todos nós. Você constrói um projeto, conecta com entusiasmo todos os sensores e, de repente, o Arduino trava e nenhuma entrada é processada.
“O que está acontecendo?”, Você perguntará e começará a vasculhar seu código, apenas para perceber que ficou preso em um loop infinito. Graças a Deus, o Arduino estava em sua bancada e não em um local remoto.
Hoje, veremos como podemos usar o temporizador de watchdog no Arduino para evitar que isso aconteça.
Etapa 1: O que é este temporizador de watchdog?
O cronômetro de watchdog do Arduino, como o nome indica, é um cronômetro que funciona separadamente da CPU principal da placa. Esse cronômetro pode ser usado para verificar periodicamente o estado da placa e, em circunstâncias em que a placa travou em um loop de software ou devido a uma falha de hardware, o cronômetro de watchdog pode redefinir o Arduino e fazer com que ele reinicie.
Por padrão, quando não está em uso, este temporizador é desabilitado em todos os projetos e apenas quando o habilitamos, precisamos ter certeza de dizer a ele periodicamente para não reinicializar nossa placa se ela ainda estiver operando conforme o esperado.
Para poder usar o cronômetro de watchdog, primeiro precisamos incluir o arquivo avr / wdt.h em nosso esboço do Arduino. Esta é a biblioteca padrão que contém as ações de watchdog.
Etapa 2: Como habilitar o temporizador do Watchdog?
Para habilitar o temporizador, usamos a função “wdt_enable” onde precisamos passar o intervalo limite no qual a placa será reinicializada. Dependendo do nosso caso de uso, isso pode ir de 15 milissegundos a até 8 segundos em configurações predefinidas que estão contidas na biblioteca watchdog.
LIMIAR - NOME DA CONSTANTE
15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S
Etapa 3: mantenha seu programa funcionando
Agora, com o cronômetro habilitado, para evitar que ele reinicie nosso Arduino, precisamos chamar periodicamente a função “wdt_reset” para reiniciar o cronômetro de watchdog antes que o intervalo de limite expire.
Ao escolher um intervalo de reinicialização, é crucial levar em consideração qualquer operação demorada, como ler ou enviar dados ou conectar-se a sensores externos. O limite de reinicialização deve ser pelo menos uma vez e meia maior do que esses tempos para evitar reinicializações acidentais.
Etapa 4: Exemplo de uso
No programa de exemplo que você pode baixar aqui, primeiro configuramos o cronômetro de watchdog com um intervalo de reinicialização de 4 segundos. Então, para saber que estamos na função de configuração, piscamos um LED 3 vezes rapidamente e, em seguida, no loop principal, primeiro zeramos o cronômetro, acendemos um LED com intervalos progressivamente maiores e depois o desligamos. O próximo ciclo zera o cronômetro novamente até que o tempo de acendimento seja superior a 4 segundos.
Quando isso acontece, o temporizador de watchdog zera a placa e o setup é executado novamente.
Etapa 5: problemas de cronômetro de watchdog
Um possível problema com o cronômetro de watchdog, dependendo do bootloader do seu Arduino é que se o valor do cronômetro de watchdog for muito baixo e o bootloader não zerar o cronômetro ao carregar um novo código, você pode acabar danificando sua placa Arduino de uma forma que ele sempre ficará travado na fase de inicialização. O bootloader tentará iniciar, mas o cronômetro continuará reiniciando a placa, nunca permitindo que ela inicie corretamente. Para evitar problemas como esse, sempre use intervalos de limite de 2 segundos ou mais.
Etapa 6: aproveite
Se você tiver um exemplo de onde usou o watchdog timer em um projeto real, deixe-me saber nos comentários, certifique-se de gostar do vídeo e não se esqueça de se inscrever.
Parabéns e obrigado por ler / assistir!
Recomendado:
KS-Tea-Timer: 4 etapas
KS-Tea-Timer: SituationYou are, por exemplo em um escritório e você quer preparar o chá como deve ser feito (por exemplo, chá verde 2 minutos, chá preto 5 minutos …), mas às vezes você simplesmente perde o momento certo para parar a preparação e tirar o chá do água quente. É muito
Node Mcu Indian Car Central Lock com Rfid e Blynk Timer desbloqueio: 9 etapas
Node Mcu Indian Car Central Lock com Rfid e Blynk Timer Unlock: Estou mostrando a vocês hoje um carro estilo indiano com fechadura central totalmente automatizada com rfid tag blynk wifi control e time unlock.it também tem todas as características de uma fechadura central normal. Este carro bloqueio central FUNCIONA ATIVAÇÃO OFFLINE REQUER FECHADORES DE REDE E
Luz noturna Steampunked Dream Guardian: 9 etapas (com fotos)
Steampunked Dream Guardian Night Light: Olá a todos. Um amigo meu me pediu para criar um presente de noivado (claro, além do anel!) Para a namorada dele há algumas semanas. Ambos são como eu, bombeiros voluntários e adoram objetos Steampunk. Meu amigo pensou em um st
Fácil de fazer MIDI Hang Drum: 4 etapas
Tambor de suspensão MIDI fácil de fazer: O tambor de suspensão, também chamado de handpan, tambor de tanque ou tambor de língua de aço, é um instrumento feito de um tanque de propano (vazio, claro) com algumas línguas cortadas no metal. O tom das notas depende do tamanho e do peso das línguas. Este pro
The Pi Guardian: 6 etapas (com imagens)
The Pi Guardian: Você já quis pegar aquela pessoa que fica roubando seus doces de Halloween? Ou aquele colega de quarto chato que não quer deixar sua geladeira em paz? Usando um Raspberry Pi 3, uma câmera Pi e um sensor PIR, tudo isso agora é possível. Simples