آموزش راه‌اندازی ماژول سنسور ماورای بنفش ML8511 با آردوینو

فهرست مطالب

ویژگی های ماژول سنسور ماورای بنفش ML8511

بسیاری از لوازم الکتریکی، همچون نمایشگرهای رایانه، نمایشگرهای گوشی همراه، تلویزیون و … از منابع تولید کننده اشعه ماورای بنفش هستند. تابش اشعه ماورای بنفش به انسان می‌تواند باعث بروز بسیاری از بیماری‌ها و سوختگی‌های پوستی شود. به همین جهت، اطلاع از میزان نور UV محیط حائز اهمیت است. از ماژول سنسور ماورای بنفش ML8511 می‌­توان برای محاسبه‌ شدت نور UV موجود در محیط استفاده کرد. استفاده بسیار ساده این سنسور از دلایل محبوبیت آن است. این سنسور یک خروجی آنالوگ دارد که ولتاژ آن به صورت خطی با میزان شدت نور ماورای بنفش موجود در محیط تغییر می‌کند.

معرفی پایه های (Pinout) ماژول سنسور ماورای بنفش ML8511

ماژول سنسور ماورای بنفش ML8511 دارای 4 پایه به شرح زیر است:

  • EN: فعال‌سازی سنسور (اصطلاحا Active High است و برای فعال بودن سنسور، باید به VCC وصل باشد.)
  • OUT: خروجی آنالوگ
  • GND: زمین
  • VCC: تغذیه ماژول – 3.3 ولت

پین اوت (Pinout) این ماژول را می‌توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

برد آردوینو UNO R3 × 1
ماژول سنسور ماورای بنفش ML8511 × 1
سیم جامپر نری به مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول سنسور ماورای بنفش ML8511 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر ماژول را به آردوینو وصل کنید.

گام دوم: کد

کد زیر را روی آردوینوی خود آپلود کنید. پس از آپلود کد، پنجره Serial Monitor را باز کنید.

/*
  Made on Mar 15, 2021
  By MehranMaleki @ Electropeak
  
Home
*/ //pin definitions int UV_OUT = A0; //Sensor Output int REF_3V3 = A1; //3.3V power on the Arduino board void setup() { Serial.begin(9600); Serial.println("ML8511 example"); } void loop() { int uv_Level = analogRead_average(UV_OUT); int ref_Level = analogRead_average(REF_3V3); //Use the 3.3V power pin as a reference to get a very accurate output value from sensor float output_Voltage = 3.3 / ref_Level * uv_Level; float uvIntensity = mapfloat(output_Voltage, 0.99, 2.8, 0.0, 15.0); //Convert the voltage to a UV intensity level -numbers from datasheet- Serial.print("ML8511 output: "); Serial.print(uv_Level); Serial.print(" / ML8511 voltage: "); Serial.print(output_Voltage); Serial.print(" / UV Intensity (mW/cm^2): "); Serial.print(uvIntensity); Serial.println(); delay(500); } //Takes an average of readings on a given pin //Returns the average int analogRead_average(int pinToRead) { int NumberOfSamples = 8; int runningValue = 0; for(int x = 0; x < NumberOfSamples; x++) runningValue += analogRead(pinToRead); runningValue /= NumberOfSamples; return(runningValue); } //The Arduino Map function but for floats //From: http://forum.arduino.cc/index.php?topic=3922.0 float mapfloat(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

در کد بالا از پایه A0 آردوینو برای دریافت اطلاعات خروجی آنالوگ سنسور استفاده کرده­‌ایم. همچنین پایه A1 را نیز به تغذیه 3.3 ولت وصل کرده‌ و از آن به عنوان رفرنس برای اندازه‌گیری دقیق ولتاژ خروجی سنسور استفاده می‌کنیم. در این کد با اندازه‌گیری ولتاژ خروجی سنسور، میزان شدت نور ماورای بنفش را بر حسب میلی‌وات بر سانتی‌متر مربع (mW/cm2) محاسبه می‌کنیم.

در ادامه، با روشن کردن چراغ‌قوه گوشی و نزدیک کردن نور آن به سنسور، عملکرد آن را مشاهده می­‌کنیم.

خروجی کد به شکل زیر است.

آموزش های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.