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

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

  1. 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.)

  2. 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:

cpp
Copy
Download
#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 pin

Servo servo; // create servo object to control a servo

// variables will change:
int angle = 0;          // the current angle of servo motor
int prev_rain_state;    // the previous state of rain sensor
int rain_state; // the current state of rain sensor

void setup() {
  Serial.begin(9600);                // initialize serial
  pinMode(RAIN_SENSOR_PIN, INPUT); // set arduino pin to input mode
  servo.attach(SERVO_PIN);           // attaches the servo on pin 9 to the servo object

  servo.write(angle);
  rain_state = digitalRead(RAIN_SENSOR_PIN);
}

void loop() {
  prev_rain_state = rain_state;             // save the last state
  rain_state = digitalRead(RAIN_SENSOR_PIN); // read new state

  if (rain_state == LOW && prev_rain_state == HIGH) { // pin state change: LOW -> HIGH
    Serial.println("Rain detected!");
    servo.write(90);
  }
  else
  if (rain_state == HIGH && prev_rain_state == LOW) { // pin state change: HIGH -> LOW
    Serial.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

Postagens mais visitadas