ماژول اشعه فرابنفش ML8511 UV
ماژول سنسور ML8511 UV یک سنسور اندازهگیری اشعه فرابنفش (UV) است که توسط شرکت Melexis تولید میشود. .سنسور ML8511 قادر به اندازهگیری اشعه فرابنفش در بازهی طول موج 280 تا 390 نانومتر (UV-A و UV-B) است. این سنسور برای اندازهگیری نور UV و بررسی سطح نور ماوراء بنفش مناسب است و میتواند در محیطهای مختلفی مانند روبهروی آفتاب، در اتاقهای داخلی و یا در پروژههای الکترونیکی مورد استفاده قرار گیرد. این سنسور دارای خروجی آنالوگ و دیجیتال میباشد. خروجی آنالوگ، ولتاژی است که به میزان شدت اشعه UV بستگی دارد و میتوان از طریق آن اندازهگیریهای مختلفی انجام داد. همچنین، خروجی دیجیتال دارای پینهای OUTH و OUTL است که با استفاده از آن میتوان نور UV را به صورت دیجیتال اندازهگیری کرد و در صورت تجاوز از حد آستانهای که توسط کاربر تنظیم میشود، این پینها خروجی ارتفاع برقرار میکنند.
مشخصات فنی ماژول اشعه فرابنفش ML8511 UV
- ولتاژ کاری: 2.7 تا 3.6 ولت مستقیم
- دمای کاری: -20 تا +70 درجه سانتیگراد
- طول موج حساسیت بیشینه: 365 نانومتر
- ناحیه حساسیت: UV-A و UV-B
- نوع خروجی: آنالوگ
- جریان:
- حالت عملیاتی: 300 میکروآمپر
- حالت آماده به کار (استندبای): 0.1 میکروآمپر
- ابعاد: 13x11x2 میلیمتر
بررسی پایه های ماژول اشعه فرابنفش ML8511 UV
- VCC: منبع تغذیه (مثبت) - متصل به ولتاژ عملیاتی (2.7 تا 3.6 ولت DC).
- GND: زمین (منفی) - متصل به منبع زمین.
- OUT: خروجی آنالوگ - ولتاژ خروجی متناسب با شدت اشعه فرابنفش.
- OUTH: خروجی دیجیتال بالا - خروجی دیجیتال با توجه به شدت اشعه فرابنفش
- OUTL: خروجی دیجیتال پایین - خروجی دیجیتال با توجه به شدت اشعه فرابنفش
به همراه ماژول اشعه فرابنفش ML8511 UV چه اقلامی باید خریداری شود؟
- برد آردینو
- کابل فلت و برد بورد
- تغذیه
- نمایشگر
راه اندازی ماژول اشعه فرابنفش ML8511 UV با آردوینو
جهت راه اندازی ماژول اشعه فرابنفش ml8511 یک کد آردوینو نوشته شده است.ابتدا پینهای اتصال سنسور ML8511 به پینهای مشخص شده تعریف شده است. OUT پین سنسور به پین آنالوگ A0 و OUTH و OUTL به پینهای دیجیتال 3 و 2 متصل شدهاند.در بخش setup، ماژول سریال را با سرعت 9600 بیت بر ثانیه آغاز میکنیم و پینهای مربوط به OUTH و OUTL را به عنوان ورودی تنظیم میکنیم.در بخش loop، مقدار آنالوگ خوانده شده از سنسور UV به ولتاژ تبدیل میشود و سپس مقدار شدت UV بر اساس این ولتاژ محاسبه میشود. سپس بررسی میشود که آیا پین دیجیتال OUTH یا OUTL برابر با HIGH است یا خیر. اگر حد آستانهای که توسط کاربر تنظیم میشود، تجاوز شده باشد، مقدار متغیر uvExceedsThreshold برابر با true قرار میگیرد.در نهایت، مقادیر آنالوگ، ولتاژ، شدت UV و وضعیت تجاوز شدت UV آستانه به همراه نماد های فارسی مربوطه بر روی مانیتور سریال چاپ میشوند.
const int UV_SENSOR_OUT_PIN = A0; // پین آنالوگ متصل به پین OUT سنسور ML8511
const int UV_SENSOR_OUTH_PIN = 3; // پین دیجیتال متصل به پین OUTH سنسور ML8511
const int UV_SENSOR_OUTL_PIN = 2; // پین دیجیتال متصل به پین OUTL سنسور ML8511
void setup() {
Serial.begin(9600);
pinMode(UV_SENSOR_OUTH_PIN, INPUT);
pinMode(UV_SENSOR_OUTL_PIN, INPUT);
}
void loop() {
int uvAnalogValue = analogRead(UV_SENSOR_OUT_PIN); // خواندن مقدار آنالوگ از سنسور UV
int uvDigitalValue = digitalRead(UV_SENSOR_OUTH_PIN); // خواندن مقدار دیجیتال از پین OUTH
int uvDigitalValueLow = digitalRead(UV_SENSOR_OUTL_PIN); // خواندن مقدار دیجیتال از پین OUTL
// تبدیل مقدار آنالوگ به ولتاژ
float voltage = uvAnalogValue * (5.0 / 1023.0);
// محاسبه شدت UV (بر اساس کالیبرهسازی و حساسیت مورد نیاز)
float uvIntensity = voltage * 3.125;
// بررسی اینکه آیا پین دیجیتال برابر با HIGH است یا خیر تا مشخص کنیم که شدت UV آستانه مشخص شده را تجاوز کرده یا نه
bool uvExceedsThreshold = uvDigitalValue == HIGH || uvDigitalValueLow == HIGH;
// نمایش مقادیر در مانیتور سریال
Serial.print("مقدار آنالوگ UV: ");
Serial.print(uvAnalogValue);
Serial.print("\tولتاژ: ");
Serial.print(voltage);
Serial.print(" ولت\tشدت UV: ");
Serial.print(uvIntensity);
Serial.print(" میلیوات بر سانتیمتر مربع\tشدت UV آستانه را تجاوز کرده؟ ");
Serial.println(uvExceedsThreshold);
delay(1000); // انتظار ۱ ثانیه قبل از خواندن مقدار بعدی
}
راه اندازی ماژول اشعه فرابنفش ML8511 UV با میکروپایتون
جهت راه اندازی ماژول اشعه فرابنفش ml8511 یک کد میکروپایتون نوشته شده است.ابتدا در این کد، ماژولها و کتابخانههای مورد نیاز برای اتصال به میکروکنترلر، خواندن مقادیر آنالوگ و دیجیتال و زمانسنجی به عنوان import فراخوانی شدهاند.سپس پینهای اتصال سنسور ML8511 به پینهای مشخص شده تعریف شدهاند. OUT پین سنسور به پین آنالوگ 34 و OUTH و OUTL به پینهای دیجیتال 15 و 14 متصل شدهاند.تابع read_uv_intensity() برای خواندن مقادیر از سنسور UV ایجاد شده است. این تابع ابتدا مقادیر آنالوگ و دیجیتال از سنسور خوانده میشود و سپس ولتاژ و شدت UV محاسبه میشود.در حلقه اصلی (while True)، مقادیر آنالوگ، ولتاژ، شدت UV و وضعیت تجاوز شدت UV آستانه به همراه نماد های فارسی مربوطه بر روی محیط REPL چاپ میشوند.
from machine import ADC, Pin
import time
UV_SENSOR_OUT_PIN = 34 # پین آنالوگ متصل به پین OUT سنسور ML8511
UV_SENSOR_OUTH_PIN = 15 # پین دیجیتال متصل به پین OUTH سنسور ML8511
UV_SENSOR_OUTL_PIN = 14 # پین دیجیتال متصل به پین OUTL سنسور ML8511
uv_sensor_out = ADC(Pin(UV_SENSOR_OUT_PIN))
uv_sensor_outh = Pin(UV_SENSOR_OUTH_PIN, Pin.IN)
uv_sensor_outl = Pin(UV_SENSOR_OUTL_PIN, Pin.IN)
def read_uv_intensity():
uv_analog_value = uv_sensor_out.read() # خواندن مقدار آنالوگ از سنسور UV
uv_digital_value = uv_sensor_outh.value() # خواندن مقدار دیجیتال از پین OUTH
uv_digital_value_low = uv_sensor_outl.value() # خواندن مقدار دیجیتال از پین OUTL
# تبدیل مقدار آنالوگ به ولتاژ
voltage = uv_analog_value * (3.3 / 1023.0)
# محاسبه شدت UV (بر اساس کالیبرهسازی و حساسیت مورد نیاز)
uv_intensity = voltage * 3.125
# بررسی اینکه آیا پین دیجیتال OUTH یا OUTL برابر با HIGH است یا خیر
uv_exceeds_threshold = uv_digital_value or uv_digital_value_low
return uv_analog_value, voltage, uv_intensity, uv_exceeds_threshold
while True:
uv_analog, uv_voltage, uv_intensity, uv_exceeds = read_uv_intensity()
print("مقدار آنالوگ UV:", uv_analog)
print("ولتاژ:", uv_voltage, "ولت")
print("شدت UV:", uv_intensity, "میلیوات بر سانتیمتر مربع")
print("شدت UV آستانه را تجاوز کرده؟", uv_exceeds)
time.sleep(1) # انتظار ۱ ثانیه قبل از خواندن مقدار بعدی
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- سنسور نوری - Light
- تعداد قطعات
- 7 عدد
- ابعاد فیبر
- 14 * 12 میلی متر
- تعداد فیبر
- یک عدد
- سطح تجربه مورد نیاز
- نیمه حرفه ای
- ولتاژ مورد نياز
- 0.3- تا 4.6+ درجه سانتی گراد
- فیبر مدار چاپی
- فایبرگلاس دورو متالیزه
- توان
- 30 میلی وات
- دمای نگهداری
- 30- تا 85+ درجه سانتی گراد
- جریان
- 5 میلی آمپر
- چاپ مس
- دارای چاپ آبی
- تعداد پایه ها
- 5 پایه
- اقلام همراه محصول
- چهار عدد پین هدر
- پلاریته
- طبق چاپ راهنما، VIN, 3V, GND, Out, EN
- کشور سازنده
- چین
- نوع کانکتور
- پین هدر
- محدوده اندازه گیری
- 280 تا 390 نانومتر
- خروجی
- آنالوگ
- تعداد خروجی
- 1
- سایر توضیحات
- دارای پایه EN جهت فعال/غیر فعال سازی سنسور
- وضعیت مونتاژ
- آماده به استفاده
- اتصال پایه VCC ماژول تشخیص حرکت به ۵ ولت
- اتصال پایه GND ماژول تشخیص حرکت به GND تغذیه
- اتصال پایه OUT ماژول تشخیص حرکت به یک پایه مقاومت یک کیلو اهم و اتصال پایه دیگر مقاومت به پایه بیس ترانزیستور
- اتصال پایه امیتر ترانزیستور به GND
- اتصال پایه کلکتور ترانزیستور به صورت سری با یک مقاومت یک کیلو اهمی به ۵ ولت
- اتصال پایه کلکتور(به تصویر شماتیک دقت کنید) به پایه IN ماژول رله
- اتصال پایه VCC ماژول رله به ۵ ولت
- اتصال پایه GND ماژول رله به GND
بله سنسورهای PIR مدلهای SR501 و SR505 بدون استفاده از میکروکنترلر هم قابل راه اندازی هستند. کافیست قطعات زیر را تهیه کنید. این ماژول دارای یک پایه ورودی به نام IN و یا SIGNAL جهت فعال و یا غیر فعال سازی لامپ متصل به رله است. ماژول رله زمانی عملکرد صحیح خواهد داشت که ولتاژ پایه IN با ولتاژ تغذیه یکسان باشد. از آنجاییکه ولتاژ تغذیه ماژول ۵ بوده و خروجی سنسور تشخیص حرکت ۳٫۳ ولت است، لذا از یک ترانزیستور استفاده می کنیم. این ترانزیستور به شکل یک گیت NOT عمل می کند. زمانیکه ولتاژ ۳٫۳ در ورودی قرار گیرد، خروجی آن ۰ شده و زمانیکه ورودی ۰ در بیس آن قرار گیرد، خروجی ۵ ولت می شود. سپس اتصالات را طبق توضیحات زیر انجام دهید.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.