آموزش راه اندازی LDR با آردوینو

در این قسمت میخوایم راه اندازی ldr با آردوینو را کار کنیم و یا بطور ساده تر یه LDRرو به ورودی آنالوگ آردوینو وصل کنیم  و با خوندن مقدار اون سه تا ال ای دی روشن بشن . خب برای وصل کردن سنسور فتوسل یا همون LDRبه پایه آنالوگ آردوینو باید اون رو با یک مقاومت 10 کیلو سری کنین . مثل شکل زیر:

آموزش راه اندازی ldr با آردوینو

عکس زیر هم که خیلی ساده هست :

آموزش راه اندازی ldr با آردوینو

خب همونطور که میدونین فتوسل یک مقاومت متغییر نسبت به نور هست

یعنی هر چی نور بیشتر باشه مقاومت اون کمتره و هر چی تاریک تر باشه مقاومت بیشتر.

وقتی فتوسل رو که با یک مقاومت ده کیلو سری میکنید یک تقسیم ولتاژ مقاومتی رو تشکیل میدین که هر چی تاریک تر میشه ولتاژ دو سر فتوسل بیشتر میشه

خب ما از این خصوصیت میایم تو آردوینو استفاده میکنیم و میزان روشنایی رو با سه عدد ال ای دی نمایش میدیم

مدار رو مانند شکل زیر ببندین

آموزش راه اندازی ldr با آردوینو

 

خب میرسیم به برنامه نویسی آردوینو
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 کمتر بود ال ای دیه اول رو روشن کن و بقیه رو خاموش کن

مطلب پیشنهادی:  راه اندازی موتور DC با آردوینو

اگه از 550 کمتر بود ال ای دیه شماره 2 رو روشن کن و بقیه رو خاموش کن

و اگه از 900 کمتر بود ال ای دیه شماره 3  رو روشن کن و بقیه رو خاموش کن

مقدار آنالوگ هم توی جلسه قبل گفتم که از 0 تا 1023 هست . و شما میتونین با باز کردن سریال مانیتور مقدار رو ببینین

مداری که خودم روی برد بورد بستم

آموزش راه اندازی ldr با آردوینو

حالا میخوام بگم کاربرد این مدار چیه :  مثلا میشه ازش واسه روشن کردن اتوماتیک یک وسیله الکتریکی متاسب با نور محیط استفاده کرد . (با استفاده یک رله به جای ال ای دی ها ). یا میشه ربات تعقیب کننده نور ساخت  و…

اگر هر سوالی داشتین در قسمت نظرات مطرح کنین .

مرسی از اینکه به این مطلب راه اندازی ldr با آردوینو توجه کردین.

آموزش های آردوینو را در اینجا بخوانید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

12 دیدگاه

  1. این کدی که گذاشتین کامپایل میکنم ارور میده

  2. فوتوسل استفاده شده باید از کدوم نوع باشه؟ و اینکه ال ای دی با مقاومت چنداهمی تو مدار سری شده

    • میلاد جهاندیده

      سلام، فتوسل خاصی نیست و توی بازار بگین فتوسل یا اگر آنلاین خرید میکنید بزنید فتوسل میتونید ببا شکلش تشخیص بدید و تفاوت چندانی ندارن فقط در مقدار اهمی که 10 کیلواهم بگیرید خوبه. مقاومت های سری شده با ال ای دی ها هم میتونن از 220 اهم تا 1000 اهم باشن ولی اگر خیلی حرفه ای میخواهید نگاه کنید به داستان میتونید بشینید و حساب کتاب کند نسبت به برد آردوینو ای که دارید و ال ای دی که استفاده میکنید. ولی در این نوع پروژه ها زیاد حساسیت به خروج ندید هم مشکلی پیش نمیاد. ولی گفتم محسابه داره، فردا جایی نگین گفتم مهم نیست 🙂

  3. با سلام.
    بنده احتیاج دارم که سیگنالی که از فوتوسل ایجاد میشه رو در فواصل زمانی ثابت روی سیستمم ذخیره کنم.(مثل کاری که دیتا لاگر انجام میده) میشه من رو راهنمایی کنید که چطور میشه این کار رو کرد
    ؟

    • میلاد جهاندیده

      سلام، یک پروژه دیتالاگر آقای کوهی در وبسایت گذاشتن اونو ببینید احتمالا کارتون راه بیافته.
      پروژه طراحی و ساخت دیتالاگر با آردوینو
      ولی داستان خیلی ساده است شما با آردوینو اطلاعات سنسور فتوسل را میگیرین ( با استفاده از ADC میکروکنترلر یا آردوینو ) و با پورت سریال میفرستین کامپیوتر و اونجا یک نرم افزار سبک مینوسین و یا از نرم افزار های موجود استفاده میکنین و اطلاعات دریافتی را در یک فایل ذخیره میکنید. برای هر روز یا ساعت ( نسبت به حجم اطلاعات ) یک فایل جدید ایجاد کنید که حجم فایل خیلی بالا نره…بازم سوالی در مورد هر مرحله داشتین بپرسین.

  4. سلام،و ممنون از آموزش هاتون
    من یک پایه از سنسور رو به A5 و پایه دیگر رو به 5V وصل کردم اتفاقی که افتاد این بود :
    1023
    1023
    1023
    1023
    تمام مدت روشنایی را 100 درصد نشان میداد در حالی که اتاق کاملاً تاریک بود.(حالات دیگر را هم امتحان کردم و بدون تغیر بود)
    ولی وقتی که به 3.3V متصل کردم تمام مدت عدد 740 رو نمایش میداد و تقیر نمیکرد

    لطفاً به مشکل من هم برسید ممنون

  5. سلام، من کلا مدار رو با یک ال ای دی بستم. الان فتوسل رو نصب کردم ولی مقدار analogRead همش 1023 هستش و هیچ تغییری هم نمی کنه (10 تا مقاومت 1 کیلو اهم برای فتوسل سری کردم چون حال نداشتم برم از بیرون بخرم)

  6. سلام اگه بخوام برنامه ام جوری باشه که با کوچک شدن عدد ldr نور الی ای دی کم بشه و با بزرگتر شدن عدد ldr نور ال ای دی بیشتر بشه باید برنامه ام چجوری باشه؟؟
    (فقط از یک ال ای دی استفاده میکنم)

  7. سلام،وقتتون بخیر،ممنون میشم برا ساخت ربات دنبالگر خورشیدی دقیق با استفاده از فوتوسل و برد اردوینو uno و عملگرهای سروو موتور یا استپر موتور راهنماییم کنید

  8. دستتون درد نکنه کارم راه افتاد.
    داشتم یه پروژه با آردوینو انجام میدادم.