ارسال سفارشات بالای 1.900 هزار تومان رایگان میباشد

‫ماژول و سنسور مقاومتی تشخیص باران

آشنایی با ماژول

‫این ماژول بر مبنای اختلاف مقاومت الکتریکی صفحه الکترود کار میکند. ‫
‫جریان ضعیفی بین پایه های الکترود برقرار شده و با اندازه گیری جریان عبوری از طریق پین AO میتوان میزان بارش باران را اندازه گرفت. ‫
‫همچنین با تنظیم پتانسیومتر روی ماژول میتوان خروجی دیجیتال ماژول را طوری تنظیم کرد که اگر میزان قطرات باران از حدی تجاوز کند خروجی DO فعال شود. ‫
‫ماژول با ولتاژ 3.3 الی 5 ولت کار میکند و کار با آن بسیار آسان است

اتصالات ماژول

‫در اینجا از این ماژول جهت اندازه گیری میزان باران استفاده میکنیم ‫
‫برای این کار مانند شکل زیر ماژول را به میکرو کنترولر متصل می کنیم ‫
‫برای محاسبه میزان باران به پین AO نیاز داریم که آن را به A1 میکرو کنترولر متصل کرده ایم. ‫
‫ با ریختن قطرات باران بر روی صفحه الکترود ، مقاومت آن کم میشود. هرچه تعداد قطرات بیشتر باشد یعنی شدت باران بیشتر است. ‫
‫نکته قابل توجه این است که برای محاسبه شدت باران باید مقدار تغییرات مقاومتی الکترود را در واحد زمان اندازه گیری کنید. ‫
‫هر چه باران با سرعت بیشتری ببارد الکترود زودتر خیس می شود. ‫
‫از آنجا که ماژول را با 5 ولت راه اندازی کرده ایم نیازی به استفاده از AREF نیست. ‫
‫مجموعه این مدار و تکه برنامه کوچکی که آورده ایم قادر به نمایش شدت باران بر روی پنجره سریال می باشند ‫

شرایط کار

‫یک لیوان خاک خشک آماده کنید. ‫
‫الکترود ماژول را درون آن قرار دهید و نتیجه را بر روی پنجره سریال ببینید ‫
‫حالا به تدریج آب به داخل خاک اضافه کنید و و متوجه تغییرات خواهید شد

کد آردواینو برای تست ماژول

int rainSensePin= 0; // analog pin 0 - sensor i/p
int alertPin= 8; // digital pin 8 - alert o/p
int curCounter= 0; // current counter - goes up by 1 every second while sensing

void setup(){
Serial.begin(9600);
pinMode(alertPin, OUTPUT);
pinMode(rainSensePin, INPUT);
}
void loop(){
int rainSenseReading = analogRead(rainSensePin);
Serial.println(rainSenseReading); // use this for serial monitoring if available
delay(250); // relax
// check to see how long it is raining at the threshold level
// rain strength value from 0 - 1023
// heavy rain -to- no rain.
if (curCounter >= 30){ // end of the time delay
digitalWrite(alertPin, HIGH); //raise an alert after x time
}

// If raining is continuing for x amount of time raise an alert
// When raining is no longer detected, reset the counter
if (rainSenseReading <300){ // while raining at threshold level - see text
curCounter++; // increment sensing counter
}
else if (rainSenseReading >300) { // if not raining at threshold level
digitalWrite(alertPin, LOW); // don't raise an alert
curCounter = 0; // reset the counter to 0
}
delay(1000);
}

  • جدید ترین
    • جدید ترین
    • موضوع
    • نام
    • 8
    • 24
    • 48
    • 96
    • 120
    120 تعداد نمایش
  • جدید ترین
    • جدید ترین
    • موضوع
    • نام
  • تعداد نمایش 6
    • 8
    • 24
    • 48
    • 96
    • 120