Аналоговий датчик вологості грунту
Аналоговий датчик вологості грунту підходить для створення систем автоматичного поливу рослин - незамінний помічник, як для догляду за кімнатними рослинами, так і на городі.
Зміст
Загальні відомості
Чим вище вологість грунту, тим вище її електропровідність. Датчик занурюється в грунт на відстань до 45 мм і вимірює електропровідність грунту між своїми контактами. Напруга на виході датчика прямопропорційна рівню виміряної електропровідності. Чим вище вологість грунту, тим вище рівень сигналу на виході датчика.
З графіка видно, що електропровідність грунту, а отже і вихідний сигнал датчика має флуктуації (хаотичні відхилення від середнього значення). Рівень сигналу на виході датчика лежить в діапазоні від 0 В до 4,5 В.
Підключення
Вихід датчика підключається до будь-якого аналогового входу Arduino.
Живлення
Вхідна напруга живлення 5В або 3,3В постійного струму, подається на виходи Vcc (V) і GND (G) датчика. Датчик можна підключити до постійного живлення (тип підключення 1), а можна управляти живленням датчика (тип підключення 2) якщо подавати живлення на датчик з будь-якого інформаційного виведення, тоді функцією digitalWrite () можна включати або вимикати датчик. Живлення датчика від інформаційного виведення (тип підключення 2) можливий завдяки низькому енергоспоживанню датчика (споживаний струм <4,5мА), що в рази менше ніж у аналогічних датчиків вологості грунту.
Зчитування данних з датчика
Показання датчика зчитуються викликом функції analogRead (номер_виходу); яка повертає число від 0 до 1023 (див. графік).
Приклад зчитування показань датчика з керованим харчуванням (тип підключення 2), датчик живиться від висновків A0 і A1. Якщо датчик підключений до постійного харчування (тип підключення 1), то рядки з символом *, можна видалити.
const uint8_t pinSensor = A2; const uint8_t pinVcc = A1; * const uint8_t pinGND = A0; *
Serial.begin(9600); pinMode (pinVcc, OUTPUT); * pinMode (pinGND, OUTPUT); * digitalWrite(pinVcc, LOW ); * digitalWrite(pinGND, LOW ); *
} void loop(){
digitalWrite(pinVcc, HIGH ); * Serial.println(analogRead(pinSensor)); digitalWrite(pinVcc, LOW ); * delay(5000);
}
Для компенсації впливу флуктуацій електропровідності грунту, можна зчитувати середні показання датчика.
const uint8_t pinSensor = A0;
uint16_t arrMoisture[10]; uint16_t valMoisture;
void setup(){
Serial.begin(9600);
} void loop(){
valMoisture=0; for(int i=0; i< 9; i++){ arrMoisture[i]=arrMoisture[i+1]; } arrMoisture[9]=analogRead(pinSensor); for(int i=0; i<=9; i++){ valMoisture+=arrMoisture[i]; } valMoisture/=10; Serial.println(valMoisture);
}
Специфікація
• Напруга живлення Vcc: 5В або 3,3В • Напруга на виході датчика: 0 ... 4,5В • Максимальний споживаний струм: <4,5 мА, при Vcc = 5В і датчик занурений в грунтову воду. • Струм: I = Us / 1000, де Us - напруга на виході Signal (S) датчика • Глибина занурення в грунт: 45 мм • Робоча температура: 4 ... 85 ° С • Габарити: 65х22х7 мм (з врахуванням колодки виходів) • Вага: 1 г
Примітка
На показання датчика впливають такі чинники:
• ступінь занурення датчика в грунт (чим глибше занурений датчик, тим вище показання датчика) • тип ґрунту, його хімічні і фізичні властивості (чим щільніше грунт, тим вище показання датчика) • наявність і кількість домішок у воді, якою поливається грунт.