Vous êtes sur la page 1sur 3

Ligando um sensor de chuva ao Arduino

Utilize um sensor de chuva como esse da foto abaixo, para que voc consiga fechar uma
janela quando no estiver em casa ou acionar uma bomba para armazenar gua da chuva.




O sensor de chuva para Arduino um componente com duas partes : a placa do sensor,
formada por vrias trilhas resistentes oxidao, que vo detectar o nvel de lquido que est
atingindo a placa, e o mdulo com chip comparador LM393, que o responsvel por ler as
informaes desse sensor e enviar os dados pelas pinos A0 (analgico), ou D0 (digital -
valores 0 e 1).

Esse mdulo tambm tem um potencimetro para ajuste de sensibilidade, um led vermelho
para indicao deLIGADO, e um led verde que indica a transmisso de dados :


Voltando aos exemplos que eu citei no incio do post, voc pode utilizar um motor ligado
sada digital para abrir (sem chuva - nvel HIGH) ou fechar (com chuva - nvel LOW) uma janela
quando for detectada chuva, e com a sada analgica voc pode abrir uma vlvula ou acionar
uma bomba dependendo da intensidade da chuva, lendo os valores de 0 1023 fornecidos por
essa porta.

Teste o seu mdulo com apenas 3 leds e 3 resistores, montando o circuito abaixo. O mdulo
pode ser alimentado com tenses de 3.3 5 volts :

O programa de teste l as informaes do sensor e acende os leds de acordo com o nvel de
lquido detectado, testando os valores lidos em uma srie de comandos IF (SE), que podem ser
acrescentados ou alterados de acordo com o nvel de preciso desejada :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

// Programa : Teste sensor de chuva
// Autor : Arduino e Cia

int pino_d = 2; //Pino ligado ao D0 do sensor
int pino_a = A5; //Pino ligado ao A0 do sensor
int val_d = 0; //Armazena o valor lido do pino digital
int val_a = 0; //Armazena o valor lido do pino analogico

// Portas ligadas aos leds
int pino_led_verde = 5;
int pino_led_amarelo = 6;
int pino_led_vermelho = 7;

void setup()
{
// Define os pinos do sensor como entrada
pinMode(pino_d, INPUT);
pinMode(pino_a, INPUT);

// Define os pinos dos leds como saida
pinMode(pino_led_verde, OUTPUT);
pinMode(pino_led_amarelo, OUTPUT);
pinMode(pino_led_vermelho, OUTPUT);
Serial.begin(9600);
}

27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
void loop()
{
//Le e arnazena o valor do pino digital
val_d = digitalRead(pino_d);
//Le e armazena o valor do pino analogico
val_a = analogRead(pino_a);
//Envia as informacoes para o serial monitor
Serial.print("Valor digital : ");
Serial.print(val_d);
Serial.print(" - Valor analogico : ");
Serial.println(val_a);

// Acende o led de acordo com a intensidade
if (val_a >900 && val_a <1024)
{
// Acende led verde - intensidade baixa
digitalWrite(pino_led_verde, HIGH);
digitalWrite(pino_led_amarelo, LOW);
digitalWrite(pino_led_vermelho, LOW);
}
if (val_a >400 && val_a <900)
{
// Acende led amarelo - intensidade moderada
digitalWrite(pino_led_verde, LOW);
digitalWrite(pino_led_amarelo, HIGH);
digitalWrite(pino_led_vermelho, LOW);
}
if (val_a > 0 && val_a <400)
{
// Acende led vermelho - intensidade alta
digitalWrite(pino_led_verde, LOW);
digitalWrite(pino_led_amarelo, LOW);
digitalWrite(pino_led_vermelho, HIGH);
}
delay(1000);
}

Caso voc queira testar apenas o sensor, sem montar todo o circuito, os valores tambm so
exibidos no serial monitor :

Vous aimerez peut-être aussi