If-Else: Estrutura Condicional Simples no Arduino
Antes de Começar
1. Simulando Circutios no Tinkercad
2. Iniciando no Arduino: Piscando LEDs
Introdução à Estrutura Condicional: A Magia do Se/Senão (If/Else)
Olá, futuros programadores! Bem-vindos ao incrível mundo da programação, onde vocês podem dar vida às suas ideias e resolver problemas complexos de maneira criativa e eficiente. Hoje, nós vamos explorar um dos conceitos mais importantes da programação: a Estrutura Condicional (também conhecida como if/else).
Vocês já pensaram sobre como tomamos decisões em nosso dia a dia? Como decidimos se vamos precisar de um guarda-chuva ou não? Simples, olhamos para fora e se estiver chovendo, pegamos o guarda-chuva. Caso contrário, não pegamos. Este é um exemplo de uma situação condicional na vida real e é exatamente assim que funciona a estrutura condicional em programação.
Em programação, a estrutura condicional é uma maneira de fazer o computador tomar decisões com base em certas condições. Com isso, podemos fazer o computador executar certos blocos de código se uma condição for verdadeira e outros blocos de código se essa condição for falsa.
O estudo das estruturas condicionais é essencial, pois é uma ferramenta fundamental em praticamente todos os programas que você vai criar. Do desenvolvimento de jogos à criação de sites interativos e até mesmo na programação de robôs, você sempre encontrará uma situação onde precisará que seu programa tome decisões.
Dessa vez, vamos dar uma olhada em como podemos programar uma lógica simples utilizando um botão e um led numa placa arduino.
Passo 1. Faça as ligações abaixo no seu arduino usando uma placa real ou o simulador Tinkercad:
Passo 2. Antes de tudo, defina a porta onde o botão estará conectado. Vamos usar a porta digital 2. Adicione esta linha no início do seu código:
#define BOTAO 2
Passo 3. No método setup()
, você precisa definir se a porta será de ENTRADA ou SAÍDA. Nesse caso, será ENTRADA, pois o botão enviará o sinal para o Arduino. O código agora ficará assim:
void setup() {
pinMode(BOTAO, INPUT);
Serial.begin(9600);
}
Passo 4. Agora no método loop()
, vamos adicionar a lógica do botão. Quando o botão for pressionado, o Arduino lerá um valor ALTO (HIGH) na porta do botão.
void loop() {
if(digitalRead(BOTAO) == HIGH) {
Serial.println("Botão pressionado!");
} else {
Serial.println("Botão não pressionado.");
}
delay(500);
}
Verifique no Serial Monitor o resutaldo
Passo 5. Agora, vamos adicionar um LED ao nosso circuito e controlar o estado do LED com o botão.
Defina a porta onde o LED estará conectado NA LINHA LOGO ABAIXO DA DEFINIÇÃO DO BOTÃO. Vamos usar a porta digital 13.
#define LED 11
Passo 6. No método setup()
, defina a porta do LED como SAÍDA, já que o Arduino estará enviando o sinal para o LED.
void setup() {
pinMode(BOTAO, INPUT);
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
Passo 7. Agora, no método loop()
, vamos acender o LED quando o botão for pressionado e apagar o LED quando o botão não estiver pressionado.
void loop() {
if(digitalRead(BOTAO) == HIGH) {
Serial.println("Botão pressionado!");
digitalWrite(LED, HIGH);
} else {
Serial.println("Botão não pressionado.");
digitalWrite(LED, LOW);
}
delay(500);
}
Pronto! Agora você tem um código que controla o estado de um LED com um botão e imprime uma mensagem no console serial de acordo com o estado do botão. Lembre-se de conectar corretamente o botão e o LED ao seu Arduino.
nvestigando
A estrutura IF-Else
A estrutura `if-else` é como um guarda de trânsito em um cruzamento. Imagine que o botão em questão é como um semáforo: quando está verde (ou `HIGH`), o guarda de trânsito (a estrutura `if`) permite que os carros (neste caso, certos comandos) passem. Quando está vermelho (ou `LOW`), o guarda direciona o tráfego para outra direção (o bloco `else`). Vamos olhar juntos cada trecho de código:
if(digitalRead(BOTAO) == HIGH) {
Aqui, o programa lê o estado do pino definido pela constante `BOTAO` (pino 2) usando a função `digitalRead()`. Se o estado do pino `BOTAO` é `HIGH` (equivalente a um semáforo verde), a condição dentro do `if` é verdadeira e os comandos entre as chaves `{}` imediatamente após o `if` são executados.
Serial.println("Botão pressionado!");
digitalWrite(LED, HIGH);
Se a condição `if` é verdadeira, o programa envia a mensagem "Botão pressionado!" para o Monitor Serial e acende o LED ligando a saída `LED` em `HIGH`.
} else {
Se a condição dentro do `if` é falsa (equivalente a um semáforo vermelho), significa que o pino do botão não foi acionado, ou seja, o botão não foi pressionado. Nesse caso, o programa vai para o bloco `else` e executa os comandos entre essas chaves `{}`.
Serial.println("Botão não pressionado.");
digitalWrite(LED, LOW);
Neste bloco `else`, o programa envia a mensagem "Botão não pressionado." para o Monitor Serial e apaga o LED definindo a saída `LED` como `LOW`.
Leandro amigo, com IF e Else da pra fazer e fica mais simples e fácil.
A primeira questão não consegui executar o mesmo botão mais de uma vez com IF tive procurar solução com boolean