آموزش سنسور نور LDR با آردوینو؛ مدار و کد

در این آموزش سنسور نور LDR با آردوینو مقدار تقریبی روشنایی محیط را میخوانیم. LDR یا مقاومت نوری با تغییر نور، مقاومتش تغییر میکند. چون آردوینو ولتاژ را در ورودی آنالوگ میسنجد، LDR را همراه یک مقاومت ثابت به شکل تقسیم ولتاژ میبندیم. این مدار برای آزمایش و تشخیص تغییر نور مناسب است؛ مقدار خروجی بهتنهایی اندازهگیری دقیق لوکس نیست.
قطعات و سیمکشی سنسور نور LDR
به آردوینو Uno R3 یا برد مشابه، LDR، مقاومت ۱۰ کیلواهم، بردبورد و سیم رابط نیاز دارید. پیش از سیمکشی برق برد را قطع کنید. یک پایهٔ LDR را به 5V و پایهٔ دیگرش را به A0 وصل کنید. مقاومت ۱۰ کیلواهم را میان A0 و GND قرار دهید. A0 نقطهٔ مشترک LDR و مقاومت است. روی بردهای ۳٫۳ ولتی از ولتاژ تغذیهٔ متناسب با همان برد استفاده کنید و به حداکثر ولتاژ مجاز ورودی توجه کنید.
کد خواندن شدت نور
const int sensorPin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int lightValue = analogRead(sensorPin);
Serial.println(lightValue);
delay(250);
}
کد را بارگذاری کنید و مانیتور سریال را روی 9600 baud باز کنید. دست خود را روی LDR بگیرید و سپس چراغی را به آن نزدیک کنید؛ مقدار باید تغییر کند. با سیمکشی بالا، روشنتر شدن معمولاً ولتاژ A0 و عدد خواندهشده را افزایش میدهد. بازهٔ عددی وابسته به برد و شرایط نور است. اگر ترتیب LDR و مقاومت را عوض کنید، جهت تغییر عدد نیز برعکس میشود.
چرا مقاومت ۱۰ کیلواهم لازم است؟
بدون مقاومت ثابت، ورودی آنالوگ ولتاژ تعریفشدهای از تغییر مقاومت LDR به دست نمیآورد. مقدار ۱۰ کیلواهم نقطهٔ شروع مناسبی برای بسیاری از LDRهای آموزشی است، اما حساسیت مدار به مشخصات قطعه و نور محیط بستگی دارد. برای جزئیات اتصال، آموزش بردبورد و خواندن مقدار مقاومت را مرور کنید.
عیبیابی و تمرین
اگر مقدار ثابت است، بررسی کنید A0 واقعاً به نقطهٔ مشترک دو قطعه وصل شده باشد و دو سر قطعات در یک ردیف اشتباه بردبورد کوتاه نشده باشند. اگر عددها نویز دارند، اتصالات را محکم کنید و چند خواندن را میانگین بگیرید. چند مقدار در تاریکی و روشنایی یادداشت کنید و آستانهای میان آنها انتخاب کنید. برای کار با دادههای نمایش دادهشده آموزش مانیتور سریال و برای کنترل LED با خروجی PWM درس تنظیم روشنایی LED را ببینید.
منبع تکمیلی: مرجع analogRead آردوینو.