فهرست مطالب:
- مرحله 1: آسان تر شدن (کمی) بلند شدن
- مرحله 2: رنگ بیشتر
- مرحله 3: منحنی سیگموئید ، چشمک زدن و "وضوح"
- مرحله 4: الکترونیک
- مرحله 5: مقاومت ها (برای Leds)
- مرحله 6: نرم افزار
- مرحله 7: IKEA (بدون آنها چه می کنیم)
تصویری: چراغ بیداری: 7 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
در حال نوشتن این درس آموز ، اواسط زمستان در نیمکره شمالی است و این به معنی روزهای کوتاه و شبهای طولانی است. من عادت دارم ساعت 06:00 بیدار شوم و در تابستان خورشید تا آن زمان می درخشد. اگرچه در زمستان ، ساعت 09:00 روشن می شود اگر خوش شانس باشیم که روزی را ابری نداریم (که … اغلب اوقات).
مدتی پیش در مورد "چراغ بیداری" ساخته شده توسط فیلیپس که در نروژ برای شبیه سازی یک صبح آفتابی استفاده شد ، خواندم. من هرگز یکی را خریداری نکردم ، اما مدام به ساختن آن فکر می کردم زیرا ساختن آن توسط خودتان لذت بخش تر از خرید آن است.
تدارکات:
قاب عکس "Ribba" 50 40 40 سانتی متر از IKEA
تخته چوبی سوراخ دار از فروشگاه سخت افزار
برد توسعه STM8S103 از طریق Ebay یا دیگران
DS1307 ساعت واقعی (موس ، فارنل ، کنراد و غیره)
کریستال ساعت 32768 هرتز (موس ، فارنل ، کنراد و غیره)
3 ولت لیتیوم همسان + دارنده همسان
MOSFET های N-channel BUZ11 یا IRLZ34N (3x)
BC549 (یا هر ترانزیستور NPN دیگر)
هر اندازه که می خواهید LED های سفید ، قرمز ، آبی ، سبز و غیره را انتخاب کنید
برخی از مقاومت ها و خازن ها (شماتیک را ببینید)
Powerbrick ، 12V تا 20V ، 3A یا بیشتر (به عنوان مثال منبع تغذیه لپ تاپ قدیمی)
مرحله 1: آسان تر شدن (کمی) بلند شدن
ایده این است که بلند شدن از رختخواب هنگام صبح هنوز تاریک است. و اگر نزدیک یا حتی بالای دایره قطبی زندگی می کنید ، تاریکی بسیار طولانی خواهد بود. در مناطقی مانند ترومسو در نروژ ، نور زیادی نمی گیرد زیرا در آنجا خورشید در نیمه نوامبر غروب می کند تا در نیمه راه دوباره ظاهر شود.
بنابراین کاری که فیلیپس انجام داد شبیه سازی طلوع خورشید بود.
فیلیپس به آرامی روشنایی لامپ را افزایش می دهد ، که احتمالاً با چندین لامپ ساخته شده است اما در پشت یک دیفیوزر پنهان شده است. زمان خاموش شدن تا روشنایی کامل 30 دقیقه طول می کشد.
چراغ های بیداری فیلیپس چندان گران نیستند اما فقط یک رنگ دارند و کمی کوچک به نظر می رسند. فکر می کنم می توانم بهتر عمل کنم.
مرحله 2: رنگ بیشتر
چراغ بیداری من از چهار رنگ سفید ، قرمز ، آبی و سبز استفاده می کند. ابتدا لیدهای سفید را بیاورید ، سپس قرمزها را بیاورید ، و چند عدد لید آبی و سبز. ایده من این بود که می توانم نه تنها افزایش روشنایی بلکه تغییر رنگ روشن صبح را شبیه سازی کنم ، با کمی سفید شروع می کنم ، کمی بعد رنگ قرمز را اضافه می کنم و در انتها رنگ آبی و سبز را مخلوط می کنم. مطمئن نیستم که واقعاً شبیه به نور صبح باشد ، اما صفحه نمایش رنگارنگ را مانند الان دوست دارم.
نور من نیز سریعتر از چراغ بیداری فیلیپس است ، به جای 30 دقیقه نور فیلیپس ، روشنایی من در کمتر از 5 دقیقه از 0 تا 100 درصد روشنایی می رسد. بنابراین خورشید من خیلی سریعتر طلوع می کند.
توجه داشته باشید:
تهیه عکس از چراغ بیدار شدن بسیار سخت است ، من با چندین دوربین و تلفن هوشمند سعی کردم ، اما تمام تصاویری که تهیه کردم حقیقت را رعایت نمی کند.
مرحله 3: منحنی سیگموئید ، چشمک زدن و "وضوح"
البته من می خواستم روشنایی را تا حد ممکن صاف کنم. چشمان انسان از نظر حساسیت لگاریتمی هستند ، به این معنی که در تاریکی مطلق بیشتر از نور روز کامل حساس هستند. افزایش بسیار کمی در روشنایی هنگامی که سطوح پایین است "احساس می کند" مانند یک گام بسیار بزرگتر زمانی که نور در حدود 40٪ روشنایی است. برای دستیابی به این هدف ، من از منحنی خاصی به نام Sigmoid (یا منحنی S) استفاده کردم. این منحنی به عنوان یک منحنی نمایی شروع می شود که دوباره در نیمه راه قرار می گیرد. من دریافتم که این یک روش بسیار خوب برای افزایش (و کاهش) شدت است.
فرکانس ساعت میکروکنترلر (و تایمرها) 16 مگاهرتز است و از حداکثر رزولوشن TIMER2 (65536) برای ایجاد سه سیگنال عرض پالس (PWM) استفاده می کنم. بنابراین ضربان قلب 16000000 /65536 = 244 بار در ثانیه می آید. این بسیار بالاتر از حد چشم برای دیدن هر گونه سوسو زدن است.
بنابراین led ها با یک سیگنال PWM تغذیه می شوند که با این 16 بیت بیتمر میکروکنترلر STM8S103 ساخته شده است. حداقل این سیگنال PWM می تواند روشن باشد 1 طول پالس دارد و 65535 پالس باقی مانده خاموش است.
بنابراین LED های متصل به آن سیگنال PM در 1/65536 ثانیه زمان روشن می شوند: 0.0015٪
حداکثر آنها ON 65536/65536- زمان هستند: 100٪.
مرحله 4: الکترونیک
میکروکنترلر
مغز نور بیداری یک میکروکنترلر STM8S103 از STMicroelectronics است. من دوست دارم از قطعاتی استفاده کنم که قابلیت های کافی برای یک کار را دارند. برای یک کار ساده ، نیازی به استفاده از میکروکنترلرهای STM32 (سایر موارد مورد علاقه من) نیست ، اما Arduino UNO کافی نیست ، زیرا من سه سیگنال PWM با وضوح 16 بیت می خواهم و تایمر با سه کانال خروجی در UNO وجود ندارد. به
ساعت بیدرنگ
زمان از ساعت واقعی DS1307 که با کریستال 32768 هرتز کار می کند و دارای باتری پشتیبان 3 ولت است ، خوانده می شود.
تنظیم زمان فعلی ، روز و زمان بیداری با دو دکمه انجام می شود و نمایشگر کاراکتر LCD 16 2 2 نشان می دهد. برای اینکه اتاق خواب من واقعاً تاریک باشد ، نور پس زمینه صفحه LCD تنها زمانی روشن می شود که چراغ های LED روشن تر از نور پس زمینه باشند و هنگامی که شما زمان ، روز و زمان بیدار شدن را تنظیم می کنید.
قدرت
منبع تغذیه از منبع تغذیه لپ تاپ قدیمی است ، دستگاه من 12 ولت تولید می کند و می تواند 3A را تحویل دهد. هنگامی که منبع تغذیه دیگری دارید ، ممکن است لازم باشد مقاومت ها را به صورت سری با سیم های رهبری تنظیم کنید. (به پایین مراجعه کنید)
لیدز
چراغها به منبع تغذیه 12 ولت متصل می شوند ، بقیه قطعات الکترونیکی روی 5 ولت با تنظیم کننده خطی 7805 ساخته می شوند. در شماتیک آمده است که من از یک تنظیم کننده TO220 استفاده می کنم ، این مورد نیاز نیست زیرا میکروکنترلر ، صفحه نمایش و ساعت واقعی از چند میلی آمپر استفاده می کند. ساعت من از نسخه TO92 کوچکتر 7805 استفاده می کند که قادر است 150 میلی آمپر را تامین کند.
تعویض رشته های led با MOSFET های کانال N انجام می شود. دوباره ، در شماتیک دستگاه های دیگری را نشان می دهد که من استفاده کردم. من دقیقاً سه ماسفت BUZ11 بسیار قدیمی به جای ماسفت جدیدتر IRLZ34N داشتم. آنها خوب کار می کنند
البته تا زمانی که MOSFET ها و منبع تغذیه می توانند جریان را کنترل کنند ، می توانید هر تعداد led که دوست دارید قرار دهید. در شماتیک من فقط یک رشته از هر رنگ کشیده ام ، در حقیقت چندین رنگ موازی رشته های دیگر آن رنگ وجود دارد.
مرحله 5: مقاومت ها (برای Leds)
درباره مقاومتهای موجود در سیمهای رهبری. چراغ های سفید و آبی معمولاً وقتی در روشنایی کامل هستند ولتاژ 2.8 ولت بر روی آنها دارند.
چراغ های قرمز فقط 1.8 ولت دارند ، چراغ های سبز من 2 ولت در روشنایی کامل دارند.
نکته دیگر این است که روشنایی کامل آنها یکسان نیست. بنابراین برای روشن شدن آنها به همان اندازه (به نظر من) آزمایش هایی طول کشید. با درخشندگی LED ها در روشنایی کامل ، آنها در سطوح پایین نیز به همان اندازه روشن به نظر می رسند ، سیگنال عرض پالس همیشه آنها را در کمال روشن روشن می کند ، اما در زمان های طولانی تر و کوتاهتر ، چشم های شما از میانگین گیری مراقبت می کنند.
با چنین محاسبه ای شروع کنید. منبع تغذیه (در مورد من) 12 ولت را ارائه می دهد.
چهار چراغ سفید سری به 4 x 2.8V = 11.2V نیاز دارند ، این 0.8V برای مقاومت باقی می ماند.
من دریافتم که آنها به اندازه کافی 30mA روشن هستند ، بنابراین مقاومت باید:
0.8 / 0.03 = 26.6 اهم در شماتیک می بینید که من یک مقاومت 22 اهمی قرار دادم ، چراغ ها کمی روشن تر شدند.
چراغ های آبی در 30mA بسیار روشن بودند ، اما در مقایسه با led های سفید در 15 mA ، آنها همچنین در حدود 2.8V در 15mA داشتند ، بنابراین محاسبه 4 x 2.8V = 11.2V بود و دوباره 0.8V باقی می ماند.
0.8 / 0.015 = 53.3 اهم ، بنابراین من یک مقاومت 47 اهم را انتخاب کردم.
چراغ قرمزهای من نیز به اندازه 15 میلی آمپر نیاز به روشنایی بقیه دارند ، اما در آن جریان فقط 1.8 ولت دارند. بنابراین من می توانم موارد بیشتری را در مجموعه قرار دهم و هنوز "مقاومت" برای مقاومت داشته باشم.
شش چراغ قرمز 6 x 1.8 = 10.8V به من داد ، بنابراین بیش از مقاومت 12 بود - 10.8 = 1.2V
1.2 / 0.015 = 80 اهم ، من آن را به 68 اهم رساندم. درست مانند دیگران ، کمی روشن تر است.
چراغ های سبز رنگی که استفاده کردم به اندازه بقیه در حدود 20 میلی آمپر روشن است. من فقط به چند مورد (درست مثل آبی) نیاز داشتم و چهار مورد را به صورت سری انتخاب کردم. در 20mA آنها 2 ، 1V بیش از آنها ، 3 x 2.1 = 8.4V می دهند
12 - 8.4 = 3.6 ولت برای مقاومت. و 3.6 / 0.02 = 180 اهم
اگر این چراغ بیداری را بسازید بعید است که منبع تغذیه یکسانی داشته باشید ، باید تعداد LED های سری و مقاومتهای مورد نیاز را تنظیم کنید.
یک مثال کوچک. بگویید منبع تغذیه ای دارید که 20 ولت می دهد. من 6 LED آبی (و سفید) را به صورت سری ، 6 x 3V = 18V بنابراین 2V را برای مقاومت انتخاب کردم. و بگذارید بگوییم که شما روشنایی 40 میلی آمپر را دوست دارید. سپس مقاومت باید 2V / 0.04 = 50 اهم باشد ، یک مقاومت 47 اهم خوب خواهد بود.
توصیه می کنم با LED های معمولی (5 میلی متر) بیش از 50 میلی آمپر نروید. برخی می توانند بیشتر تحمل کنند ، اما من دوست دارم در امنیت باشم.
مرحله 6: نرم افزار
همه کد ها را می توان از آدرس زیر بارگیری کرد:
gitlab.com/WilkoL/wakeup_light_stm8s103
اگر می خواهید توضیحات را دنبال کنید ، کد منبع را در کنار بقیه این دستورالعمل باز نگه دارید.
اصلی.ج
Main.c ابتدا ساعت ، تایمر و سایر لوازم جانبی را تنظیم می کند. اکثر "درایورهایی" که من با استفاده از کتابخانه استاندارد STMicroelectronics نوشتم و اگر در مورد آنها س questionsالی دارید ، آن را در نظر زیر در زیر آموزش بنویسید.
ایپروم
من کد "متن برای نمایش" را که برای قرار دادن متن در eeprom STM8S103 به عنوان نظر گذاشتم ، گذاشتم. مطمئن نبودم که برای همه کدهایم فلش مموری کافی دارم ، بنابراین سعی کردم تا آنجا که ممکن است در eeprom قرار دهم تا تمام فلش برنامه را داشته باشم. در پایان این امر ضروری نبود و من متن را به فلش منتقل کردم. اما آن را بصورت متن کامنت گذاری شده در فایل main.c گذاشتم. داشتن آن بسیار خوب است ، وقتی که بعداً باید کاری مشابه انجام دهم (در پروژه دیگری)
eeprom هنوز استفاده می شود ، اما فقط برای ذخیره زمان بیداری است.
یک بار در ثانیه
پس از راه اندازی لوازم جانبی ، کد بررسی می کند که آیا یک ثانیه گذشته است (با تایمر انجام شده است).
منو
در این صورت ، بررسی می کند که آیا دکمه ای فشار داده شده است یا خیر ، در این صورت وارد منویی می شود که می توانید زمان فعلی ، روز هفته و زمان بیداری را تنظیم کنید. به یاد داشته باشید که از خاموش شدن تا روشنایی کامل حدود 5 دقیقه طول می کشد ، بنابراین زمان بیدار شدن را کمی زودتر تنظیم کنید.
زمان بیدار شدن در eeprom ذخیره می شود تا حتی پس از قطع برق "بفهمد" چه زمانی شما را بیدار کند. البته زمان فعلی در ساعت زمان واقعی ذخیره می شود.
مقایسه زمان فعلی و زمان بیداری
وقتی هیچ دکمه ای فشار داده نمی شود ، زمان فعلی را بررسی می کند و آن را با زمان بیداری و روز هفته مقایسه می کند. من نمی خواهم آخر هفته مرا بیدار کند:-)
در بیشتر مواقع هیچ کاری لازم نیست انجام شود ، بنابراین متغیر "leds" را روی OFF دیگر در ON قرار می دهد. این متغیر همراه با سیگنال "change_intensity" ، که از زمان سنج نیز می آید و 244 بار در ثانیه فعال است ، بررسی می شود. بنابراین وقتی متغیر "leds" روشن است شدت آن 244 بار در ثانیه افزایش می یابد و هنگامی که خاموش است 244 بار در ثانیه کاهش می یابد. اما افزایش در مراحل تک مرحله ای انجام می شود که کاهش آن در مراحل 16 است ، بدین معنا که وقتی نور بیدار کننده امیدوار است کار خود را انجام داده باشد ، 16 برابر سریعتر اما هنوز هموار خاموش می شود.
صافی و خارج از حافظه
صافی از محاسبه منحنی سیگموئید ناشی می شود. محاسبه بسیار ساده است اما به دلیل تابع exp () باید در متغیرهای نقطه شناور (دو برابر) انجام شود ، فایل sigmoid.c را ببینید.
در حالت استاندارد ، کامپایلر / پیوند دهنده کیهانی از متغیرهای نقطه شناور پشتیبانی نمی کند. روشن کردن آن آسان است (هنگامی که آن را پیدا کردید) اما با افزایش اندازه کد همراه است. این افزایش بسیار زیاد بود تا بتواند کد را با عملکرد () sprintf () در حافظه فلش جا دهد. و این عملکرد برای تبدیل اعداد به متن برای صفحه نمایش مورد نیاز است.
ایتوا ()
برای رفع این مشکل من تابع itoa () را ایجاد کردم. این یک تابع Integer To Ascii است که بسیار رایج است ، اما نه با کتابخانه استاندارد STMicroelectronics و نه با کتابخانه های کیهانی گنجانده نشده است.
مرحله 7: IKEA (بدون آنها چه می کنیم)
عکس از IKEA خریداری شده است. این یک قاب ریبا با ابعاد 50 در 40 سانتی متر است. این قاب بسیار ضخیم است و این امر باعث می شود وسایل الکترونیکی در پشت آن پنهان شوند. به جای پوستر یا تصویر ، من قطعه ای از تخته چوب سخت را قرار داده ام. می توانید آن را از فروشگاه سخت افزار بخرید ، جایی که گاهی اوقات "تخت خواب" نامیده می شود. سوراخ های کوچکی در آن وجود دارد که آن را برای قرار دادن چراغ های LED مناسب می کند. متأسفانه سوراخ های صفحه من کمی بزرگتر از 5 میلی متر بود ، بنابراین مجبور شدم از چسب حرارتی برای "نصب" لامپ ها استفاده کنم.
من یک سوراخ مستطیلی در مرکز صفحه سخت برای صفحه نمایش 16x2 ایجاد کردم و آن را فشار دادم. PCB با تمام وسایل برقی روی این صفحه نمایش آویزان است ، روی هیچ چیز دیگری نصب نشده است.
تخته چوبی سوراخ دار با اسپری سیاه رنگ شده بود اما در پشت حصیر قرار داشت. من دو سوراخ در قاب ایجاد کردم تا دکمه ها زمان و تاریخ را تنظیم کنند ، زیرا قاب نسبتاً ضخیم است ، مجبور شدم سوراخ های داخل قاب را گسترده کنم تا دکمه ها به اندازه کافی بیرون بیایند.
توصیه شده:
چراغ بیداری LED با قدرت بالا (+/- 15 وات): 5 مرحله
چراغ بیداری LED با قدرت بالا (+/- 15 وات): *یادداشت ویرایش 2020: اول از همه من دیگر از فن استفاده نمی کنم و به نظر می رسد خوب است. هوا گرم می شود ، اما هنوز چیزی سوخته است. با برخی از بینش های جدید و از آنجایی که این LED ها بسیار ارزان هستند ، من از بیش از 2 مورد استفاده می کنم و برخی LED های 3W را اضافه می کنم
چراغ قوه چراغ قوه چراغ قرمز با قدرت بالا DIY برای درد: 7 مرحله
چراغ قوه چراغ قوه چراغ قرمز DIY با قدرت بالا 660 نانومتر برای درد: آیا می توانید یک چراغ قوه چراغ قوه نور درمانی قرمز 660 نانومتری با قدرت بالا فقط با 80 دلار تهیه کنید؟ برخی از شرکت ها می گویند سس مخصوص یا دستگاهی با قدرت بالا دارند ، اما حتی آنها برای تظاهرات چشمگیر آنها را تقلب می کنند. یک منطقی d
تماس بیداری خودکار برف: 6 مرحله (همراه با تصاویر)
تماس خودکار برای بیدار شدن از برف: خروج صبح از خانه می تواند موجی از فعالیت باشد بعد از اینکه چند اینچ از وسایل سفید رنگ در طول شب حل شد. آیا خوب نیست در آن روزها کمی زودتر از خواب بیدار شوید تا استرس را از صبح دور کنید؟ این پروژه پروژه
با استفاده از این چراغ راهنما از چراغ راهنما ایمن بمانید: 5 مرحله (همراه با تصاویر)
با استفاده از چراغ راهنما از این دوچرخه ایمن بمانید: من عاشق دوچرخه سواری هستم ، معمولاً برای رفتن به مدرسه از آن استفاده می کنم. در فصل زمستان ، بیشتر اوقات هوا هنوز تاریک است و برای سایر وسایل نقلیه سخت است که چراغ های راهنمای دست من را ببینند. بنابراین این یک خطر بزرگ است زیرا ممکن است کامیون ها نبینند که من می خواهم
بیدار شدن آسان: چراغ بیداری هوشمند ساخته شده با تمشک پای: 6 مرحله
Easy Wake-Up: Light Wake-Up Light Made With Raspberry Pi: Intro برای پروژه درسی 1 من مجبور بودم چیزی بسازم. من همیشه مجذوب این بودم که چراغ بیداری مانند بیدار شدن از خواب برای شما مانند فلیپس چه فایده ای دارد. بنابراین تصمیم گرفتم چراغ بیداری بسازم. چراغ بیداری را با Raspberr روشن کردم