Como parar a função de loop void em Arduino

Como parar a função de loop void em Arduino
Arduino é uma plataforma de programação que permite que os usuários se comuniquem com microcontroladores que não eram possíveis alguns anos atrás. As tábuas Arduino podem ser programadas usando Arduino IDE. O Arduino IDE usa uma linguagem C/C ++ com alguma funcionalidade adicional para controlar e programar pranchas de Arduino. O esboço do Arduino consiste principalmente em duas funções, uma é a configuração e a segunda é o loop. Aqui vamos entender como podemos controlar o loop usando diferentes técnicas de programação.

Como parar o Void Loop em Arduino?

Os esboços de Arduino consistem principalmente em duas partes um é configurado e o segundo é o loop. As funções de configuração são executadas apenas uma vez após o código ser compilado enquanto a função de loop continua correndo até que um novo esboço ou Arduino perca seu poder.

Vários projetos podem exigir funções de loop void para funcionar por um tempo específico ou parar depois de executar determinadas instruções, então agora vamos ver como podemos parar a função do arduino void em loop usando diferentes técnicas de programação.

A função de loop realmente para?

Arduino não fornece nenhuma maneira de interromper a função de loop vazio. Além do Arduino, não existe existir em microcontroladores em primeiro lugar. Tecnicamente, todas as técnicas que usamos são apenas para interromper a funcionalidade do arduino loop. Não para completamente, enviamos loop vazio para uma condição infinita usando enquanto ou use um saída declaração para interromper seu processo. Ao fazer esse loop de Arduino preso dentro de um loop infinito sem executar instruções, a única maneira de recuperá -lo é redefinir; através de um botão ou enviando um novo esboço. Então, tecnicamente, o arduino vazio de loop não para.

Métodos para parar o loop de vazio em Arduino

A programação Arduino tem dois tipos de loops, que é por padrão no esboço de Arduino, que é vazio () enquanto o segundo é o loop usado durante a programação ou a escrita de um esboço. Loops criados pelo usuário podem parar facilmente usando declarações de quebra.

Abaixo mencionados estão poucas etapas para impedir o loop de vazio em Arduino:

  • Usando infinito enquanto loop
  • Usando a biblioteca do sono
  • Usando a declaração de saída (0)
  • Usando a instrução if

I: Usando infinito enquanto loop

Para parar o loop de vazios em Arduino, esboçar um loop infinito pode ser usado com a ajuda de uma estrutura de loop de um tempo. Este método funcionará em todas as placas Arduino, mas isso não interromperá o Arduino funcionando enquanto o Arduino continua a consumir energia. Este método pode ser facilmente implementado em qualquer código após a última linha em que seu código é concluído.

Vamos dar um exemplo de piscar de LED para entender como o loop while é útil para quebrar a função Void Loop:

Void Setup ()
// Coloque seu código de configuração aqui, para executar uma vez:
pinmode (led_builtin, saída);

Void Loop ()
DigitalWrite (led_builtin, alto); // Ligue o LED
atraso (1000); // atraso de um segundo
DigitalWrite (led_builtin, baixo); // Desligue o LED
atraso (1000); // atraso de um segundo
enquanto (1) // loop infinito

No código acima, inicializamos o pino de LED embutido na função de configuração do vazio depois disso na seção de loop de vazios, um programa de piscar LED é escrito. Aqui o LED começará a piscar em um padrão de 1 segundo e 1 segundo. Depois que um ciclo é concluído, um infinito, enquanto o loop é iniciado no final do segundo atraso; Agora o LED permanecerá desligado até que o código seja re-apploado ou Arduino seja redefinido.

II: Usando a Biblioteca do Sleep

No método acima, o arduino void loop está parado, mas o Arduino continuará a tomar o poder. Próximo método que parará permanentemente o loop de vazio e colocará Arduino no modo de suspensão está usando Sleep_N0M1 A biblioteca, usando esta CPU Arduino, pode ser enviada no modo de suspensão permanente até que o Arduino seja redefinido ou usamos um cronômetro para o tempo específico para o qual Arduino entra no modo de suspensão. Este método depende de bibliotecas que podem não funcionar em algumas pranchas de Arduino.

Novamente, vamos dar um exemplo de LED para demonstrar seu trabalho.

#incluir
Dorme dorme;
tempo de folga não assinado;
Void Setup ()
Offtime = 5000;
pinmode (led_builtin, saída);

Void Loop ()
DigitalWrite (led_builtin, alto); // Ligue o LED
atraso (1000); // atraso de 1 seg
DigitalWrite (led_builtin, baixo); // Desligue o LED
atraso (1000); // 1 por atraso
dormir.pwrdownMode (); // Defina o modo de suspensão
dormir.SleepDelay (Offtime); // Durma para: Offtime

No início do esboço, chamamos a Biblioteca do Sono Arduino e definimos uma variável Offtime Esta variável armazenará o limite de tempo para o qual queremos colocar o Arduino no modo de suspensão. Aqui, levamos 5000ms de tempo de folga. Em seguida, definimos um LED embutido para Arduino.

Na seção Void Loop, o código do LED está escrito, aqui o LED completará um ciclo de piscar e depois vai ao modo de suspensão por 5000ms ou 5 segundos, depois que o LED iniciará novamente um ciclo piscando, novamente, vai para o modo de suspensão por 5 segundos. Este ciclo continua até que o Arduino seja redefinido.

Neste exemplo, o loop será interrompido por 5 segundos, após o que começa novamente por causa do tempo de folga, mas se precisarmos detê -lo permanentemente, precisamos remover esse timer ou defini -lo como valor máximo. A biblioteca do sono pode interromper a seção de loop por um máximo de 49 dias após o que será redefinido automaticamente.

III: Usando a instrução EXIT (0)

O loop de vazios também pode ser parado usando a instrução EXIT (). Esta afirmação é uma das maneiras mais simples de parar uma função de loop vazio. Lembre -se de usar esta declaração no final do seu código, porque qualquer instrução escrita após esta linha não será executada até que o Arduino seja redefinido ou o código seja reiniciado.

Void Setup ()
// Coloque seu código de configuração aqui, para executar uma vez:
pinmode (led_builtin, saída);

Void Loop ()
DigitalWrite (led_builtin, alto); // Ligue o LED
atraso (1000); // 1 por atraso
DigitalWrite (led_builtin, baixo); // Desligue o LED
atraso (1000); // 1 por atraso
saída (0);

O código acima explica o uso de instruções de saída para interromper o loop de vazios no código Arduino. Como o exemplo anterior, o código do LED Blink está escrito e, no final do código, iniciamos uma linha de saída. Isso vai quebrar o loop arduino do vazio. O LED piscará por um ciclo depois disso, ele vai parar.

IV: Usando a instrução IF

A declaração IF é o último método, discutiremos hoje para parar o loop vazio. Se a estatura definirá uma condição dentro do loop que reiniciará o loop de vazios ou a interromperá dependendo da entrada do usuário.

Abaixo o código demonstra a estatura IF com a ajuda do LED to Stop Void Loop.

stop boolean = true;
Void Setup ()
// Coloque seu código de configuração aqui, para executar uma vez:
pinmode (led_builtin, saída);

Void Loop ()
if (stop == true)
DigitalWrite (led_builtin, alto); // Ligue o LED
atraso (1000); // 1 por atraso
DigitalWrite (led_builtin, baixo); // Desligue o LED
atraso (1000); // 1 por atraso

stop = false;

No início do código, inicializamos uma variável booleana parar e seu valor é definido como true. Depois disso, na seção de instalação, os pinos de LED são definidos. Na seção de loop de vazios, se as declarações começarem e verifique a variável parar valor. Se a condição se tornar verdadeira, ela começará o LED Blink Sketch. Depois que o ciclo de piscar de LED é concluído, atribuímos o valor do parar variável para false. Depois disso, continuará checando o loop de vazios, mas a afirmação sempre se tornará falsa porque definimos o valor do parar variável para false, resultando em interromper o loop vazio do código do Arduino.

Conclusão

O loop vazio é uma parte importante do código do Arduino, qualquer coisa escrita dentro dele continuará correndo até que o Arduino seja redefinido. Às vezes, precisamos parar a seção de loop de acordo com os parâmetros do projeto, então aqui destacamos todas as maneiras principais de usar, que podemos parar o código da seção de loop void arduino.