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.
Abaixo temos o esquema elétrico e o desenho elaborado no simulador:
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.
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:
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:
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:
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:
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:
- Arduino R3 Uno
- DCcEle DCduino (clone do Arduino R3 Uno)
- Protoboard com 400 furos
- Protoboard com 830 furos
- Cabos do tipo macho-macho com 10cm
- Cabos do tipo macho-macho com 20cm
Obrigado pela atenção e até o próximo post!