فهرست مطالب:

کنترل روشنایی ، آردوینو (با انیمیشن): 7 مرحله
کنترل روشنایی ، آردوینو (با انیمیشن): 7 مرحله

تصویری: کنترل روشنایی ، آردوینو (با انیمیشن): 7 مرحله

تصویری: کنترل روشنایی ، آردوینو (با انیمیشن): 7 مرحله
تصویری: CS50 2014 - Week 9 2024, نوامبر
Anonim
Image
Image

در چند سال گذشته من دو دستگاه پین بال (pinballdesign.com) و دو سر ربات (grahamasker.com) که هر کدام توسط آردوینوس کنترل می شود ، ساخته ام. با داشتن یک حرفه مهندسی مکانیک ، من با طراحی مکانیسم ها خوب هستم ، اما با برنامه نویسی مشکل دارم. من تصمیم گرفتم برای نشان دادن برخی از مفاهیم اساسی آردوینو انیمیشن بسازم. فکر می کردم این موضوع به من و دیگران کمک می کند تا آنها را درک کنند. یک عکس هزار کلمه ارزش دارد و یک انیمیشن می تواند هزار تصویر باشد!

بنابراین در اینجا یک توضیح متحرک در مورد موضوع کنترل روشنایی ارائه شده است. انیمیشن بالا شماتیک یک پتانسیومتر متصل به آردوینو را نشان می دهد. این نشان می دهد که چگونه تنظیم موقعیت پتانسیومتر می تواند روشنایی led را تغییر دهد. من قصد دارم تمام عناصر این فرآیند را توضیح دهم. برای کسانی که با پتانسیومترها و لیدها آشنا نیستند ، من با آنها شروع می کنم. سپس توضیح خواهم داد که چرا led باید به یک پین Arduino با قابلیت PWM متصل شود و چگونه از تابع MAP در یک طرح Arduino برای تبدیل ورودی از پتانسیومتر به خروجی مناسب برای کنترل led استفاده می شود.

اگر با led ها و پتانسیومترها آشنایی دارید ، می توانید از بخش 1 و 2 رد شوید.

مرحله 1: درباره LED ها

درباره LED ها
درباره LED ها

تصویر سمت چپ بالا نماد مدار برای یک led و قطبیت پایه های led را نشان می دهد. جریان فقط از طریق یک LED در یک جهت جریان می یابد بنابراین قطبیت مهم است. ساق بلندتر مثبت است. همچنین یک طرف صاف در فلنج وجود دارد ، این طرف منفی است.

ولتاژ و جریان

ولتاژ مورد نیاز یک LED بسته به رنگ آن بین 2.2 ولت تا 3.2 ولت متغیر است. رتبه فعلی آنها معمولاً 20 میلی آمپر است. به منظور محدود کردن جریان و جلوگیری از داغ شدن LED ، لازم است از یک مقاومت به صورت سری با هر LED استفاده کنید. من حدود 300 اهم را توصیه می کنم.

تصویر سمت راست بالا روشی را برای اتصال یک مقاومت به یک ساق و یک عایق بندی با آستین کوچک کننده حرارتی نشان می دهد.

مرحله 2: پتانسیومتر

پتانسیومتر
پتانسیومتر

از نظر آردوینو ، پتانسیومتر یک حسگر است. "سنسور" به هر وسیله خارجی اطلاق می شود که هنگام اتصال به پین های ورودی توسط آردوینو قابل تشخیص باشد. ما قصد داریم از یک پتانسیومتر متصل به آردوینو برای کنترل روشنایی یک LED استفاده کنیم. گاهی اوقات به پتانسیومتر تقسیم ولتاژ می گویند که به نظر من توصیف بهتری است. نمودار سمت چپ بالا اصل تقسیم کننده ولتاژ را نشان می دهد. در این مثال ، یک مقاومت در یک طرف به زمین متصل شده و توسط منبع تغذیه به 5 ولت در انتهای دیگر نگه داشته می شود. اگر یک لغزنده در امتداد مقاومت جابجا شود در ولتاژ 0 ولت در سمت چپ ، 5 ولت در انتهای سمت راست خواهد بود. در هر موقعیت دیگر ، مقدار آن بین 0 و 5 ولت خواهد بود. در نیمه راه ، برای مثال ، در 2.5 ولت خواهد بود. اگر ترتیب را همانطور که در بالا نشان داده شده است تغییر دهیم ، این نشان دهنده عملکرد یک پتانسیومتر دوار است.

مرحله 3: مدار

مدار
مدار

تصویر بالا نشان می دهد که چگونه باید پتانسیومتر و led را به آردوینو وصل کنیم.

اردونیو باید ولتاژ تغذیه شده توسط پتانسیومتر را حس کند. با چرخاندن پتانسیومتر ، ولتاژ به آرامی تغییر می کند ، بنابراین یک سیگنال آنالوگ است و بنابراین باید به پین ورودی آنالوگ در آردوینو متصل شود. ولتاژ این پین توسط Arduino هر بار که برنامه آن را از طریق عملکرد "analogRead" درخواست می کند ، خوانده می شود.

آردوینو فقط پین خروجی دیجیتال دارد. با این حال ، آن پین ها با یک تیلد (~) در کنار آنها خروجی آنالوگ را شبیه سازی می کنند که برای کنترل روشنایی یک Led مناسب است. این فرایند مدولاسیون عرض پالس (PWM) نامیده می شود و از طریق انیمیشن بعدی ، مرحله 4 توضیح داده می شود.

مرحله 4: PWM

PWM ، مدولاسیون عرض پالس

همانطور که قبلاً ذکر شد ، سنجاق هایی با tilda ، "~" در کنار آنها پین های PWM قرار دارند. از آنجا که پین ها دیجیتالی هستند فقط می توانند در 0v یا 5v باشند ، اما با PWM می توان از آنها برای کم نور LED یا کنترل سرعت موتور استفاده کرد. آنها این کار را با تأمین 5 ولت به یک LED انجام می دهند اما آن را بین 0 و 5 ولت در 500 هرتز (500 بار در ثانیه) می کشند و مدت زمان هر عنصر 0 و 5 ولت پالس را کشیده یا کوچک می کنند. همانطور که LED یک پالس 5 ولت طولانی تر از یک پالس 0 ولت می بیند ، روشن تر می شود. در برنامه ما ، از تابع analogueWrite () برای خروجی یک "موج مربعی" PWM استفاده می کنیم. دارای 256 افزایش است ، صفر یک چرخه کار 0٪ و 255 100٪ "چرخه وظیفه" یعنی 5 ولت مداوم می دهد. بنابراین 127 یک چرخه کار 50٪ را ارائه می دهد ، نیمی از زمان در 0v و نیمی از زمان در 5v. انیمیشن بالا نشان می دهد که چگونه وقتی این چرخه وظیفه به 100٪ کشیده می شود ، led روشن تر می شود.

مرحله 5: برنامه (طرح ARDUINO)

Image
Image

ویدئوی فوق یک برنامه (طرح) را که می تواند برای کنترل روشنایی led با استفاده از پتانسیومتر استفاده شود ، طی می کند. مدار همان است که در مرحله 3 نشان داده شده است.

اگر این ویدئو را سریع (یا آهسته) می خوانید تا راحت بخوانید ، می توانید سرعت آن را تنظیم کنید در انتهای سمت راست نوار کنترل پایین نمادی به شکل چرخ دنده (بعضی مواقع با برچسب قرمز "HD" روی آن قرار دارد).) اگر روی آن کلیک کنید ، منویی ظاهر می شود که شامل "سرعت پخش" می شود.

البته ، بهتر است اگر می توانید روی دکمه ای کلیک کنید تا هر خط برنامه را با سرعت خود طی کنید ، اما متأسفانه ارائه این روش تعاملی در اینجا امکان پذیر نیست. اگر ترجیح می دهید از این روش برای این موضوع و بسیاری از موضوعات دیگر آردوینو استفاده کنید ، نسخه پیش نمایش رایگان یک کتاب الکترونیکی تعاملی/متحرک در animatedarduino.com موجود است.

به نظر من یک ویژگی در برنامه وجود دارد که به توضیح بیشتری نیاز دارد: در خط 14 از تابع "map" استفاده می شود. توضیحاتی در مورد هدف آن در مرحله 6 وجود دارد

مرحله 6: MAP

ما پتانسیومتر را به پین آنالوگ متصل کرده ایم. ولتاژ پتانسیومتر بین 0 ولت و 5 ولت متغیر است. این محدوده در پردازنده در 1024 افزایش ثبت شده است. هنگامی که مقدار ورودی برای ایجاد خروجی از طریق پین دیجیتال فعال با PWM استفاده می شود ، این محدوده باید در محدوده خروجی یک پین دیجیتال ترسیم شود. این دارای 255 افزایش است. تابع نقشه برای این منظور استفاده می شود و خروجی متناسب با ورودی را ارائه می دهد.

ویدئوی بالا این را نشان می دهد.

مرحله 7: آردوینو متحرک

تصاویر این دستورالعمل از کتاب الکترونیکی من Animated Arduino گرفته شده است که در www.animatedarduino.com موجود است ، در این مقاله قصد دارم درک بهتری از برخی مفاهیم هنگام یادگیری برنامه نویسی آردوینو داشته باشم.

یک نسخه پیش نمایش رایگان از کتاب الکترونیکی در وب سایت موجود است که به شما امکان می دهد ماهیت تعاملی کتاب را تجربه کنید. این اساساً مجموعه ای از صفحات نمونه است و بنابراین بسیاری از توضیحات را حذف می کند. شامل صفحات نمونه ای است که به شما امکان می دهد روی دکمه هایی که هر خط برنامه را پیش می برند کلیک کنید و نظرات مربوطه را مشاهده کنید. سایر صفحات دارای انیمیشن های ویدئویی و محتوای صوتی هستند که می توانید آنها را کنترل کنید. یک صفحه محتوا به منظور گنجاندن آن وجود دارد تا بتوانید ببینید نسخه کامل آن شامل چه مواردی است.

توصیه شده: