Conceitos de Programação III
Potencializando o Código: Otimizando tarefas complexas com lógica de repetição.
O Poder da Repetição (Loops)
As Estruturas de Repetição representam o salto da programação manual para a automação inteligente. Elas são utilizadas quando um bloco de instruções precisa ser executado múltiplas vezes de forma controlada e finita.
Eficiência de Código
Elimina a necessidade de reescrever instruções redundantes, reduzindo drasticamente o tamanho do arquivo final.
Controle de Ciclos
A execução é regida por uma condição lógica definida pelo programador, garantindo que o ciclo tenha um início e um fim determinados.
Repetição com Teste no Início: O Laço WHILE
A estrutura WHILE (Enquanto) é utilizada quando queremos repetir um bloco de instruções enquanto uma condição lógica for verdadeira. A principal característica desta estrutura é que a validação ocorre antes de qualquer ação ser executada.
Como funciona a lógica?
- Validação Prévia: Se a condição for FALSA logo no primeiro teste, o bloco de instruções nunca será executado.
- Loop Infinito: É responsabilidade do programador garantir que, em algum momento, a condição se torne falsa para que a execução saia do laço.
- Execução: Enquanto a condição for VERDADEIRA, o Arduino repetirá a rotina e voltará ao teste inicial.
int contador = 0;
while (contador < 10) {
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
contador++; // Incrementa para que a condição se torne falsa após 10 ciclos
}
Desenvolver um projeto utilizando a porta PWM para controlar a luminosidade de um LED.
Acessar Projeto CompletoDesenvolver um projeto utilizando uma porta analógica e um potenciômetro para controlar a velocidade de iluminação de um LED. Quando o valor do potenciômetro for menor ou igual a 1000, um LED deverá permanecer ligado. Quando esse valor for menor ou igual a 500, outro LED deverá piscar em uma velocidade proporcional ao valor do potenciômetro.
Acessar Projeto CompletoDesenvolver um projeto utilizando um sensor de luz LDR e um diodo laser para simular um sistema de alarme. Quando algum objeto bloquear a recepção da luz do diodo laser pelo sensor LDR, um alarme deverá ser disparado e um LED permanecerá aceso. O alarme e o LED poderão ser desligados por meio de um botão.
Acessar Projeto CompletoRepetição com Variável de Controle: O Laço FOR
A estrutura FOR (Para) é utilizada quando sabemos exatamente quantas vezes um bloco de instruções deve ser executado. É a ferramenta ideal para percorrer vetores, matrizes ou realizar contagens precisas.
O Mecanismo de Controle
- Contador Interno: A própria estrutura gerencia uma variável contadora que rastreia as repetições.
- Limites Definidos: O programador estabelece o valor inicial e o limite (superior ou inferior) de parada.
- Automação de Fluxo: Diferente do While, o incremento ou decremento da variável de controle é feito na declaração da estrutura.
// Piscar um LED exatamente 5 vezes
for (int i = 0; i < 5; i++) {
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}
Interrupção Manual: O Comando break
No ecossistema Arduino, podemos utilizar o comando break para encerrar prematuramente um laço de repetição. Ele funciona como uma "saída de emergência", interrompendo o fluxo assim que uma condição específica (dentro do laço) for alcançada, mesmo antes do contador atingir seu limite final.
for (int i = 0; i < 100; i++) {
// Se o sensor detectar algo, interrompe a contagem
if (digitalRead(sensorPin) == HIGH) {
break; // Sai do laço imediatamente
}
delay(10);
}
Inicialização ; Condição ; Incremento. Dominar essa anatomia permite criar loops decrescentes ou com passos maiores que um.
Desenvolver um projeto utilizando um sensor de movimento e um micro servo para simular a abertura de uma cancela.
Acessar Projeto CompletoDesenvolver um projeto utilizando dois sensores de distância ultrassônicos e um micro servo para simular a abertura de uma cancela.
Acessar Projeto CompletoRepetição com Teste no Fim: O Laço DO-WHILE
A estrutura DO-WHILE (Faça-Enquanto) é única porque garante que o bloco de instruções seja executado pelo menos uma vez, independentemente da condição. A verificação lógica só acontece após a primeira execução da rotina.
A Lógica de Execução
- Execução Garantida: Diferente do While comum, aqui a rotina entra em ação antes mesmo de perguntar se a condição é válida.
- Teste Posterior: Após realizar a ação, o Arduino aplica o teste lógico.
- Ciclo de Repetição: Na linguagem C++ do Arduino, o laço continua enquanto a condição for verdadeira. Se a condição for falsa, a execução é encerrada e o programa segue adiante.
int sensorValor;
do {
// O robô tenta ler o sensor ao menos uma vez
sensorValor = analogRead(A0);
delay(100);
} while (sensorValor < 500); // Repete enquanto o valor for baixo
Desenvolver um projeto para desligar um diodo laser utilizando um sensor de toque capacitivo.
Acessar Projeto Completo