این سنسور برای اندازه گیری میزان آلودگی هوا استفاده میشود.اساس عملکرد این سنسور شمارش ذرات موجود در هوامی باشد.این سنسور بدین گونه عمل میکند که با استفاده از یک led که به صورت inferared عمل میکند ذرات موجود در هوا را قابل شناسایی میکند و با کمک یک detector داخلی تعداد ذرات شمارش میشود.در این سنسور دو پایه خروجی وجود دارد .یکی ازپایه ها (vout1) قابل تنظیم و تغییر حساسیت نیست و بر اساس تنظیمات کارخانه ای عمل میکند.پایه دوم خروجی توسط پایه کنترلی (پین 1) قابل کنترل می باشد.برای این کار کافی است یک مقاومت که اندازه آن درجه حساسیت را معلوم میکند به زمین وصل کنیم . حساسیت پایه vout1 در حدود 2.5 برابرپایه vout2 می باشد.در این سنسور یک heater داخلی هم تعبیه شده است.
![برای دیدن سایز بزرگ روی عکس کلیک کنید
نام: DSM501-fine-dust-sensor_big.jpg
مشاهده: 116
حجم: 44.1 کیلو بایت](http://forum.arduino.ir/attachment.php?attachmentid=968&d=1402924037&thumb=1)
از جمله خصوصیات این سنسور میتوان به موارد زیر شاره کرد:
خروجی PWM
• ولتاژ تغذیه: 5V±10%
• توان مصرفی: 90mA
• محدوده دمایی : -10~ +65℃
• محدوده رطوبت: 95%RH
• ابعاد : W59 * H45 * D20 (mm)
• ابعاد کوچکترین ذره قابل شناسایی : حدودا0.1µm
• حداقل چگالی قابل شناسایی برای محیط : 0 ~ 1.4㎎/㎥
• زمان لازم برای پایستاری سنسور : یک دقیقه بعد از اتصال منبع تغذیه
مثال:
خواندن اطلاعات سنسور توسط آردویینو
![برای دیدن سایز بزرگ روی عکس کلیک کنید
نام: Dust sensor DSM501_bb.jpg
مشاهده: 140
حجم: 83.9 کیلو بایت](http://forum.arduino.ir/attachment.php?attachmentid=967&d=1402923901&thumb=1)
کد:
#include<string.h>
byte buff[2];
int pin = 8;//DSM501A input D8
unsigned long duration;
unsigned long starttime;
unsigned long endtime;
unsigned long sampletime_ms = 30000;
unsigned long lowpulseoccupancy = 0;
float ratio = 0;
float concentration = 0;
int i=0;
void setup()
{
Serial.begin(9600);
pinMode(8,INPUT);
starttime = millis();
}
void loop()
{
duration = pulseIn(pin, LOW);
lowpulseoccupancy += duration;
endtime = millis();
if ((endtime-starttime) > sampletime_ms)
{
ratio = (lowpulseoccupancy-endtime+starttime + sampletime_ms)/(sampletime_ms*10.0); // Integer percentage 0=>100
concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve
Serial.print("lowpulseoccupancy:");
Serial.print(lowpulseoccupancy);
Serial.print("\n");
Serial.print("ratio:");
Serial.print("\n");
Serial.print(ratio);
Serial.print("DSM501A:");
Serial.println(concentration);
Serial.print(";\n\n");
lowpulseoccupancy = 0;
starttime = millis();
}
}
مرجع:
Use Dust Sensor DSM501 with Arduino | LinkSprite Learning Center
جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.