Arduino Cảm biến mưa Đèn LED
Chúng ta sẽ học cách làm thế nào để:
- Nếu phát hiện mưa, bật đèn LED
- Nếu không phát hiện mưa, tắt đèn LED
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | cảm biến mưa | ||
| 1 | × | LED Kit | ||
| 1 | × | LED (red) | ||
| 1 | × | LED Module | ||
| 1 | × | 220Ω Resistor | ||
| 1 | × | breadboard | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về đèn LED và cảm biến mưa
Nếu bạn chưa biết về LED và cảm biến mưa (bố trí các chân, cách chúng hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các bài hướng dẫn dưới đây:
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Mã Arduino
/*
* Mã Arduino này được phát triển bởi newbiely.vn
* Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc.
* Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập:
* https://newbiely.vn/tutorials/arduino/arduino-rain-sensor-led
*/
#define RAIN_SENSOR_PIN A0 // Arduino pin connected to the OUTPUT pin of rain sensor
#define LED_PIN 7 // Arduino pin connected to LED's pin
int rain_state = LOW; // current state of rain sensor's pin
int prev_rain_state = LOW; // previous state of rain sensor's pin
void setup() {
Serial.begin(9600); // initialize serial
pinMode(RAIN_SENSOR_PIN, INPUT); // set arduino pin to input mode
pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode
}
void loop() {
prev_rain_state = rain_state; // store old state
rain_state = digitalRead(RAIN_SENSOR_PIN); // read new state
if (prev_rain_state == LOW && rain_state == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Rain detected!");
digitalWrite(LED_PIN, HIGH); // turn on
}
else
if (prev_rain_state == HIGH && rain_state == LOW) { // pin state change: HIGH -> LOW
Serial.println("Rain stopped!");
digitalWrite(LED_PIN, LOW); // turn off
}
}
Hướng dẫn từng bước
- Kết nối Arduino với PC bằng cáp USB
- Mở Arduino IDE, chọn board và cổng đúng
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn nút Tải lên trên Arduino IDE để tải mã lên Arduino

- Di chuyển tay bạn trước cảm biến
- Quan sát sự thay đổi trạng thái của đèn LED
Giải thích mã nguồn
Đọc lời giải thích từng dòng trong các dòng chú thích của mã nguồn!
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.