Projeto Arduino: Sensor de Chuva com LEDs e Buzzer Sonoro
Projeto Arduino: Sensor de Chuva com LEDs e Buzzer Sonoro
Introdução
Vamos criar um sistema de detecção de chuva inteligente que:
Acende 3 LEDs (verde, amarelo, vermelho) conforme a intensidade da chuva
Emite sons diferentes no buzzer para cada nível
Toca uma sirene de alerta quando a chuva é intensa (LED vermelho)
Materiais Necessários
Componente | Quantidade |
---|---|
Arduino Uno | 1 |
Sensor de chuva | 1 |
Protoboard | 1 |
Jumpers | Vários |
LED verde | 1 |
LED amarelo | 1 |
LED vermelho | 1 |
Resistores 220Ω | 3 |
Buzzer ativo | 1 |
Montagem do Circuito
Conexões do Sensor de Chuva
Pino Sensor | Pino Arduino |
---|---|
VCC | 5V |
GND | GND |
DO | Digital 2 |
AO | Analógico A5 |
Conexões dos LEDs
LED | Pino Arduino | Resistor |
---|---|---|
Verde | Digital 5 | 220Ω |
Amarelo | Digital 6 | 220Ω |
Vermelho | Digital 7 | 220Ω |
Conexão do Buzzer
Buzzer | Pino Arduino |
---|---|
+ | Digital 8 |
- | GND |
Programação
// Definindo os pinosconst int sensorAnalogico = A5;const int sensorDigital = 2;const int ledVerde = 5;const int ledAmarelo = 6;const int ledVermelho = 7;const int buzzer = 8;// Variáveis para controleint ultimoNivel = -1; // Para detectar mudançasvoid setup() {pinMode(ledVerde, OUTPUT);pinMode(ledAmarelo, OUTPUT);pinMode(ledVermelho, OUTPUT);pinMode(buzzer, OUTPUT);pinMode(sensorDigital, INPUT);Serial.begin(9600);}void loop() {int leitura = analogRead(sensorAnalogico);Serial.print("Leitura: ");Serial.println(leitura);// Desliga todos os LEDsdigitalWrite(ledVerde, LOW);digitalWrite(ledAmarelo, LOW);digitalWrite(ledVermelho, LOW);// Determina o nível de chuvaint nivelAtual;if (leitura < 900 && leitura > 600) {nivelAtual = 0; // SecodigitalWrite(ledVerde, HIGH);digitalWrite(ledAmarelo, LOW);digitalWrite(ledVermelho, LOW);}else if (leitura < 600 && leitura > 400) {nivelAtual = 1; // Chuva moderadadigitalWrite(ledVerde, LOW);digitalWrite(ledAmarelo, HIGH);digitalWrite(ledVermelho, LOW);}else if (leitura < 400) {nivelAtual = 2; // Chuva fortedigitalWrite(ledVerde, LOW);digitalWrite(ledAmarelo, LOW);digitalWrite(ledVermelho, HIGH);;}// Toca sons diferentes quando muda de nívelif (nivelAtual != ultimoNivel) {noTone(buzzer); // Para o som atualswitch(nivelAtual) {case 0: // Verde - som curtotone(buzzer, 1000, 200);break;case 1: // Amarelo - som intermitentefor (int i = 0; i < 3; i++) {tone(buzzer, 1500, 100);delay(200);}break;case 2: // Vermelho - sirenefor (int i = 0; i < 5; i++) {tone(buzzer, 800, 200);delay(150);tone(buzzer, 1200, 200);delay(150);}break;}ultimoNivel = nivelAtual; // Atualiza o último nível}delay(500); // Espera meio segundo entre leituras}
Funcionamento do Sistema
Níveis de Detecção
LED Verde (0-300)
Condição: Pouca ou nenhuma chuva
Som: Bip único agudo (1000Hz)
LED Amarelo (301-700)
Condição: Chuva moderada
Som: Três bips rápidos (1500Hz)
LED Vermelho (701-1023)
Condição: Chuva intensa
Som: Sirene alternada (800-1200Hz)
Recursos Especiais
O buzzer só toca quando há mudança de nível
A sirene do nível vermelho chama atenção para perigo
Monitor Serial mostra os valores lidos para calibração
Aplicações Práticas
Alerta meteorológico caseiro
Sistema de prevenção de enchentes
Controle automático de irrigação
Projeto escolar de ciências ambientais
Comentários
Postar um comentário