Executando diferentes códigos no Arduino em cada execução da função loop

Olá a todos,

nesse post mostraremos como executar diferentes códigos na função loop a partir de um controle e também como separar partes do nosso código em funções. Esse exemplo acenderá um led diferente a cada execução da função loop com tempo de duração também diferente.

Como sempre o primeiro passo é montarmos nosso circuito. Monte três circuitos como mostrado no post Utilizando pinos digitais do Arduino para enviar sinais, ligando cada circuito em um pino digital do Arduino. Note na figura abaixo que ligamos todos os terras dos circuitos em uma linha de furos da protoboard e essa linha em um pino terra do Arduino. Essa técnica facilita a montagem do circuito e evita que precisemos de mais de um ou dois pinos de terra (GND) na nossa placa.

Circuito do projeto montado.
Circuito do projeto montado.

Abaixo temos o esquema elétrico e o desenho elaborado no simulador:

Esquema elétrico do circuito utilizado
Esquema elétrico do circuito utilizado
Modelo do circuito utilizado no post
Modelo do circuito utilizado no post

Passaremos agora para o desenvolvimento do programa. Primeiro declare três constantes para indicar em quais pinos os led estão ligados. Em seguida configure todos os pinos como OUTPUT e deixe-os com estado LOW.

Configuração inicial dos pinos do Arduino
Configuração inicial dos pinos do Arduino

O próximo passo é escrevermos as funções que controlarão os leds, onde cada uma controlará um led diferente. Uma função é declarada indicando o tipo de valor que ela retorna seguida de seu nome e uma lista de parâmetros que ela recebe. Nossas funções retornarão para a função loop o tempo que desejamos que o programa aguarde até a próxima execução e não receberá parâmetros. A imagem abaixo mostra a declaração das funções:

Declaração das funções
Declaração das funções

Escreva o código de cada função:

  • Primeiro o led verde deve ficar acesso por 1,5 segundo;
  • Na sequência esse led deve ser desligado e acionado o led amarelo por 0,5 segundo;
  • Finalmente o led amarelo deve ser desligado e o led vermelho ligado por 1 segundo.

O código das funções está exibido abaixo:

Código das funções
Código das funções

Agora precisamos declarar uma variável com escopo global para controlar o estado do nosso programa e para a função loop saber qual função deverá ser chamada. Podemos utilizar uma variável do tipo inteiro como mostrado abaixo:

Declaração de variável global
Declaração de variável global

Agora deveremos escrever o código da função loop. Essa função deverá verificar qual o valor da variável global para decidir qual função será chamada. A função correta então deverá ser executada e em seguida aguardar o tempo informado. Encerramos o código alterando o valor da variável global para a função loop chamar a próxima função na execução seguinte.

Note que nesse código utilizamos uma combinação dos operadores IF e ELSE para testar diversas condições em sequência. Todo código da função loop está mostrado abaixo:

Função loop
Função loop

Com o circuito montado e o código desenvolvido compile o programa e transfira-o para o Arduino e veja a execução do programa.

Onde encontrar alguns dos componentes:

Obrigado pela atenção e até o próximo post!

Deixe um comentário

O seu endereço de e-mail não será publicado.