راه اندازی فتوسل از طریق آردوینو

0

مقاومت وابسته به نور

  مقاومت وابسته به نور (LDR)، یا فتوسل، برای تعیین مقدار نور برخوردی بکاربرده می‌شود، به گونه ای که مقاومت LDR با افزایش نور برخوردی کاهش می‌یابد. برای تقسیم ولتاژ LDR را با یک مقاومت 4.7 کیلواهمی سری می‌کنیم (شکل 1 را مشاهده کنید). ولتاژ خروجی مقسم ولتاژ، مقدار خوانده شده از LDR است که توسط مبدل آنالوگ به دیجیتال آردوینو (ADC) به یک مقدار دیجیتال تبدیل می‌شود. مقاومت LDR در میانگین نور روز  بین 3 کیلواهم و 5 کیلواهم می‌باشد، بنابراین یک مقاومت 4.7 کیلواهمی مقاومتی مناسب برای مقسم ولتاژ است. همانند هر مقاومت، LDR می‌تواند به هر صورت در مدار قرار‌گیرد.

LDR و مقسم ولتاژ
شکل 1.LDR و مقسم ولتاژ

ولتاژ خروجی مقسم ولتاژ، Vout، برابر است با ( Rresistor + RLDR/Rresistor ) Vin، که در آن Rresistor و RLDR به ترتیب مقاومت مشخص شده در مقسم ولتاژ و مقاومت LDR، و Vin ولتاژ ورودی 5 ولت از آردوینو است. هنگامی‌که نور برخوردی افزایش می‌یابد، مقاومت LDR کاهش می‌یابد و ولتاژ خروجی مقسم ولتاژ افزایش می‌یابد. ADC آردوینو ولتاژ خروجی مقسم ولتاژ را به مقدار دیجیتال معادل تبدیل می‌کند. مقاومت LDR برابر است با Rresistor (  1023-\frac{1}{reading}  )، که دامنه مقاومت آن از 700 اهم در نور تا 50 کیلواهم در تاریکی است، که به ترتیب متناظر شدت نور 890 و 90 است.  

 LDR می تواند برای تغییر روشنایی یک LED، با توجه به نور برخوردی بکاربرده شود (شکل 2 را مشاهده کنید).  اتصالات در شکل 2 نشان داده شده اند. LED تنها وقتی که شدت نور کم باشد روشن می شود. یک مقدار آستانه برای مقدار روشنایی در نظرگرفته می شود اگر مقدار خوانده شده از مقسم ولتاژ کم تر از 500 باشد LED روشن می شود. روشنایی زیاد LED در شرایطی که نور کم باشد موردنیاز است، بنابراین مقدار خوانده شده از مقسم ولتاژ با شدت نور رابطه عکس دارد و مقدار خوانده شده کم متناظر با شدت نور زیاد می‌باشد.

فتوسل و LED
شکل 2. فتوسل و LED

و اتصال به

اتصال به

قطعه

 

5 ولت آردوینو

پایه سمت راست LDR

 

A0 آردوینو

پایه سمت چپ LDR

GND آردوینو

مقاومت 4.7 کیلواهم

پایه سمت چپ LDR

 

پین 11 آردوینو

پایه بلند LED

GND آردوینو

مقاومت 220 اهم

پایه کوتاه LED

int   threshold= 500;
int  reading, bright; 
int  LEDpin=11;  // LED on PWM pin

void  setup(){

pinMode (LEDpin, OUTPUT);  // LED pin as a output

}


void loop(){


reading=analogRead(A0);  // voltage divider reading
bright=0;                       // set LED bright to zero

if (reading<threshold)    bright=map(reading,0,threshold,255,0);
analogWrite(LEDpin,bright);        // change LED brightness
delay(1000);

} 

دستور reading=analogRead(A0) مقدار پایه آنالوگ  A0 که مقداری بین 0 تا 1023 می باشد را می‌خواند. دستور  bright=map(reading,0,threshold,255,0)مقدار خوانده شده بین 0 تا threshold (=500) را به مقدار روشنایی LED بین 255 تا 0 تبدیل می‌کند. توجه کنید که مقدار کم خوانده شده از LDR به مقدار روشنایی بالای LED نگاشته می‌شود. از آنجایی که مقدار آنالوگ ورودی بین 0 تا 1023 می‌باشد در حالی‌که مقدار آنالوگ خروجی بین 0 تا 255 است، اغلب یک نگاشت ورودی‌ آنالوگ به خروجی آنالوگ موردنیاز می‌باشد.

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

Choose your Reaction!
دیدگاه خود را بنویسید

آدرس ایمیل شما منتشر نخواهد شد.

redronic.com