فهرست مطالب:
- تدارکات
- مرحله 1: آنچه را که دارید بررسی کنید
- مرحله 2: مقداری لحیم کاری
- مرحله 3: اتصالات
- مرحله 4: برنامه های نور
- مرحله 5: کد
- مرحله 6: درباره PWM
تصویری: پل شمعی چشمک زن: 6 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
این دستورالعمل نشان می دهد که چگونه یک پل شمعی ساده با نور ثابت را به یک نور خوب و درخشان با تغییرات بی پایان چراغهای چشمک زن ، چشمک زن ، الگوهای موج و غیره تبدیل کنید. من از After Christmas Sales یک شمع پل به قیمت 8 یورو خریدم. دارای 7 چراغ LED و تعدادی آداپتور دیواری 33 ولت 3 واتی است. با یک رنگ سفید روشن و گرم می درخشد و برای این پروژه عالی خواهد بود ، جایی که من یک آردوینو را برای روشن شدن شمع ها قرار می دهم. محبوب ترین آردوینو آردوینو یونو است. در این پروژه ، من از Arduino Mega 2560 استفاده می کنم.
من قصد دارم منبع تغذیه 30 ولت را کنار بگذارم و از یک پاوربانک ساده 5 ولت که مخصوص تلفن های همراه است به عنوان منبع تغذیه استفاده کنم.
نکته خوبی که در مورد پاور بانک ها باید بدانید این است که آنها دارای یک مدار داخلی هستند که باتری 3.7 ولت را به 5 ولت تبدیل می کند ، زیرا این فرایند از مقداری برق استفاده می کند ، در صورت عدم استفاده ، پاور بانک خود را خاموش می کند. اگر از پاوربانک برای ابزارهای DIY مبتنی بر آردوینو استفاده می شود ، این گجت نمی تواند صرفه جویی در مصرف برق را داشته باشد و بعد از چند دقیقه دوباره شروع به کار کند. با این کار پاور بانک خاموش می شود. این پل شمع سوسو زدن حالت خواب ندارد. این پاور به طور مداوم از پاوربانک استفاده می کند ، تا زمانی که کابل برق جدا نشود.
ویدئو پل شمع را در حالت ایستا و در حال سوسو زدن کامل نشان می دهد. سوسو زدن کامل برای چشم ها واقعاً آزاردهنده است ، در حالی که ویدئو آن را کمی صاف می کند. پس از برطرف شدن سخت افزار ، از جمله برش کابل ها ، اتصال اتصالات جدید و افزودن برخی قطعات ، با نوشتن کد برای آردوینو ، تمام الگوهای نور مورد نظر ایجاد می شود. الگوهایی که من در این دستورالعمل قرار می دهم عبارتند از:
- 4 چراغ چشمک زن مختلف با تقلید از شمع های واقعی
- 2 چشمک زدن مختلف (چشمک زدن تصادفی چراغهای غیر ثابت)
- 2 الگوی مختلف موج
- نور استاتیک ساده
تغییر الگوها از طریق یک دکمه فشاری ، عنصر رابط کاربری واحد انجام می شود. هرچه الگوهای بیشتری بخواهید و تنظیمات بیشتری را بخواهید ، دکمه ها و دستگیره های بیشتری را باید اضافه کنید. اما زیبایی در سادگی نهفته است. تعداد الگوهای قابل انتخاب را پایین نگه دارید. بهترین تنظیمات را هنگام کد نویسی و آزمایش انتخاب کنید ، نه با افزودن تعداد زیادی کنترل به سخت افزار.
تدارکات
- 1 پل شمعی LED با 7 لامپ. اطمینان حاصل کنید که یک مدل DC با ولتاژ پایین است ، چه باتری و چه منبع تغذیه دیواری ، که کشنده 110 - 240 V AC را به 6 - 30 V DC تبدیل می کند. بنابراین هک پل شمع کاملاً بی خطر است.
- 1 آردوینو مگا (هر میکروکنترلر دیگری این کار را انجام می دهد ، فقط مطمئن شوید که می توانید آن را برنامه ریزی کنید)
- 1 نمونه اولیه تخته نان
- سیم های بلوز و سیم های دیگر
- ابزار لحیم کاری
- مولتی متر
- 7 مقاومت ، 120 Ω
- 1 دکمه (من نشان خواهم داد که چگونه می توانید به جای آن از دکمه ساخته شده در آردوینو استفاده کنید)
- ULN2803AP یک IC ترانزیستور دارلینگتون برای 7 ترانزیستور انجام می دهد (اگر از Arduino Uno یا Meaga استفاده می کنید ، واقعاً به این مورد نیاز ندارید)
- پاوربانک 5 ولت برای تلفن های همراه طراحی شده است
مرحله 1: آنچه را که دارید بررسی کنید
دریابید که هر LED با چه ولتاژی کار می کند و چقدر جریان در آن جریان دارد.
- پایین پل شمع را باز کنید. دو سیم را که به یک شمع می روند پیدا کنید.
- مقداری عایق را از روی کابل ها جدا کنید که سیم های مسی را بدون قطع سیم های مسی نشان می دهد.
- چراغ ها را روشن کنید (آرام باشید ، فقط چند ولت است) و ولتاژ را روی سیم های مسی آشکار شده اندازه بگیرید.
- کابل را در یکی از نقاط اندازه گیری قطع کنید (البته در این مرحله چراغ ها خاموش می شوند) ، مقداری عایق (3 - 4 میلی متر) را در دو طرف آن بردارید. جریان جاری را اندازه گیری کنید کاری که انجام می دهید این است که کابل قطع شده را با مولتی متر خود دوباره وصل کرده و اجازه دهید تمام جریان از طریق مولتی متر شما جریان یابد ، که در حال حاضر مقدار جریان را به شما می گوید.
خوانش های من
ولتاژ بیش از یک شمع (مرحله 3): 3.1 ولت
توجه داشته باشید که منبع تغذیه پل شمع 33 ولت بود. بنابراین هفت بار 3.1 ولت تنها 21.7 ولت است. در برخی از شمع ها باید یک مقاومت اضافی وجود داشته باشد. اگر ولتاژ شمع را اندازه گیری کرده بودم ، باید 11 ولت بود.
جریان جاری هنگام روشن شدن شمع (مرحله 4): 19 میلی آمپر
من همه چیز را با یک باتری 5 V 2 A تغذیه می کنم. برای شمع ها ، من باید ولتاژ را از 5 ولت به 3 ولت کاهش دهم. من نیاز به یک مقاومت دارم ، که ولتاژ 2 ولت را در جریان 19 میلی آمپر کاهش می دهد.
2 V / 0.019 A = 105 Ω
توان اتلاف شده عبارت است از:
2 ولت * 19 میلی آمپر = 38 میلی وات
که قابل اغماض است. خیلی بیشتر می تواند خود مقاومت را منفجر کند. با این وجود ، بدون مقاومت 105 Ω ممکن است LED را بکشم. من 100 مقاومت Ω و 120 Ω دارم. من با 120 Ω می روم. محافظت بیشتری می کند.
آزمایش هر 7 شمع با ولتاژ 3 ولت نور روشنی را به همراه داشت ، به جز یک شمع ، که فقط دارای نور بسیار کم بود ، و تنها مقداری 0.8 میلی آمپر از آن عبور می کرد. این شمع من با مقاومت اضافی بود. مشخص شد که شمع های دیگر هیچ مقاومتی ندارند. چراغ های LED استفاده شده در لوستر به سادگی برای 3 ولت طراحی شده اند! شمع با مقاومت اضافی باید با استفاده از خشونت ملایم باز می شد ، اما چیزی شکسته نمی شد. این مقاومت درست در زیر LED کوچک داخل لامپ شمع پلاستیکی یافت شد. مجبور شدم آن را جدا کنم و سیمها را مجدداً لحیم کنم. کمی کثیف بود ، زیرا آهن لحیم کاری مقداری چسب حرارتی را گرم کرد که برای مونتاژ استفاده شده بود.
بنابراین اکنون می دانم که از هر منبع تغذیه ای که استفاده می کنم ، ولتاژ هر چه باشد ، باید ولتاژ را به 3 ولت کاهش دهم و به 19 میلی آمپر برسد.
اگر با فناوری LED بیشتر آشنا بودم ، نوع LED مورد استفاده را تشخیص می دادم و می دانستم که به 3 ولت نیاز دارد.
مرحله 2: مقداری لحیم کاری
در این مرحله من تمام سیمهای مثبت (+) را از 5 شمع به یک سیم متصل می کنم. سپس یک سیم منفی منفی (-) برای هر شمع اضافه می کنم. چراغ LED فقط زمانی روشن می شود که "+" و "-" به سمت راست حرکت کنند. از آنجا که از هر شمع فقط دو انتهای کابل یکسان دارید ، باید آزمایش کنید که کدام یک "+" و کدام "-" است. برای این کار به منبع تغذیه 3 ولت نیاز دارید. من یک بسته باتری کوچک شامل دو باتری AAA داشتم. یک باتری سکه ای 3 ولت برای آزمایش نیز عالی عمل می کند.
پل شمعی برای کار بین آردوینو و پل به 8 کابل نیاز دارد. اگر کابل با 8 سیم عایق پیدا کردید ، عالی خواهد بود. یک سیم باید 120 میلی آمپر داشته باشد ، بقیه آنها حداکثر 20 میلی آمپر را حمل می کنند. من تصمیم گرفتم از 4 کابل دو سیم استفاده کنم ، که اتفاقاً داشتم.
تصویر اول نشان می دهد که چگونه من یک سیم معمولی برای اتصال همه سیم های "+" از شمع ها آماده کردم. مقداری عایق سیم معمولی را برای هر شمع بردارید. یک قطعه لوله عایق کوچک (نوار زرد در تصویر) برای هر مفصل اضافه کنید و آن را در محل مناسب کابل معمولی قرار دهید. سیم '+' را از هر شمع به محل اتصال آن بچسبانید ، محل اتصال را با لوله جمع کننده بپوشانید و آن را کوچک کنید. البته ، نوار چسب ساده خوب است ، همچنین همه چیز در پایان پوشش داده می شود.
تصویر دوم سیم های '-' را نشان می دهد که هر شمع به آن نیاز دارد. سیم معمولی "+" مستقیماً به پین 5 ولت آردوینو (یا شاید از طریق تخته نان) می رود. هر سیم "-" به پین خود IC ترانزیستور می رود (دوباره ، احتمالاً از طریق تخته نان).
آردوینو را اغلب نمونه اولیه می نامند. تخته نان نیز چیزی است که شما در نمونه های اولیه از آن استفاده می کنید. آنچه در این دستورالعمل توصیف می کنم یک نمونه اولیه است. من آن را به یک محصول براق با کیفیت و با همه چیز در قاب های پلاستیکی زیبا مخفی نمی کنم. بردن آن از نمونه اولیه به سطح بعدی به معنی جایگزینی تخته نان با یک برد مدار چاپی و اجزای لحیم شده و حتی جایگزینی آردوینو با یک تراشه میکروکنترلر ساده است (در واقع چنین تراشه ای مغز آردوینو است). و قرار دادن همه چیز در یک قاب پلاستیکی یا داخل پل شمع هک شده.
مرحله 3: اتصالات
درباره Arduinos ، برگرفته از این صفحه:
- حداکثر حداکثر جریان در هر پین ورودی/خروجی: 40 میلی آمپر
- مجموع جریانهای خروجی/پین خروجی: 200mA
شمعهای من هر کدام 19 میلی آمپر می کشند ، هنگامی که توسط 3 ولت تغذیه می شوند ، هفت عدد از آنها وجود دارد که 133 میلی آمپر است. بنابراین می توانم آنها را مستقیماً از پین های خروجی تغذیه کنم. با این حال ، من برخی از IC های ترانزیستور دارلینگتون یدکی دارم. بنابراین فکر کردم ، چرا که نه. مدار من کار را به درستی انجام می دهد: پین های داده فقط برای سیگنال ها هستند ، نه برای قدرت. در عوض من برای تغذیه چراغ های LED از پین 5 ولت روی Arduino استفاده می کنم. هنگام آزمایش ، لپ تاپ خود را به آردوینو متصل می کنم. همه چیز از USB لپ تاپ تغذیه می کند ، که 5 ولت می دهد. Arduino Mega فیوز مخصوص خود را دارد که برای محافظت از کامپیوتر با 500 میلی آمپر ضربه می زند. شمع های من حداکثر 133 میلی آمپر می کشند. آردوینو احتمالاً بسیار کمتر است. وقتی لپ تاپ تغذیه می کند همه چیز خوب کار می کند ، بنابراین استفاده از یک باتری 5 ولت متصل به پورت USB آردوینو بسیار خوب است.
پین های داده D3 - D9 به IC ULN2803APGCN می روند. LED ها روی 3 ولت کار می کنند. هر لامپ به منبع 5 ولت و بیشتر به یک مقاومت 120 Ω متصل است. علاوه بر یک کانال IC ، که در نهایت مدار را از طریق یک ترانزیستور دارلینگتون در IC به زمین متصل می کند.
یک دکمه فشاری به مدار اضافه می شود تا برخی از اقدامات کاربر فعال شود. پل شمع می تواند چند برنامه قابل انتخاب توسط کاربر داشته باشد.
دکمه فشار در مدار به RESET و GND متصل است. این دقیقاً همان کاری است که دکمه تنظیم مجدد داخلی انجام می دهد. از آنجا که من همه چیز را در یک قاب پلاستیکی قرار نمی دهم ، از دکمه تنظیم مجدد در Arduino برای کنترل برنامه استفاده می کنم. افزودن یک دکمه مطابق تصویر دقیقاً مانند دکمه تنظیم مجدد برد عمل می کند. این برنامه با به خاطر سپردن برنامه ای که آخرین بار در برنامه اجرا شد ، کار می کند. بنابراین ، هر بازنشانی به برنامه نور بعدی پیش می رود.
عکسها نشان می دهند که چگونه کابل های جدید از پل بیرون می آیند ، چگونه IC ترانزیستور و مقاومتها را روی تخته نان گذاشته و چگونه سیمهای بلوز به آردوینو مگا متصل می شوند. من 4 سیم جامپر مرد و مرد را به 8 سیم نیمه تقسیم کردم ، که آنها را به 8 کابل که از پل شمع بیرون می آیند لحیم کردم. به این ترتیب من فقط می توانم کابل ها را به تخته نان بچسبانم.
جایگزین بدون ترانزیستور
در مرحله قبل ، یک سیم معمولی "+" برای شمع ها و سیمهای جداگانه "-" را آماده کردم ، که از IC ترانزیستور به زمین می روند. هنگامی که یک پین داده بالا می رود ، سیم مربوطه--از طریق ترانزیستور و چراغ های LED زمین گیر می شود.
اتصال مستقیم سیم های '-' به پین های داده آردوینو نیز کار می کند ، اما همیشه به این نکته توجه داشته باشید که پین های داده چقدر می توانند جریان داشته باشند! این رویکرد نیاز به تغییر در برنامه من دارد. برای روشن شدن شمع ها باید پین های داده کم شوند. برای استفاده از برنامه من همانطور که هست ، باید "+" و "-" را در شمع ها تغییر دهید. یک سیم مشترک '-' برای شمع ها داشته باشید که به GND در آردوینو می رود. و سیمهای جداگانه بین سیم '+' شمع و یک پین داده آردوینو قرار دارد.
مرحله 4: برنامه های نور
برنامه من ، که در مرحله بعد ارائه می کنم ، 9 برنامه سبک را پشت سر می گذارد. با فشردن دکمه چراغها برای یک ثانیه سیاه می شوند ، سپس برنامه نور زیر شروع می شود. برنامه ها به شرح زیر است:
- سوسو زدن قوی. شمع ها به طور تصادفی می لرزد. وقتی از فاصله نزدیک به آنها خیره می شوید ، این بسیار آزاردهنده به نظر می رسد ، اما ممکن است از راه دور و شاید پشت پنجره سردخانه زیر شیروانی خوب به نظر برسد. اگرچه ، همسایه شما ممکن است با آتش نشانی تماس بگیرد.
- سوسو زدن نرم. بسیار خوب به نظر می رسد. مانند شمع های واقعی در اتاقی بدون پیش نویس.
- سوسو زدن متفاوت است. شمع ها در فاصله 30 ثانیه به آرامی بین سوسو زدن قوی و نرم متناوب می شوند.
- سوسو زدن متفاوت است. مانند شماره 3 ، اما هر شمع در سرعت خود بین 30 ثانیه تا 60 ثانیه متفاوت است.
- چشمک زدن سریع. شمع ها در سطح کم نور ثابت می درخشند و به طور تصادفی چشمک می زنند. به طور متوسط در هر ثانیه یک چشمک می زند.
- چشمک زدن آهسته. مانند شماره 5 ، اما با سرعت بسیار کندتر.
- موج سریع از شمع بالا به سمت شمع های پایین.
- موج آهسته را از شمع بالا به سمت شمع های پایینی بکشید.
- نور روشن استاتیک. من مجبور بودم این را شامل شوم ، نمی خواستم از عملکرد اصلی خلاص شوم.
مرحله 5: کد
/*
BRIDGE CANDLE FLICKERING */ // متغیر حالت را برای نگه داشتن حالت // از طریق عملیات بازنشانی _attribute _ ((بخش (". noinit"))) حالت int بدون علامت اعلام کنید. // هنگامی که برنامه پس از تنظیم مجدد شروع می شود ، این قطعه // حافظه اولیه نمی شود ، اما مقدار // قبل از تنظیم مجدد را حفظ می کند. اولین باری که برنامه // اجرا شد ، یک مقدار تصادفی دارد. / * * کلاس شمع همه چیز مورد نیاز * را برای محاسبه سطح نور برای * شمع سوسو نگه می دارد. */ class candle {private: long maxtime؛ مدت زمان طولانی ؛ ماکسلیت بلند ؛ مینایت بلند ؛ میانگین بلند ؛ زمان اصلی اولیه ؛ زمان اولیه طولانی ؛ اریگماکسلیت طولانی ؛ اورجینلیت طولانی ؛ اورجینلایت بلند ؛ deltamaxtime طولانی ؛ زمان دلتنگی طولانی ؛ دلتاماکسلیت طولانی ؛ دلتامینلیت طولانی ؛ دلتامانلیت طولانی ؛ لفورات طولانی ؛ غروب طولانی ؛ شروع طولانی ؛ هدف بلند ؛ شناور فاکتور ؛ زمان هدف طولانی ؛ شروع طولانی مدت ؛ دلتایم طولانی ؛ void newtarget (خالی)؛ onetarget طولانی (باطل) ؛ عمومی: شمع (حصیر بلند ، بلند mit ، long mal ، long mil ، long mel ، long eo) ؛ سطح طولانی (باطل) ؛ void initlfo (دلتامات بلند ، دلتامیت طولانی ، دلتمال طولانی ، دلتامیل طولانی ، دلتامان بلند ، نرخ طولانی) ؛ void setlfo (باطل)؛ }؛ شمع:: شمع (حصیر بلند ، بلند mit ، long mal ، long mil ، long mel ، long eo): maxtime (mat) ، mintime (mit) ، maxlite (mal) ، minlite (mil) ، meanlite (mel) ، شبانه (eo) ، origmaxtime (mat) ، origmintime (mit) ، origmaxlite (mal) ، origminlite (mil) ، origmeanlite (mel) {target = meanlite؛ newtarget ()؛ } / * * levelnow () سطح نوری را که شمع باید در حال حاضر داشته باشد برمی گرداند. * عملکرد از تعیین سطح نور تصادفی جدید و * زمان لازم برای رسیدن به آن سطح مراقبت می کند. این تغییر خطی نیست ، بلکه از یک منحنی سیگموئید پیروی می کند. هنگامی که زمان تعریف سطح جدید * فرا نرسیده است ، عملکرد به سادگی سطح نور را برمی گرداند. */ long candle:: levelnow (void) {کمک طولانی ، در حال حاضر ؛ شناور t1 ، t2 ؛ در حال حاضر = millis ()؛ if (now> = targettime) {help = target؛ newtarget ()؛ بازگشت کمک ؛ } else {// help = target * (millis () - starttime) / deltatime + start * (targettime - millis ()) / deltatime؛ t1 = float (timetime - now) / deltatime؛ t2 = 1. - t1 ؛ // این کمک محاسبه سیگموئید است = t1*t1*t1*start + t1*t1*t2*start*3 + t1*t2*t2*target*3 + t2*t2*t2*target؛ بازگشت کمک ؛ }} void candle:: newtarget (void) {sum sum؛ جمع = 0 ؛ برای (long i = 0؛ i <evenout؛ i ++) sum+= onetarget ()؛ شروع = هدف ؛ target = sum / evenout؛ زمان شروع = millis ()؛ targettime = starttime + random (زمان زمان ، زمان مکمل) ؛ deltatime = targettime - starttime؛ } long candle:: onetarget (void) {if (random (0، 10) lastcheck + 100) {lastcheck = now؛ / * * جرقه زدن برای چشمک زدن "پس از سرعت میلی ثانیه": * شروع به بررسی بعد از نرخ / 2 میلی ثانیه * در طول دوره سرعت / 2 میلی ثانیه ، * احتمال چشمک زدن را 50 کنید. * اگر نرخ 10000 میلی ثانیه باشد ، در طول 5000 میلی ثانیه سکه * 50 بار چرخانده می شود. * 1/50 = 0.02 * اگر تصادفی (10000) زمان شروع + نرخ / 2) {اگر (تصادفی (نرخ) زمان هدف) lowlite را برگرداند ؛ return (start - lowlite) * (timetime - now) / (targettime - starttime) + lowlite؛ } void twinkler:: twink (void) {starttime = millis ()؛ targettime = تصادفی (زمان مکرر ، زمان اضافی) + زمان شروع ؛ شروع = تصادفی (minlite ، maxlite) ؛ } void setup () {int led؛ // متغیر حالت جادویی را بخوانید ، که باید بگوید // آخرین برنامه نوری که آخرین بار اجرا شد ، آن را افزایش دهید // و در صورت سرریز به صفر بازنشانی کنید. حالت ++ ؛ حالت٪ = 9؛ // این به هر مقدار اهمیت می دهد // اولین باری بود که آردوینو // این برنامه را اجرا کرد. / * * نکته مهم * ============= * * اصلی ترین کاری که این برنامه انجام می دهد خروج سیگنال های PWM * به چراغ های LED است. در اینجا من پین های 3 تا 9 را روی * حالت خروجی تنظیم کرده ام. در Arduino Mega2560 ، این پین ها * سیگنال های PWM را به خوبی خروجی می دهند. اگر آردوینو دیگری دارید ، * از کدام پین (و چند) می توانید استفاده کنید. اگر Arduino شما * نتواند پین های سخت افزاری PWM کافی ارائه دهد ، همیشه می توانید کد را * برای استفاده از نرم افزار PWM بازنویسی کنید. * */ pinMode (3 ، OUTPUT) ؛ pinMode (4 ، OUTPUT) ؛ pinMode (5 ، OUTPUT) ؛ pinMode (6 ، OUTPUT) ؛ pinMode (7 ، OUTPUT) ؛ pinMode (8 ، OUTPUT) ؛ pinMode (9 ، OUTPUT) ؛ pinMode (LED_BUILTIN ، OUTPUT) ؛ analogWrite (LED_BUILTIN ، 0) ؛ // فقط چراغ قرمز مزاحم روی شمع *آردوینو را خاموش کنید [7] ؛ // آماده استفاده از شمع های سوسو زدن ، خواه از آنها استفاده کنید یا نه چشمک *twink [7] ؛ // آماده استفاده از شمع های چشمک زن … اگر (حالت == 8) {برای (int i = 3؛ i <10؛ i ++) analogWrite (i، 255)؛ در حالی که (درست) ؛ // هر بار که این برنامه اجرا می شود ، وارد // این نوع حلقه بی پایان می شود ، تا زمانی که دکمه تنظیم مجدد // فشار داده شود. } if (حالت <2) // سوسو زدن {long maxtime_؛ طول مدت طولانی_؛ maxlite_ بلند؛ minlite طولانی_ ؛ meanlite طولانی_؛ long even_؛ if (حالت == 0) {maxtime_ = 250؛ زمان_حالت_ = 50 ؛ maxlite_ = 256؛ minlite_ = 0 ؛ meanlite_ = 128؛ زوج_ = 1؛ } if (mode == 1) {maxtime_ = 400؛ حداقل زمان = 150؛ maxlite_ = 256؛ minlite_ = 100 ؛ meanlite_ = 200 ؛ زوج_ = 1؛ } برای (int i = 0؛ i <7؛ i ++) {can = شمع جدید (maxtime_، mintime_، maxlite_، minlite_، meanlite_، even_)؛ } while (true) // حلقه بی پایان برای چشمک زدن شمع ها {for (int i = 0؛ i levelnow ())؛ }} if (حالت <4) // lfo به سوسو زدن اضافه می شود {if (mode == 2) // همان lfo (30 ثانیه) برای همه شمع ها {برای (int i = 0؛ i initlfo (75 ، 50 ، 0 ، 50، 36، 30000)؛}} if (mode == 3) // lfo: s مختلف برای شمع ها {برای (int i = 0؛ i initlfo (75، 50، 0، 50، 36، 20000)؛ can [1]-> initlfo (75 ، 50 ، 0 ، 50 ، 36 ، 25000) ؛ می تواند [2]-> initlfo (75 ، 50 ، 0، 50، 36، 30000) ؛ می تواند [3]-> initlfo (75 ، 50 ، 0 ، 50 ، 36 ، 35000) ؛ می تواند [4]-> initlfo (75 ، 40 ، 0 ، 50 ، 36 ، 40000) ؛ می تواند [5]-> initlfo (75 ، 30 ، 0 ، 50 ، 26، 45000)؛ can [6]-> initlfo (75، 20، 0، 50، 16، 50000)؛ can [7]-> initlfo (75، 10، 0، 50، 6، 55000)؛} در حالی که (true) // حلقه بی پایان برای سوسو زدن شمع ها با lfo {long lastclock = 0 ؛ برای (int i = 0 ؛ i levelnow ()) ؛ اگر (millis ()> lastclock + 4000) {lastclock = millis () ؛ برای (int i = 0؛ i setlfo ()؛}}} if (mode <6) // شمع های چشمک زن {int speedo؛ if (mode == 4) speedo = 6000؛ else speedo = 22000؛ for (int i = 0 ؛ i <7؛ i ++) twink = چشمک زن جدید (300 ، 295 ، 255 ، 250 ، speedo) ؛ در حالی که (true) {برای (int i = 0 ؛ i levelnow ())؛ } } // امواج. // این قسمت فقط با استفاده از براکت های پیچیده // شروع می شود تا مطمئن شوید هیچ نام متغیری متضاد وجود ندارد. // بدون نیاز به براکت ، بدون نیاز به بررسی // مقدار حالت.{int lolite = 2؛ int hilite = 255 ؛ int میانگین ؛ int ampl؛ شناور fasedelta = 2.5 ؛ شناور fase ؛ int elong؛ شناور فاکتور ؛ زمان طولانی؛ میانگین = (لولیت + هیلیت) / 2 ؛ ampl = hilite - میانگین ؛ if (حالت == 6) دوره = 1500 ؛ دوره دیگر = 3500 ؛ phactor = 6.28318530718 / دوره ؛ while (true) {fase = phactor * (millis ()٪ period)؛ elong = میانگین + ampl * sin (fase) ؛ analogWrite (7 ، elong) ؛ analogWrite (9 ، elong) ؛ fase = phactor * ((millis () + period / 4)٪ period) ؛ elong = میانگین + ampl * sin (fase) ؛ analogWrite (3 ، elong) ؛ analogWrite (8 ، elong) ؛ fase = phactor * ((millis () + period / 2)٪ period) ؛ elong = میانگین + ampl * sin (fase) ؛ analogWrite (4 ، elong) ؛ analogWrite (5 ، elong) ؛ fase = phactor * ((millis () + 3 * period / 4)٪ period) ؛ elong = میانگین + ampl * sin (fase) ؛ analogWrite (6 ، elong) ؛ } // هنگام اتصال سیم های شمع به آردوینو ، // آنها را مخلوط کردم و هرگز آنها را مرتب نکردم. // ترتیب برای ایجاد الگوهای موج مهم است ، // بنابراین من این جدول کوچک را برایم نوشتم: // // شمع# در پل: 2 3 5 4 7 6 1 // پین داده در آردوینو: 3 4 5 6 7 8 9}} void loop () {// از آنجایی که هر برنامه نوری حلقه نامحدود خود است ، // من همه حلقه ها را در قسمت begin () // نوشتم و برای این حلقه () چیزی باقی نگذاشتم. }
مرحله 6: درباره PWM
چراغ ها هنگامی که با 3 ولت تغذیه می شوند بسیار می درخشند و با استفاده از تنها 1.5 ولت به هیچ وجه روشن نمی شوند. چراغ های LED با ولتاژ محو شدن به خوبی محو نمی شوند ، مانند چراغ های رشته ای. در عوض آنها باید با ولتاژ کامل روشن شوند ، سپس خاموش شوند. هنگامی که این اتفاق 50 بار در ثانیه رخ می دهد ، آنها با 50 درصد روشنایی ، بیشتر یا کمتر ، به خوبی می درخشند. اگر اجازه دهند فقط 5 میلی ثانیه و 15 میلی ثانیه خاموش باشند ، ممکن است با 25 درصد روشنایی بدرخشند. این تکنیک چیزی است که باعث می شود نور LED کم نور شود. این تکنیک مدولاسیون عرض پالس یا PWM نامیده می شود. یک میکروکنترلر مانند آردوینو معمولاً دارای پین داده است که می تواند سیگنال های روشن/خاموش را ارسال کند. برخی از پین های داده دارای قابلیت هایی برای PWM هستند. اما اگر تعداد کافی پین با PWM داخلی وجود نداشته باشد ، معمولاً می توان از کتابخانه های برنامه نویسی اختصاصی برای ایجاد "پین های نرم افزاری PWM" استفاده کرد.
در پروژه خود ، من از Arduino Mega2560 استفاده کردم که دارای سخت افزار PWM در پین های 3 تا 9 است. اگر از Arduino UNO استفاده می کنید ، تنها شش پین PWM دارید. در این صورت ، اگر به شمع هفتم (یا حتی بیشتر) احتیاج دارید ، می توانم کتابخانه PWM نرم افزاری برت هاگمن را توصیه کنم ، که می توانید در اینجا پیدا کنید.
توصیه شده:
تزیین درختان چشمک زن PCB: 5 مرحله (همراه با تصاویر)
دکوراسیون درختان فلش PCB: در این آموزش ، نحوه ساخت موثر یک پروژه الکترونیکی را خواهید آموخت. به عنوان مثال ، من یک PCB با چراغ های چشمک زن از ابتدا تا انتها می سازم. تمام قطعات الکترونیکی خود به خود کار می کنند و نیازی به کد نویسی ندارند. تنها کاری که باید انجام دهید این است که
کیت DIY آسیاب بادی LED قرمز چشمک زن چراغ: 6 مرحله (همراه با تصاویر)
کیت DIY Windmill Shaped Red LED Flashing Light: توضیحات: این یک طراحی DIY MCU است که کیت های آسیاب بادی الکترونیکی را برای تمرین لحیم کاری آموزش می دهد. آسان برای جمع آوری: این محصول به شما می آید که کیت کامپوننت باید روی یک ماژول سرد مانند آسیاب بادی نصب شود. نام نشانگر اجزای کیت عبارت بود از
اولین ساعت شمعی فیبر نوری جهان: 14 مرحله (همراه با تصاویر)
اولین ساعت شمعی فیبر نوری در جهان: من تصمیم گرفتم از همسرم هدیه بگیرم و می خواستم یک ایده اصلی ارائه کنم. من ایده یک مجسمه متحرک را دوست داشتم و پس از بحث و بررسی فراوان به مفهوم یک ساعت مکانیکی رسیدم که با استفاده از کریستال ، شمع و… چشمک می زد و چشمک می زد
سه راه برای ایجاد مدار چشمک زن LED با کنترل سرعت و چشمک زدن متناوب: 3 مرحله
سه روش برای ایجاد مدار فلاشر LED با کنترل نرخ و چشمک زدن متناوب: مدار فلشر مداری است که در آن LED با سرعت متأثر از خازن مورد استفاده روشن و خاموش می شود. در اینجا ، من سه روش مختلف برای ایجاد این مدار با استفاده از شما نشان خواهم داد. : 1 ترانزیستورها 2. 555 تایمر IC3. Quartz CircuitLDR همچنین می تواند برای ج
LED ساعت چشمک زن شکل چشمک زن کیت: 8 مرحله
کیت های ساعت شنی چشمک زن LED کیت های DIY: در این پروژه ICStation به شما نشان می دهد که چگونه می توانید یک کیت خنده دار ساعت شنی شکل چشمک زن LED DIY را ایجاد کنید. این شامل 57 قطعه دیود LED 5 میلی متری است ، چراغ های دیود LED بالا پایین می آیند و چراغ های دیود LED پایین هنگام رسیدن به زمان ، افزایش می یابد