تغییر شدت نور LED با آردوینو، در این مطلب میخواهیم نحوه استفاده از تابع ()analogWrite را به منظور تغییر نور LED بررسی کنیم. تابع ()analogWrite از تکنیک مدولاسیون عرض پالس (PWM) به منظور خاموش و روشن کردن یک پایه با نسبتی مشخص به منظور تغییر شدت نور LED متصل به پایه استفاده میکند.
قطعات و وسایل مورد نیاز:
- 1 عدد برد بورد
- 1 عدد برد آردوینو Uno R3
- 1 عدد LED
- 1 عدد مقاومت 330Ω
- 2 عدد سیم جامپر
مراحل تغییر شدت نور LED با آردوینو
مطابق شکل زیر قطعات را بر روی برد برد خود قرار دهید و اتصالات را مطابق شکل برقرار کنید.
نکته : برای پیدا کردن پایه مثبت یا آند LED به دقت به پایههای LED نگاه کنید. پایه کوتاه تر مربوط به پایه کاتد یا منفی هست.
برای استفاده از قطعاتی مانند مقاومت در برد برد باید پایههای آن را 90 درجه خم کنید. همچنین در صورت نیاز میتوانید پایهها را کوتاه کنید.
نرم افزار آردوینو:
نرم افزار آردوینو را بر روی کامپیوتر خود باز کنید. کدهای نوشته شده در این برنامه در واقع مدار شما را کنترل میکند. بخش sketch را با کلیک بر روی New باز نمایید.
برنامه آردوینو:
/* Fade This example shows how to fade an LED on pin 9 using the analogWrite() function. Melec.ir The analogWrite() function uses PWM, so if you want to change the pin you're using, be sure to use another PWM capable pin. On most Arduino, the PWM pins are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11. */ int led = 9; // the PWM pin the LED is attached to int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // the setup routine runs once when you press reset: void setup() { // declare pin 9 to be an output: pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // set the brightness of pin 9: analogWrite(led, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(300); }
نکات برنامه:
در تابع ()setup تنها کافی است پایه 9 را به عنوان پایه LED تعریف کنید. از تابع ()analogWrite در حلقه اصلی برنامه استفاده کنید. به تابع دو آرگومان باید داده شود:
- شماره پایه مورد نظر
- مقدار نسبت PWM که باید روی پایه نوشته شود
به منظور تغییر نور LED و روشن و خاموش شدن آن باید مقدار PWM را بین مقادیر صفر (کاملا خاموش) و 255 (کاملا روشن) و سپس مقدار صفر به منظور کامل شدن چرخه روشن و خاموش شدن استفاده کنید. در برنامه نوشته شده به این منظور از متغیری به نام brightness استفاده شده است. در هر بار اجرای حلقه مقدار این متغیر توسط متغیر fadeAmount افزایش پیدا میکند. اگر مقدار شدت نور در یکی از مقادیر 0 یا 255 باشد، مقدار متغیر fadeAmount قرینه میشود. مثلا اگر fadeAmount برابر 5 باشد مقدار آن -5 میشود یا اگر -5 باشد برابر 5 میشود. در هربار اجرای حلقه این عمل باعث میشود جهت افزایش یا کاهش شدت روشنایی تغییر کند.
تابع ()analogWrite مقدار PWM رو به صورت آنی تغییر میدهد و به همین منظور تاخیر قرار داده شده در انتهای حلقه میتواند سرعت تغییر روشنایی را تنظیم نماید. با تغییر میزان تاخیر میتوانید تاثیر آن را در میزان زمان روشن و خاموش بودن LED بررسی نمایید.
نتایج پروژه تغییر شدت نور LED با آردوینو:
با اجرای برنامه مشاهده خواهید کرد که شدت نور LED به صورت تدریجی تغییر خواهد کرد. امیدوارم که با برسی کد این پروژه نکات خوبی را یادبگرید و کار با پایههای ورودی و خروجی آردوینو و همچنین PWM را یادگرفته باشید.
منبع: میکرودیزاینرالکترونیک