راه اندازی فتوسل از طریق آردوینو
مقاومت وابسته به نور ( LDR )، یا فتوسل، برای تعیین مقدار نور برخوردی بکاربرده میشود، به گونه ای که مقاومت LDR با افزایش نور برخوردی کاهش مییابد. برای تقسیم ولتاژ LDR را با یک مقاومت 4.7 کیلواهمی سری میکنیم (شکل 1 را مشاهده کنید). ولتاژ خروجی مقسم ولتاژ، مقدار خوانده شده از LDR است که توسط مبدل آنالوگ به دیجیتال آردوینو ( ADC ) به یک مقدار دیجیتال تبدیل میشود. مقاومت LDR در میانگین نور روز بین 3 کیلواهم و 5 کیلواهم میباشد، بنابراین یک مقاومت 4.7 کیلواهمی مقاومتی مناسب برای مقسم ولتاژ است. همانند هر مقاومت، LDR میتواند به هر صورت در مدار قرار گیرد.
ولتاژ خروجی تقسیم کننده ولتاژ، Vout، برابر است با ( Rresistor + RLDR/Rresistor ) Vin، که در آن Rresistor و RLDR به ترتیب مقاومت مشخص شده در مقسم ولتاژ و مقاومت LDR، و Vin ولتاژ ورودی 5 ولت از آردوینو است. هنگامیکه نور برخوردی افزایش مییابد، مقاومت LDR کاهش مییابد و ولتاژ خروجی مقسم ولتاژ افزایش مییابد. ADC آردوینو ولتاژ خروجی مقسم ولتاژ را به مقدار دیجیتال معادل :
تبدیل میکند. مقاومت LDR برابر است با:
که دامنه مقاومت آن از 700 اهم در نور تا 50 کیلواهم در تاریکی است، که به ترتیب متناظر شدت نور 890 و 90 است.
LDR می تواند برای تغییر روشنایی یک LED، با توجه به نور برخوردی بکاربرده شود (شکل 2 را مشاهده کنید). اتصالات در شکل 2 نشان داده شده اند. LED تنها وقتی که شدت نور کم باشد روشن می شود. یک مقدار آستانه برای مقدار روشنایی در نظرگرفته می شود اگر مقدار خوانده شده از مقسم ولتاژ کم تر از 500 باشد LED روشن می شود. روشنایی زیاد LED در شرایطی که نور کم باشد موردنیاز است، بنابراین مقدار خوانده شده از مقسم ولتاژ با شدت نور رابطه عکس دارد و مقدار خوانده شده کم متناظر با شدت نور زیاد میباشد.
و اتصال به | اتصال به | قطعه |
5 ولت آردوینو | پایه سمت راست LDR | |
A0 آردوینو | پایه سمت چپ LDR | |
GND آردوینو | مقاومت 4.7 کیلواهم | پایه سمت چپ LDR |
پین 11 آردوینو | پایه بلند LED | |
GND آردوینو | مقاومت 220 اهم | پایه کوتاه LED |
جدول 1. اتصالات LED و LDR
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
دستور 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) مجموعه ای از آموزش ها و پروژه های مرتبط با آردوینو را برای شما علاقهمندان به الکترونیک و برنامه نویسی فراهم کرده است. جهت مشاهده این پروژه ها اینجا کلیک کنید.
1 دیدگاه در “راه اندازی فتوسل از طریق آردوینو”
متغیر threshold=500 چه چیزی رو نشون میده و بیانگر چیه؟