Controlando um Servo Motor com Sensor de Chuva no Arduino: Aplicações Didáticas
Controlando um Servo Motor com Sensor de Chuva no Arduino: Aplicações Didáticas
Introdução
O Arduino é uma ferramenta poderosa para o aprendizado de eletrônica e programação, permitindo a integração de sensores e atuadores de forma simples e interativa. Neste artigo, vamos explorar um projeto que utiliza um sensor de chuva para controlar um servo motor, demonstrando como esse sistema pode ser aplicado em contextos educacionais.
Componentes Utilizados
Arduino Uno (ou similar)
Servo Motor (conectado na porta 9)
Sensor de Chuva (conectado na porta analógica A0)
Resistor de pull-down (se necessário)
Funcionamento do Circuito
O sensor de chuva detecta a umidade ou a presença de água e envia um sinal analógico ao Arduino. Quando a chuva é detectada (ou quando o sensor é molhado), o servo motor é acionado, movendo-se para uma posição específica (ex.: 0° para 90°).
Aplicações Práticas
Protótipos de automação residencial (fechar janelas automaticamente em dias chuvosos).
Sistemas de alerta (acionar um aviso quando começar a chover).
Agricultura inteligente (proteger plantas ou ativar irrigação conforme a umidade).
Montagem do Circuito
Sensor de Chuva:
Pino "S" (sinal) → Porta analógica A0 do Arduino.
Pino "+" → 5V do Arduino.
Pino "-" → GND.
(Se o sensor for do tipo resistivo, pode ser necessário um resistor de pull-down.)
Servo Motor:
Fio Vermelho (VCC) → 5V do Arduino.
Fio Marrom/Preto (GND) → GND.
Fio Amarelo/Laranja (Sinal PWM) → Porta 9.
Programação no Arduino
O código abaixo faz com que o servo mude de posição quando o sensor detecta chuva:
#include <Servo.h>#define RAIN_SENSOR_PIN A0 // Arduino pin connected to rain sensor's pin#define SERVO_PIN 9 // Arduino pin connected to servo motor's pinServo servo; // create servo object to control a servo// variables will change:int angle = 0; // the current angle of servo motorint prev_rain_state; // the previous state of rain sensorint rain_state; // the current state of rain sensorvoid setup() {Serial.begin(9600); // initialize serialpinMode(RAIN_SENSOR_PIN, INPUT); // set arduino pin to input modeservo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo objectservo.write(angle);rain_state = digitalRead(RAIN_SENSOR_PIN);}void loop() {prev_rain_state = rain_state; // save the last staterain_state = digitalRead(RAIN_SENSOR_PIN); // read new stateif (rain_state == LOW && prev_rain_state == HIGH) { // pin state change: LOW -> HIGHSerial.println("Rain detected!");servo.write(90);}elseif (rain_state == HIGH && prev_rain_state == LOW) { // pin state change: HIGH -> LOWSerial.println("Rain stopped!");servo.write(0);}}
Explicação do Código
Biblioteca Servo.h: Controla o servo motor.
Leitura Analógica: O sensor de chuva envia um valor que diminui quando molhado.
Limiar de Ativação (
limiarChuva
): Define o ponto em que o servo é acionado.Serial Monitor: Permite visualizar os valores do sensor para ajustes.
Aplicações Didáticas
Este projeto é ideal para ensinar conceitos importantes em eletrônica e programação, como:
1. Introdução à Leitura Analógica
Mostra como sensores analógicos funcionam (valores variam entre 0 e 1023).
Permite discutir calibração de sensores (ajustar
limiarChuva
).
2. Controle de Atuadores
Ensina como servos motores respondem a sinais PWM.
Pode ser expandido para outros atuadores (relés, LEDs, motores DC).
3. Lógica de Programação
Introduz estruturas condicionais (
if-else
).Mostra como usar monitor serial para depuração.
4. Projetos Interdisciplinares
Ciências Ambientais: Medição de umidade e impacto da chuva.
Robótica Educacional: Criar sistemas autônomos simples.
Expansões do Projeto
Para tornar o projeto mais avançado, os alunos podem:
✅ Adicionar um LED que acende quando chove.
✅ Usar um buzzer para emitir um alerta sonoro.
✅ Gravar dados em um cartão SD para análise posterior.
Conclusão
Este projeto com sensor de chuva e servo motor é uma excelente maneira de introduzir conceitos de automação, programação e eletrônica de forma prática e divertida. Ele pode ser adaptado para diferentes níveis de dificuldade, tornando-se uma ferramenta valiosa em escolas, cursos técnicos e workshops de Arduino.
Comentários
Postar um comentário