یک جرقه روشن باش، چراغ ها خاموش تا زمانی که هوا تاریک شود!» گاهی اوقات فراموش می کنیم که چراغ ها را خاموش کنیم و برق را هدر دهیم و حتماً چراغ خیابان را در روز روشن کرده اید. ما قبلاً مدارهای کمی را روی آشکارساز تاریکی ساختهایم که در آن چراغها به طور خودکار خاموش میشوند اگر بیرون روشن است و روشن میشوند اگر بیرون تاریک باشد. اما این بار، در این مدار نه تنها چراغ ها را بر اساس شرایط نور روشن و خاموش می کنیم، بلکه شدت نور را با توجه به شرایط نوری بیرون نیز تغییر می دهیم . در اینجا ما از مفهوم LDR و PWM با آردوینو برای کاهش یا افزایش خودکار روشنایی پاور LED 1 واتی استفاده کردهایم .
اساساً PWM به مدولاسیون عرض پالس اشاره دارد ، سیگنال خروجی از طریق پین PWM یک سیگنال آنالوگ خواهد بود و به عنوان سیگنال دیجیتال از آردوینو به دست میآید. از چرخه وظیفه موج دیجیتال برای تولید مقدار آنالوگ متوالی برای سیگنال استفاده می کند. و این سیگنال بیشتر برای کنترل روشنایی LED پاور استفاده می شود.
مواد مورد نیاز
- آردوینو UNO
- LDR
- مقاومت (510، 100 کیلو اهم)
- خازن (0.1uF)
- ترانزیستور 2N2222
- LED پاور 1 وات
- سیم های اتصال
- تخته نان
مدار
کد و توضیح
کد کامل آردوینو برای دیمر LED خودکار در انتها آورده شده است.
در کد زیر، پین PWM و متغیرهایی که در کد استفاده می شوند را تعریف می کنیم.
int pwmPin = 2; // assigns pin 12 to variable pwm int LDR = A0; // assigns analog input A0 to variable pot int c1 = 0; // declares variable c1 int c2 = 0; // declares variable c2
اکنون، در حلقه، ابتدا مقدار را با استفاده از دستور "analogRead(LDR)" می خوانیم سپس ورودی آنالوگ را در متغیری به نام "value" ذخیره می کنیم . با انجام محاسبات ریاضی، سیگنال PWM را تولید می کنیم. در اینجا، فقط در صورتی که مقدار آنالوگ کمتر از 500 باشد، شدت نور را با استفاده از PWM کنترل می کنیم و اگر بیشتر از 500 باشد، چراغ ها را کاملا خاموش می کنیم.
int value = analogRead(LDR); Serial.println(value); c1= value; c2= 500-c1; // subtracts c2 from 1000 ans saves the result in c1 if (value < 500) { digitalWrite(pwmPin, HIGH); delayMicroseconds(c2); digitalWrite(pwmPin, LOW); delayMicroseconds(c1); } if (value > 500) { digitalWrite(2,LOW); } }
از اینجا میتوانید درباره PWM در آردوینو اطلاعات بیشتری کسب کنید .
چگونه شدت نور را به طور خودکار کنترل می کند:
طبق نمودار مدار، یک مدار تقسیم کننده ولتاژ با استفاده از LDR و مقاومت 100k ساخته ایم. خروجی تقسیم کننده ولتاژ به پین آنالوگ آردوینو تغذیه می شود. پین آنالوگ ولتاژ را حس می کند و مقداری آنالوگ به آردوینو می دهد. مقدار آنالوگ با توجه به مقاومت LDR تغییر می کند. بنابراین، اگر روی LDR تیره باشد، مقاومت آن افزایش می یابد و در نتیجه مقدار ولتاژ (مقدار آنالوگ) کاهش می یابد. از این رو، مقدار آنالوگ خروجی PWM یا چرخه وظیفه را تغییر می دهد و چرخه وظیفه با شدت نور LED قدرت بیشتر متناسب است. بنابراین نور روی LDR به طور خودکار شدت Power LED را کنترل می کند. در زیر نمودار جریان نحوه کار این کار را نشان می دهد، علامت فلش رو به بالا نشان دهنده "افزایش" و علامت فلش رو به پایین نشان دهنده "کاهش" است.
شدت نور (روی LDR) ↓ – مقاومت↑ – ولتاژ در پین آنالوگ↓ – چرخه کاری (PWM)↑ – روشنایی LED قدرت ↑
اگر بیرون کاملاً روشن باشد (زمانی که مقدار آنالوگ بیش از 500 افزایش یابد) LED پاور خاموش می شود.
به این ترتیب می توانید شدت نور را به طور خودکار با استفاده از LDR کنترل کنید .
تمام مدارهای مرتبط با LDR را در اینجا بررسی کنید .