این ماژول یک سنسور بسیار ساده مقاومتی است که متناسب با سطح مایعی که آن را در بر گرفته به شما یک سیگنال آنالوگ میدهد
یک دیود برای نمایش روشن بودن ماژول در آن قرار دارد
الکترود این سنسور به دلیل تماس مستقیم با مایعات از عمر مفید محدودی برخوردار است
از این سنسور نباید برای مایعات قابل اشتعال استفاده شود
// Sensor pins
#define sensorPower 7
#define sensorPin A0
// Value for storing water level
int val = 0;
void setup() {
// Set D7 as an OUTPUT
pinMode(sensorPower, OUTPUT);
// Set to LOW so no power flows through the sensor
digitalWrite(sensorPower, LOW);
Serial.begin(9600);
}
void loop() {
//get the reading from the function below and print it
int level = readSensor();
Serial.print("Water level: ");
Serial.println(level);
delay(1000);
}
//This is a function used to get the reading
int readSensor() {
digitalWrite(sensorPower, HIGH); // Turn the sensor ON
delay(10); // wait 10 milliseconds
val = analogRead(sensorPin); // Read the analog value form sensor
digitalWrite(sensorPower, LOW); // Turn the sensor OFF
return val; // send current reading
}
این ماژول بر مبنای اختلاف مقاومت الکتریکی الکترود آن کار میکند.
جریان ضعیفی بین پایه های الکترود برقرار شده و با اندازه گیری جریان عبوری از طریق پین AO میتوان سطح مایعات را اندازه گرفت.
هر قدر سطح بیشتری از الکترود در مایع قرار بگیرد مفاومت الکترود کم میشود.
ماژول با ولتاژ 3.3 الی 5 ولت کار میکند و کار با آن بسیار آسان است
مانند شکل زیر پینهای ماژول را به میکرو کنترولر متصل می کنیم
برای محاسبه سطح آب به پین AO نیاز داریم که آن را به A5 میکرو کنترولر متصل کرده ایم.
از آنجا که ماژول را با 5 ولت راه اندازی کرده ایم نیازی به استفاده از AREF نیست.
مجموعه این مدار و تکه برنامه کوچکی که آورده ایم قادر به نمایش میزان سطح آب بر روی پنجره سریال می باشند
یک لیوان با کمی آب آماده کنید.
الکترود ماژول را درون آن قرار دهید و نتیجه را بر روی پنجره سریال ببینید
حالا به تدریج آب به داخل لیوان اضافه کنید و و متوجه تغییرات خواهید شد