آموزش آردوینو پروژه های آردوینو

راه اندازی فتوسل با آردوینو Arduino

نوشته شده توسط حسین فهیمی

به نام خدا

در این پست ، قصد راه اندازی سنسور فتوسل یا سنسور نور رو با آردوینو دارم click for more. در واقع این سنسور یه مقاومت هست که اگه نور بهش برسه ، مقاومتش کم و درنتیجه ولتاژ خروجی بیشتر میشه و اگه بهش نور نرسه ، مقاومتش زیاد و درنتیجه ولتاژ خروجی کم میشه.

خب حالا قصد داریم این سنسور رو با آردوینو (arduino) راه بندازیم.

وسایل لازم :

شماتیک پروژه فتوسل :

همونطور که می بینید اومده یه مقاومت ۱۰ کیلو اهمی (ثابت) رو با فتوسل سری کرده و از پایه مشترک بینشون به پین آنالوگ آردوینو داده. منطق این کار همون منطق تقسیم ولتاژ هست….

images

 

وقتی مقاومت فتوسل (با تغییر نور ) تغییر می کنه طبق قانون تقسیم ولتاژ ، ولتاژی که روی پایه وسط (مشترک بین مقاومت و فتوسل) می افته هم تغییر می کنه که چون این تغییر به صورت پیوسته هست این پایه وسط رو به پین آنالوگ آردوینو (پین شماره ۰ ) وصل می کنیم.

 

نمونه کد :

int sensor;
int val;
void setup() {
  pinMode(sensor, INPUT);
  Serial.begin(9600);
}

void loop() {
  sensor = analogRead(A0);
  val = map(sensor, 0, 1023, 0, 100);
  Serial.println(val);
  delay(400);
}

 

معرفی متغییر ها و شروع حلقه ی محدود setup

int sensor;
int val;
void setup() {

 

ورودی قرار دادن متغییر sensor ، مشخص کردن رنج کاری سریال مانیتور برای تبادل اطلاعات و پایان حلقه ی setup

  pinMode(sensor, INPUT);
  Serial.begin(9600);
}

 

شروع حلقه ی نامحدود loop ، و خواندن مقدار ولتاژ اعمال شده روی پین A0 آردوینو (arduino) و ریختن آن درون متغییر sensor

void loop() {
  sensor = analogRead(A0);

 

تناسب بندی بین مقادیر سنسور بین ۰ تا ۱۰۰ ، نمایش آن روی سریال مانیتور و پایان حلقه ی loop

val = map(sensor, 0, 1023, 0, 100);
  Serial.println(val);
  delay(400);
}

 

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

 

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

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۶ دیدگاه

  • سلام، امکان اجرای کد برای مقدار خاصی از نور وجود داره؟ یعنی سنسور مقدار روشنایی رو بهمون میده؟
    میخوام وقتی نور از یه مقداری بیشتر شد(صبح شد) یک موتور شروع به کار کردن کنه و پرده اتاق رو کنار بزنه و اگر از مقداری کمتر شد(شب شد) پرده رو ببنده(موتور برعکس کار کنه)

  • سلام،اگه ممکنه بخش اخر که مربوط به val هست رو بیشتر توضیح بدین که دستور map کارش چیه و چرا از اعداد ۰ و ۱۰۲۳ استفاده شده؟

    • با سلام
      در این برنامه از تابع ریاضی نگاشت برای برنامه نویسی استفاده شده است. در ابتدا اسم متغیر، سپس حد بالای بالا و پایین برای فتوسل و سپس حد بالا و حد پایین زمان نوشته شده است. پیشنهاد می‌شود از جدیدترین آموزش راه اندازی فتوسل استفاده کنید.

  • سلام و خسته نباشید
    امکانش هست جوری برنامه نویسی کنیم که وقتی نور به ی حدی کم شد رله اول فعال بشه و اگه خیلی تاریکتر شد رله دوم فعال بشه؟
    به عنوان مثال برای چراغ اتوماتیک خودرو که اگه بعد از ظهر شد نور کوچیک و اگه شب شد چراغ های اصلی روشن بشه؟؟؟

    • با سلام
      بله دیتای سنسور را از سریال مانیتور بخوانید. این دیتا بین عدد ۰ تا ۱۰۲۴ متغیر است. عدد ۱۰۲۴ بالاترین حد و ۰ پایین تر است. عدد مورد نظر را با قرار گرفتن مانع در مقابل سنسور از سریال مانیتور بخوانید. سپس در کدها توسط تابع شرطی if else شرط نویسی کنید. در صورتیکه عدد خوانده شده مثلا ۵۰۰ بود، رله اول فعال شود و در صورتیکه بیشتر از ۵۰۰ شد، رله غیرفعال باشد.