Các cảm biến này có một biến trở điều chỉnh độ nhạy của đầu ra kỹ thuật số (D0), một đèn LED và một đầu ra kỹ thuật số LED, như bạn có thể nhìn thấy trong hình dưới đây.
Làm thế nào nó hoạt động?
Các điện áp đầu ra cảm biến thay đổi cho phù hợp với hàm lượng nước trong đất.
Khi đất là:
- ẩm: điện áp đầu ra giảm
- khô: điện áp đầu ra tăng
Các đầu ra có thể là một tín hiệu kỹ thuật số (D0) THẤP hoặc CAO, tùy thuộc vào hàm lượng nước. Nếu độ ẩm đất vượt quá một giá trị ngưỡng xác định trước, các mô-đun đầu ra LOW, nếu không nó ra CAO. Các giá trị ngưỡng cho tín hiệu kỹ thuật số có thể được điều chỉnh bằng cách sử dụng chiết áp.
Các đầu ra có thể là một tín hiệu tương tự và do đó bạn sẽ nhận được một giá trị giữa 0 và 1023.
Ví dụ: Soil Moisture Sensor với Arduino
Đây là một ví dụ đơn giản để bạn có thể hiểu làm thế nào bạn có thể sử dụng các cảm biến độ ẩm của đất trong các dự án của bạn với Arduino.
Trong ví dụ này, bạn sẽ đọc các giá trị đầu ra cảm biến tương tự bằng cách sử dụng Arduino và in những bài đọc trong màn hình nối tiếp Arduino IDE.
phần yêu cầu
Đối với ví dụ này, bạn sẽ cần các thành phần sau đây:
- 1x YL-69 cảm biến độ ẩm ( xem trên đây )
- 1x Arduino ( xem trên đây )
- 1x Breadboard
- 2x 220 Ohm Điện trở
- 1x LED đỏ
- 1x Đèn Xanh
- dây nhảy
Nối dây cảm biến của bạn để Arduino là khá đơn giản:
Ghim | Dây để Arduino Uno |
A0 | analog Pins |
D0 | Pins kỹ thuật số |
GND | GND |
VCC | 5V |
schematics
Để hoàn thành dự án, theo các sơ đồ:
Code
Upload the following sketch to your Arduino board:
/* All the resources for this project: https://randomnerdtutorials.com/ */ intrainPin=A0; intgreenLED=6; intredLED=7; // you can adjust the threshold value intthresholdValue=800; voidsetup(){ pinMode(rainPin,INPUT); pinMode(greenLED,OUTPUT); pinMode(redLED,OUTPUT); digitalWrite(greenLED,LOW); digitalWrite(redLED,LOW); Serial.begin(9600); } voidloop(){ // read the input on analog pin 0: intsensorValue=analogRead(rainPin); Serial.print(sensorValue); if(sensorValue<thresholdValue){ Serial.println(" - Doesn't need watering"); digitalWrite(redLED,LOW); digitalWrite(greenLED,HIGH); } else{ Serial.println(" - Time to water your plant"); digitalWrite(redLED,HIGH); digitalWrite(greenLED,LOW); } delay(500); }