Hướng dẫn đọc cảm biến mưa với Arduino – Rain Sensor

Giới thiệu cảm biến mưa

Cảm biến mưa (Rain sensor) là loại cảm biến được dùng để phát hiện mưa hoặc nước.

Module cảm biến mưa gồm có 2 phần: Mạch cảm biến mưa và mạch điều chỉnh độ nhạy. Trên mạch điều chỉnh độ nhạy có chiết áp dùng để điều chỉnh độ nhạy đầu ra kỹ thuật số D0. Nó có một đèn led nguồn, sáng lên mỗi khi module cảm biến được bật và một led đầu ra kỹ thuật số D0.

Mô tả hoạt động

Module cảm biến mưa hoạt động bằng cách so sánh hiệu điện thế của mạch cảm biến nằm ngoài trời với giá trị định trước (giá trị này thay đổi được thông qua 1 chiếc áp màu xanh) từ đó phát ra tín hiệu đóng / ngắt rơ le qua chân D0.

Về cơ bản, điện trở của mạch cảm biến mưa thay đổi theo lượng nước trên bề mặt của nó.

Khi trên bề mặt mạch cảm biến:

  • Ướt: điện trở tăng và điện áp đầu ra giảm.
  • Khô: điện trở giảm và điện áp đầu ra tăng.

Thông số kỹ thuật cần quan tâm

  • Điện áp: 5V
  • Led báo nguồn ( Màu xanh)
  • Led cảnh báo mưa ( Màu đỏ)
  • Có 2 dạng tín hiệu: Analog( AO) và Digital (DO)
  • Dạng tín hiệu : TTL, đầu ra 100mA ( Có thể sử dụng trực tiếp Relay, Còi công suất nhỏ…)
  • Điều chỉnh độ nhạy bằng biến trở.
  • Sử dụng LM358 để chuyển AO –> DOM

Cách sử dụng module cảm biến mưa

  • VCC nối nguồn 5V
  • GND nối vào chân GND
  • DO: Đầu ra ở mức cao (1), khi có nước đèn đỏ sáng, đồng thời đầu ra về mức thấp (0). Có thể xử dụng để ĐK relay, Còi..Hoặc đưa vào chân I/O của VĐK.
  • AO: Dùng để xác định độ lớn của giọt nước, bằng cách đưa vào ADC của VĐK.
  • Điều chỉnh độ nhạy bằng biến trở.

Module cảm biến mưa với Arduino

Sơ đồ kết nối chân

Module cảm biến mưaArduino
VCC5V
GNDGND
D0D8

Sơ đồ lắp mạch

đọc cảm biến mưa với Arduino

Chương trình Arduino

Viết chương trình Arduino đọc tín hiệu cảm biến mưa ở chân digital 6, và in ra màn hình serial “Khong mua” và “Dang mua” tùy thuộc vào giá trị đọc được. Nếu trời đang mưa thì bật đèn led trên chân số 13.

int led = 13;
int rainSensor = 6; // Chân tín hiệu cảm biến mưa ở chân digital 6 (arduino)
void setup() {
pinMode(led,OUTPUT);
pinMode(rainSensor,INPUT);// Đặt chân cảm biến mưa là INPUT, vì tín hiệu sẽ được truyền đến cho Arduino
Serial.begin(9600);// Khởi động Serial ở baudrate 9600
Serial.println("Da khoi dong xong");
}

void loop() {
int value = digitalRead(rainSensor);//Đọc tín hiệu cảm biến mưa
if (value == HIGH) { // Cảm biến đang không mưa
digitalWrite(led,LOW);
Serial.println("Dang khong mua");
} else {
digitalWrite(led,HIGH);
Serial.println("Dang mua");
}
delay(1000); // Đợi 1 tí cho lần kiểm tra tiếp theo. Bạn hãy tham khảo bài "Viết chương trình không dùng làm delay" trên Arduino.VN để kết hợp đoạn code này và cả chương trình của bạn
}

Download file

Source code Datasheet

Bài viết các bạn có thể tham khảo:

Viết một bình luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.