در این قسمت میخوایم راه اندازی ldr با آردوینو را کار کنیم و یا بطور ساده تر یه LDRرو به ورودی آنالوگ آردوینو وصل کنیم و با خوندن مقدار اون سه تا ال ای دی روشن بشن . خب برای وصل کردن سنسور فتوسل یا همون LDRبه پایه آنالوگ آردوینو باید اون رو با یک مقاومت 10 کیلو سری کنین . مثل شکل زیر:
عکس زیر هم که خیلی ساده هست :
خب همونطور که میدونین فتوسل یک مقاومت متغییر نسبت به نور هست
یعنی هر چی نور بیشتر باشه مقاومت اون کمتره و هر چی تاریک تر باشه مقاومت بیشتر.
وقتی فتوسل رو که با یک مقاومت ده کیلو سری میکنید یک تقسیم ولتاژ مقاومتی رو تشکیل میدین که هر چی تاریک تر میشه ولتاژ دو سر فتوسل بیشتر میشه
خب ما از این خصوصیت میایم تو آردوینو استفاده میکنیم و میزان روشنایی رو با سه عدد ال ای دی نمایش میدیم
مدار رو مانند شکل زیر ببندین
خب میرسیم به برنامه نویسی آردوینو
int ledPin1 = 2; // LED 1 int ledPin2 = 3; // LED 2 int ledPin3 = 4; // LED 3 int photocellPin = A0; int photocellReading; void setup(void) { // برای اینکه مقدار خوانده شده آنالوگ را ببینیم از سریال مانیتور استفاده میکنیم Serial.begin(9600); pinMode(ledPin1, OUTPUT); // Set LED 1 to be Output خروجی قرار دادن ال ای دی ها pinMode(ledPin2, OUTPUT); // Set LED 2 to be Output pinMode(ledPin3, OUTPUT); // Set LED 3 to be Output } void loop(void) { photocellReading = analogRead(photocellPin); // مقدار خوانده شده آنالوگ را درون متغییر میریزد Serial.print("Analog reading = "); Serial.print(photocellReading); // مقدار آنالوگ را در سریال مانیتور نشان میدهد // if (photocellReading < 150) { Serial.println(" - Dark"); digitalWrite(ledPin1,HIGH); digitalWrite(ledPin2,LOW); digitalWrite(ledPin3,LOW); } else if (photocellReading < 550) { Serial.println(" - Light"); digitalWrite(ledPin2,HIGH); digitalWrite(ledPin1,LOW); digitalWrite(ledPin3,LOW); } else if (photocellReading < 900) { Serial.println(" - Bright"); digitalWrite(ledPin3,HIGH); digitalWrite(ledPin1,LOW); digitalWrite(ledPin2,LOW); } else { Serial.println(" - Very bright");} //delay(1000); } //Melec.ir
خب در مورد قسمت اصلی برنامه که از دستور if استفاده شده باید بگم که اول اومدم گفتم اگر مقدار آنالوگ از 150 کمتر بود ال ای دیه اول رو روشن کن و بقیه رو خاموش کن
اگه از 550 کمتر بود ال ای دیه شماره 2 رو روشن کن و بقیه رو خاموش کن
و اگه از 900 کمتر بود ال ای دیه شماره 3 رو روشن کن و بقیه رو خاموش کن
مقدار آنالوگ هم توی جلسه قبل گفتم که از 0 تا 1023 هست . و شما میتونین با باز کردن سریال مانیتور مقدار رو ببینین
مداری که خودم روی برد بورد بستم
حالا میخوام بگم کاربرد این مدار چیه : مثلا میشه ازش واسه روشن کردن اتوماتیک یک وسیله الکتریکی متاسب با نور محیط استفاده کرد . (با استفاده یک رله به جای ال ای دی ها ). یا میشه ربات تعقیب کننده نور ساخت و…
اگر هر سوالی داشتین در قسمت نظرات مطرح کنین .
مرسی از اینکه به این مطلب راه اندازی ldr با آردوینو توجه کردین.
آموزش های آردوینو را در اینجا بخوانید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
این کدی که گذاشتین کامپایل میکنم ارور میده
سلام، الان با ورزن 1.8.5 تست کردم هیچ خطایی نداد. خواهشا متن خطا را هم بفرستید.
فوتوسل استفاده شده باید از کدوم نوع باشه؟ و اینکه ال ای دی با مقاومت چنداهمی تو مدار سری شده
سلام، فتوسل خاصی نیست و توی بازار بگین فتوسل یا اگر آنلاین خرید میکنید بزنید فتوسل میتونید ببا شکلش تشخیص بدید و تفاوت چندانی ندارن فقط در مقدار اهمی که 10 کیلواهم بگیرید خوبه. مقاومت های سری شده با ال ای دی ها هم میتونن از 220 اهم تا 1000 اهم باشن ولی اگر خیلی حرفه ای میخواهید نگاه کنید به داستان میتونید بشینید و حساب کتاب کند نسبت به برد آردوینو ای که دارید و ال ای دی که استفاده میکنید. ولی در این نوع پروژه ها زیاد حساسیت به خروج ندید هم مشکلی پیش نمیاد. ولی گفتم محسابه داره، فردا جایی نگین گفتم مهم نیست 🙂
با سلام.
بنده احتیاج دارم که سیگنالی که از فوتوسل ایجاد میشه رو در فواصل زمانی ثابت روی سیستمم ذخیره کنم.(مثل کاری که دیتا لاگر انجام میده) میشه من رو راهنمایی کنید که چطور میشه این کار رو کرد
؟
سلام، یک پروژه دیتالاگر آقای کوهی در وبسایت گذاشتن اونو ببینید احتمالا کارتون راه بیافته.
پروژه طراحی و ساخت دیتالاگر با آردوینو
ولی داستان خیلی ساده است شما با آردوینو اطلاعات سنسور فتوسل را میگیرین ( با استفاده از ADC میکروکنترلر یا آردوینو ) و با پورت سریال میفرستین کامپیوتر و اونجا یک نرم افزار سبک مینوسین و یا از نرم افزار های موجود استفاده میکنین و اطلاعات دریافتی را در یک فایل ذخیره میکنید. برای هر روز یا ساعت ( نسبت به حجم اطلاعات ) یک فایل جدید ایجاد کنید که حجم فایل خیلی بالا نره…بازم سوالی در مورد هر مرحله داشتین بپرسین.
سلام،و ممنون از آموزش هاتون
من یک پایه از سنسور رو به A5 و پایه دیگر رو به 5V وصل کردم اتفاقی که افتاد این بود :
1023
1023
1023
1023
تمام مدت روشنایی را 100 درصد نشان میداد در حالی که اتاق کاملاً تاریک بود.(حالات دیگر را هم امتحان کردم و بدون تغیر بود)
ولی وقتی که به 3.3V متصل کردم تمام مدت عدد 740 رو نمایش میداد و تقیر نمیکرد
لطفاً به مشکل من هم برسید ممنون
سلام، من کلا مدار رو با یک ال ای دی بستم. الان فتوسل رو نصب کردم ولی مقدار analogRead همش 1023 هستش و هیچ تغییری هم نمی کنه (10 تا مقاومت 1 کیلو اهم برای فتوسل سری کردم چون حال نداشتم برم از بیرون بخرم)
سلام اشکان جان با یک مقاومت متغیر یک ورودی به ADC بده ببین کلا تغییر میکنه یا نه.
سلام اگه بخوام برنامه ام جوری باشه که با کوچک شدن عدد ldr نور الی ای دی کم بشه و با بزرگتر شدن عدد ldr نور ال ای دی بیشتر بشه باید برنامه ام چجوری باشه؟؟
(فقط از یک ال ای دی استفاده میکنم)
سلام،وقتتون بخیر،ممنون میشم برا ساخت ربات دنبالگر خورشیدی دقیق با استفاده از فوتوسل و برد اردوینو uno و عملگرهای سروو موتور یا استپر موتور راهنماییم کنید
دستتون درد نکنه کارم راه افتاد.
داشتم یه پروژه با آردوینو انجام میدادم.