🌞 سنسور نور LDR (فتورزیستور) (Photoresistor (LDR))
| اسم انگلیسی | Photoresistor (LDR) |
|---|---|
| در ووکوی (Wokwi) | wokwi-photoresistor-sensor |
| دسته | 🌡️ سنسورها |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
سنسور نور LDR یا فتورزیستور (Photoresistor) مقاومتی است که با نور عوض میشود: در روشنایی مقاومتش کم است و در تاریکی خیلی زیاد. ارزان، ساده و بیقطبیت است و برای چراغ شب خودکار، ربات دنبالکنندهی نور، ردیاب خورشید یا تشخیص باز شدن در کمد کافی است. نکتهی مهم اینجاست که LDR را به دو شکل میبینی: خام با دو پایه، و ماژول با سه یا چهار پایه. ووکوی نسخهی ماژولی را دارد و این دو کمی فرق دارند. آموزش کامل کار با آن در سنسور نور LDR با آردوینو هست؛ این صفحه روی خود قطعه تمرکز دارد.
سنسور نور در ووکوی (Wokwi)
شناسهی قطعه wokwi-photoresistor-sensor است: یک ماژول با چهار پایهی VCC، GND، AO (خروجی آنالوگ) و DO (خروجی دیجیتال). مقاومت مقسم داخل ماژول است. حین اجرا روی سنسور کلیک کن تا مقدار نور را با یک اسلایدر عوض کنی.
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-photoresistor-sensor", "id": "ldr1", "top": -120, "left": 150, "attrs": {} }
],
"connections": [
[ "ldr1:VCC", "uno:5V", "red", [] ],
[ "ldr1:GND", "uno:GND.1", "black", [] ],
[ "ldr1:AO", "uno:A0", "green", [] ],
[ "ldr1:DO", "uno:2", "blue", [] ]
]
}
| پایه در ووکوی | به کجا | توضیح |
|---|---|---|
VCC | uno:5V | تغذیهی ماژول |
GND | uno:GND.1 | زمین |
AO | uno:A0 | ولتاژ متناسب با نور؛ با analogRead |
DO | uno:2 (اختیاری) | فقط صفر یا یک، بر اساس یک آستانه |
در ماژول ووکوی، LDR سمت GND مقسم است؛ پس با تاریکتر شدن، عدد AO بالا میرود. یک بار با سریال مانیتور امتحانش کن تا جهتش دستت بیاید. در تینکرکد فارسی اما LDR خام دوپایه (A و B) هست که در هر دو مود رایگان شبیهسازی میشود و مقاومت ثابتش را خودت میگذاری؛ مثال چراغ شب یک LDR خام را با مقاومت ثابت به آردوینو بسته است.
سیمکشی با آردوینو (LDR خام)
| پایهی قطعه | وصل به |
|---|---|
| پایهی اول LDR | 5V |
| پایهی دوم LDR | A0، و از همانجا مقاومت ۱۰ کیلواهم به GND |
| LED با مقاومت ۲۲۰ اهم | پین 9 به GND |
اینجا LDR سمت 5V است، پس برعکس ماژول ووکوی، نور بیشتر یعنی عدد بیشتر. کد پایین با یک ثابت هر دو حالت را پشتیبانی میکند.
کد نمونه
// Night light with hysteresis. Raw LDR: 5V -> LDR -> A0 -> 10k -> GND (bright = high number).
// Using Wokwi's module on AO instead? Set BRIGHT_IS_HIGH to false (there dark = high number).
const bool BRIGHT_IS_HIGH = true;
const int DARK_BELOW = 300; // turn the lamp on below this light level
const int LIGHT_ABOVE = 400; // turn it off above this one (the gap is the hysteresis)
const int LAMP_PIN = 9;
bool lampOn = false;
void setup() {
pinMode(LAMP_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int raw = analogRead(A0);
int light = BRIGHT_IS_HIGH ? raw : 1023 - raw; // 0 = dark, 1023 = bright
if (!lampOn && light < DARK_BELOW) {
lampOn = true;
} else if (lampOn && light > LIGHT_ABOVE) {
lampOn = false;
}
digitalWrite(LAMP_PIN, lampOn ? HIGH : LOW);
Serial.print("light:");
Serial.println(light);
delay(100);
}
عددهای ۳۰۰ و ۴۰۰ فقط نقطهی شروعاند. اول در روشنایی و تاریکی اتاق خودت عدد light را در سریال مانیتور ببین و آستانهها را بین آن دو بگذار.
اشتباههای رایج
- LDR خام بدون مقاومت ثابت: بدون مقسم، A0 یا همیشه نزدیک ۱۰۲۳ است یا شناور؛ مقاومت ۱۰ کیلواهم را جا نینداز.
- شرط برعکس: جای LDR در مقسم جهت عدد را عوض میکند؛ ماژول ووکوی و مدار خام بالا دقیقاً برعکس هماند.
- نور چراغ روی سنسور: اگر LED چراغ شب به LDR بتابد، مدار خودش را خاموش و روشن میکند؛ سنسور را دور از چراغ و رو به نور محیط بگذار.
- انتظار سرعت زیاد: LDR چند ده میلیثانیه طول میکشد تا با نور جدید کنار بیاید؛ برای تشخیص پالسهای سریع نور مناسب نیست.
آموزشهای مرتبط
- آموزش کامل سنسور نور LDR با آردوینو
- نمودار زندهی سنسور با ESP32
- گلخانهی هوشمند با ESP32
- نمودار سریال برای دیدن تغییر نور
سؤالهای رایج
فرق LDR خام با ماژول LDR چیست؟
LDR خام فقط دو پایه دارد و خودت باید یک مقاومت ثابت کنارش بگذاری تا مقسم ولتاژ بسازی. ماژول این مقاومت را دارد و یک مقایسهگر هم برای خروجی دیجیتال DO، با پیچ تنظیم آستانه. قطعهی ووکوی از نوع ماژول است.
چرا عدد LDR من با تاریک شدن بالا میرود ولی در آموزش پایین میرفت؟
چون جای LDR در مقسم فرق دارد. اگر LDR سمت 5V باشد، نور بیشتر عدد را بالا میبرد؛ اگر سمت GND باشد، برعکس. هر دو درستاند؛ فقط شرط کدت را با سیمکشی خودت هماهنگ کن.
چراغ شب من مدام چشمک میزند، چرا؟
یا نور خود چراغ به LDR میخورد و سنسور فکر میکند هوا روشن شده، یا عدد درست حوالی آستانه بالا و پایین میرود. سنسور را از چراغ دور کن و دو آستانهی جدا برای روشن و خاموش شدن (هیسترزیس) بگذار.