Criando Sons e Efeitos Visuais: C++ no Arduino
No primeiro post da nossa série, nós descobrimos como o Arduino funciona e criamos o nosso primeiro pisca-pisca de LED com C++. Agora, vamos dar o próximo passo na jornada educacional! Vamos aprender a controlar o brilho de uma luz e a criar efeitos sonoros divertidos, usando conceitos que parecem mágica, mas são pura ciência e programação.
🚨 Módulo 4: O Efeito Vaga-lume (Variáveis e Intensidade)
Conceito: Até agora, o nosso LED só sabia ficar totalmente ligado ou totalmente desligado. Mas e se quisermos que ele acenda devagar, como um vaga-lume na floresta? Para isso, precisamos usar uma Variável (que funciona como uma caixa para guardar números que mudam) e o comando de intensidade.
Comando Prático: analogWrite() e Laço For
Para mudar a força da energia, usamos um comando especial que controla o brilho em uma escala de 0 (desligado) até 255 (brilho máximo):
- int brilho = 0; ➡️ Cria uma caixa chamada "brilho" que começa valendo zero.
- analogWrite(pino, valor); ➡️ Envia uma quantidade exata de brilho para o LED.
- for(...) ➡️ O comando de repetição que faz o número dapinoxa subir ou descer passo a passo.
// O pino do LED precisa ter o símbolo (~), ex: pino 9
int ledVagalume = 9;
void setup() {
pinMode(ledVagalume, OUTPUT);
}
void loop() {
// Faz o brilho aumentar de 0 até 255
for (int brilho = 0; brilho <= 255; brilho++) {
analogWrite(ledVagalume, brilho);
delay(10); // Espera um pouquinho para vermos o efeito suave
}
// Faz o brilho diminuir de 255 até 0
for (int brilho = 255; brilho >= 0; brilho--) {
analogWrite(ledVagalume, brilho);
delay(10);
}
}
🎵 Módulo 5: Criando Sons de Videogame (O Buzzer)
Objetivo prático: Fazer um pequeno alto-falante (chamado Buzzer) apitar em tons diferentes. Vamos programar um efeito sonoro que lembra a conquista de uma moeda ou um disparo de laser de um jogo antigo.
Comando Prático: tone() e noTone()
O Arduino consegue fazer o som mudar mudando a velocidade com que ele vibra (a frequência). Tons com números menores são grossos/graves, tons com números maiores são fininhos/agudos.
- tone(pino, frequencia, duracao); ➡️ Faz o buzzer tocar uma nota musical específica por um tempo determinado.
- noTone(pino); ➡️ Garante que o som pare de tocar para não incomodar os ouvidos!
int buzzer = 8; // Conectamos o buzzer na porta 8
void setup() {
pinMode(buzzer, OUTPUT);
}
void loop() {
// Efeito 1: Som agudo de raio laser (Frequência 1500)
tone(buzzer, 1500, 200);
delay(400); // Espera um pouco em silêncio
// Efeito 2: Som de pulo de plataforma (Frequência 800)
tone(buzzer, 800, 150);
delay(600); // Espera um pouco em silêncio
}
🛠️ Desafio Criativo para a Aula
Vamos juntar o que aprendemos no post anterior
Vamos criar um sistema onde:
- SE o botão for apertado (o intruso pisou na armadilha)...
- O LED pisca bem rápido E o buzzer toca um som de sirene de polícia!
- SENÃO, tudo fica calmo e silencioso.
Comentários
Postar um comentário