فهرست مطالب:
- مرحله 1: مدولاسیون عرض پالس در نرم افزار
- مرحله 2: سخت افزار و اجزای مورد نیاز
- مرحله 3: نرم افزار باقی مانده و نتیجه
تصویری: شمع های الکترونیکی متعدد: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
شمع های الکترونیکی بارها در دستورالعمل نصب شده است ، پس چرا این یکی؟
در خانه من این خانه های کوچک نیمه شفاف کریسمس را دارم که دارای یک LED LED و یک باتری کوچک هستند. برخی از خانه ها دارای LED با جلوه شمع و برخی دیگر دارای LED هایی هستند که فقط روشن هستند. باتری های کوچک نسبتاً سریع خالی می شوند و از آنجا که می خواستم جلوه شمع در همه خانه ها داشته باشم ، تصمیم گرفتم آن را به یک پروژه PIC تبدیل کنم. البته می توانید آن را به یک پروژه آردوینو نیز تبدیل کنید.
بنابراین چه چیزی این شمع الکترونیکی را خاص می کند؟ PIC و Arduino همه دارای سخت افزار Pulse Width Modulation (PWM) هستند که می توان از آنها برای ایجاد جلوه شمع با استفاده از LED استفاده کرد ، اما در مورد من می خواستم 5 شمع الکترونیکی مستقل با استفاده از یک کنترلر داشته باشم که حداقل وجود ندارد که من خاموش می دانم راه حلی که من استفاده کردم این است که این پنج سیگنال PWM مستقل را به طور کامل در نرم افزار ایجاد کنم.
مرحله 1: مدولاسیون عرض پالس در نرم افزار
مدولاسیون عرض پالس چندین بار شرح داده شده است ، به عنوان مثال. در این مقاله آردوینو:
PIC و Arduino دارای سخت افزار PWM ویژه ای هستند که تولید این سیگنال PWM را ساده می کند. اگر می خواهیم یک یا چند سیگنال PWM در نرم افزار ایجاد کنیم ، به دو تایمر نیاز داریم:
- یک تایمر که برای تولید فرکانس PWM استفاده می شود
- یک تایمر که برای تولید چرخه وظیفه PWM استفاده می شود
هر دو تایمر هنگام تکمیل تولید و قطع می کنند و بنابراین کار با سیگنال PWM به صورت کاملاً وقفه انجام می شود. برای فرکانس PWM از تایمر 0 PIC استفاده می کنم و می گذارم سرریز شود. با ساعت نوسان ساز داخلی 8 مگاهرتز و مقیاس پیش فرض 64 فرمول این است: Fosc / 4 /256 /64 = 2.000.000 / 256 /64 = 122 هرتز یا 8 ، 2 میلی ثانیه. فرکانس باید به اندازه کافی زیاد باشد تا چشم انسان نتواند آن را تشخیص دهد. فرکانس 122 هرتز برای این کار کافی است. تنها کاری که این روال وقفه تایمر انجام می دهد این است که چرخه وظیفه را برای یک چرخه جدید PWM کپی کرده و همه LED ها را روشن کنید. این کار را برای هر 5 LED به طور مستقل انجام می دهد.
مقدار زمان سنج برای کنترل چرخه وظیفه PWM بستگی به نحوه ایجاد اثر شمع دارد. در رویکرد من ، این اثر را با افزایش چرخه کار با مقدار 3 برای افزایش روشنایی LED و کاهش آن با مقدار 25 برای کاهش روشنایی LED ، شبیه سازی می کنم. به این ترتیب جلوه ای شبیه شمع به دست می آورید. از آنجا که من از حداقل مقدار 3 استفاده می کنم ، تعداد مراحل کنترل چرخه کامل وظیفه با یک بایت 255 /3 = 85 است. این بدان معنی است که تایمر چرخه وظیفه PWM باید با فرکانس 85 برابر فرکانس تایمر فرکانس PWM که 85 * 122 = 10.370 هرتز است.
برای چرخه وظیفه PWM از تایمر 2 PIC استفاده می کنم. این یک تایمر با بارگیری خودکار است و از فرمول زیر استفاده می کند: Period = (بارگذاری مجدد + 1) * 4 * مقدار پیش نمایش Tosc * Timer2. با بارگیری مجدد 191 و پیش فروش 1 ، یک دوره (1 + 191) * 4 * 1/8.000.000 * 1 = 96 ما یا 10.416 هرتز دریافت می کنیم. چرخه وظیفه PWM بررسی های روتین را متوقف می کند اگر چرخه کار به پایان رسیده باشد و LED را که چرخه وظیفه برای آن تکمیل شده است خاموش کند. اگر چرخه وظیفه پشت سر گذاشته نشود ، شمارنده چرخه وظیفه را با 3 کاهش می دهد و روال را به پایان می رساند. این کار را برای همه LED ها به طور مستقل انجام می دهد. در مورد من این روال وقفه حدود 25 نفر ما را می گیرد و از آنجایی که هر 96 نفر ما نامیده می شود ، 26 درصد CPU برای مدیریت چرخه وظیفه PWM در نرم افزار استفاده می شود.
مرحله 2: سخت افزار و اجزای مورد نیاز
نمودار شماتیک نتیجه نهایی را نشان می دهد. اگرچه من فقط 5 LED را به طور مستقل کنترل می کنم ، اما یک LED 6 را اضافه کردم که به همراه یکی از 5 LED دیگر کار می کند. از آنجا که PIC نمی تواند دو LED را روی یک پین پورت هدایت کند ، من یک ترانزیستور اضافه کردم. لوازم الکترونیکی از آداپتور DC 6 ولت / 100 میلی آمپر تغذیه می شود و از یک تنظیم کننده ولتاژ افت پایین برای ایجاد 5 ولت پایدار استفاده می کند.
برای این پروژه به اجزای زیر نیاز دارید:
- 1 میکروکنترلر PIC 12F615
- 2 خازن سرامیکی: 2 * 100nF
- مقاومت ها: 1 * 33k ، 6 * 120 اهم ، 1 * 4k7
- 6 LED نارنجی یا زرد ، روشنایی بالا
- 1 ترانزیستور BC557 یا معادل آن
- 1 خازن الکترولیتی 100 uF / 16 V
- 1 تنظیم کننده ولتاژ افت پایین LP2950Z
می توانید مدار را روی تخته نان بسازید و به فضای زیادی احتیاج ندارد ، همانطور که در تصویر مشخص است.
مرحله 3: نرم افزار باقی مانده و نتیجه
قسمت باقیمانده نرم افزار حلقه اصلی است. حلقه اصلی با تنظیم چرخه کار به طور تصادفی روشنایی LED ها را افزایش یا کاهش می دهد. از آنجا که ما فقط با مقدار 3 افزایش می دهیم و با مقدار 25 کاهش می دهیم ، باید مطمئن شویم که کاهش ها به دفعات افزایش ها اتفاق نمی افتد.
از آنجا که من از هیچ کتابخانه ای استفاده نکردم ، مجبور شدم یک ژنراتور تصادفی را با استفاده از یک رجیستر شیفت بازخورد خطی بسازم ، ببینید:
fa.wikipedia.org/wiki/Linear-feedback_shif…
اثر شمع تحت تأثیر سرعت تغییر چرخه وظیفه PWM قرار می گیرد ، بنابراین حلقه اصلی از تاخیر حدود 10 میلی ثانیه استفاده می کند. می توانید این زمان را تغییر دهید تا جلوه شمع را بر اساس نیاز خود تغییر دهید.
ویدئوی پیوست نتیجه نهایی را نشان می دهد که من از کلاه روی LED برای بهبود جلوه استفاده کردم.
من از JAL به عنوان زبان برنامه نویسی برای این پروژه استفاده کردم و فایل منبع را ضمیمه کردم.
از ساختن این دستورالعمل لذت ببرید و منتظر واکنشها و نتایج خود باشید.
توصیه شده:
لامپ استنسیل - یک لامپ سایه های متعدد: 5 مرحله
لامپ استنسیل - یک لامپ بسیاری از سایه ها: این دستورالعمل به شما نشان می دهد که چگونه یک لامپ ساده با سایه های قابل تغییر بسازید (این یک آباژور است)
شمع برقی با شمع: 8 مرحله (همراه با تصاویر)
شمع برقی با شمع: پس از مشاهده گزارش های خبری درباره طوفان سندی و شنیدن مصیبت سختی که همه خانواده و دوستانم در نیویورک و نیوجرسی تجربه کردند ، باعث شد به آمادگی اضطراری خودم فکر کنم. سانفرانسیسکو - بالاخره - در بالای برخی موارد بسیار نشسته است
ژاکت چانوکا روشن با شمع های جداگانه: 7 مرحله (همراه با تصاویر)
ژاکت روشن Chanukah با "شمع" های فردی: فصل جشن تعطیلات آن است و امسال می توانید با یک ژاکت منورایی روشن ، ستاره درخشان مهمانی باشید! این یک پروژه مدار دوخته شده با استفاده از مواد نسبتاً ارزان است که به راحتی در اینترنت و در فروشگاه صنایع دستی یافت می شود. حتی بهتر
توسعه برنامه های کاربردی با استفاده از پین های GPIO در DragonBoard 410c با سیستم عامل های Android و Linux: 6 مرحله
توسعه برنامه های کاربردی با استفاده از پین های GPIO در DragonBoard 410c با سیستم عامل های Android و Linux: هدف از این آموزش نشان دادن اطلاعات مورد نیاز برای توسعه برنامه های کاربردی با استفاده از پین GPIO در DragonBoard 410c با سرعت کم است. این آموزش اطلاعاتی را برای توسعه برنامه های کاربردی با استفاده از پین های GPIO با SYS در Andr ارائه می دهد
ساخت قاب های ابزارک الکترونیکی از رایانه های قدیمی: 6 مرحله (همراه با تصاویر)
ساخت رایانه های ویجت الکترونیکی از رایانه های قدیمی: پس از تبدیل لپ تاپ قدیمی به پخش کننده MP3 ، به شما نشان می دهم که چگونه یک لپ تاپ بسیار قدیمی را به یک ساعت دیجیتالی با چند پوسته تبدیل کنید. پخش کننده MP3 پایان پروژه به شما نشان می دهد که می توانید با یک لپ تاپ جدیدتر با