Სარჩევი:

არ არის ლურჯი ნათურა: 4 ნაბიჯი
არ არის ლურჯი ნათურა: 4 ნაბიჯი

ვიდეო: არ არის ლურჯი ნათურა: 4 ნაბიჯი

ვიდეო: არ არის ლურჯი ნათურა: 4 ნაბიჯი
ვიდეო: კახი კალაძე დატროლეს 😀🤣🤣 2024, ივლისი
Anonim
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა
არ არის ლურჯი ნათურა

ასე რომ, ეს ზარმაცი ძველი გიკი (L. O. G.) მუშაობდა Blue Light პროექტზე:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

მომდევნო ნაბიჯის გადადგმისთვის მინდოდა ნათურა, რომელიც დღისით იქნებოდა ნათელი და საღამოს/ღამეს არ ექნებოდა ლურჯი შუქი.

აპარატურის დიზაინი:

მე გადავწყვიტე გამოვიყენო RTC (რეალური დროის საათი) სინათლის ცვლილებების დროების გასაკონტროლებლად.

მე ავირჩიე DS3231, რადგან მას უკეთესი დრო აქვს სიზუსტის შესანარჩუნებლად, ვიდრე DS1307. DS3231 შეიძლება იყოს 5 ვ ან 3.3 ვ.

სინათლისთვის გამოვიყენებ WS2812B LED სტრიქონს. მათ აქვთ მარტივი სამი მავთულის ინტერფეისი და კონტროლირებადი წითელი, მწვანე და ლურჯი LED- ები. WS2812B არის 5 ვ მოწყობილობები.

მიკროკონტროლერისთვის გამოვიყენებ Pro Micro, 5v 16MHz.

მიუხედავად იმისა, რომ WS2812B ალბათ იმუშავებს 3.3V– ით, უმჯობესია გამოიყენოთ 5V Arduino.

Pro Micro არის იაფი Arduino, Atmega32U4 მიკროკონტროლის გამოყენებით.

ნათურას ექნება ჩართვის/გამორთვის შეცვლა ნათურის ჩართვის ან გამორთვისთვის.

იქნება პოტენომეტრი, რომელიც აკონტროლებს სიკაშკაშეს.

დიზაინის პროგრამული უზრუნველყოფა:

DS3231 RTC გააკონტროლებს დროს, მას აქვს ბატარეის სარეზერვო, ასე რომ უნდა შეინარჩუნოს დრო მაშინაც კი, როდესაც ძალა დაკარგულია.

დღის განმავლობაში, ყველა RGB LED- ები ჩართული იქნებოდა, ქოთნით კონტროლირებადი სრული ინტენსივობით.

ადრე საღამოს, ლურჯი LED- ები გამორთული იქნება, წითელი და მწვანე - მაქსიმუმ.

საღამოს წინსვლასთან ერთად, წითელი და მწვანე LED- ები ჩამუქდება, წითელი ფერის უპირატესობით მწვანე (ჩემი ტესტირების მეორე ნაწილში ვარაუდობენ, რომ მწვანე LED- ებს აქვთ ლურჯი).

დილის 10 საათის შემდეგ ყველა LED ნათურა გამორთული იქნება.

პრობლემა:

DS3231 RTC მოდულში დავბრუნდი, მე შევიძინე Aliexpress– დან, როგორც სხვა კომპონენტებისთვის.

მათ უნდა იმუშაონ და დატენონ LIR2032 მრავალჯერადი დატენვის ბატარეა. ვცადე. დაახლოებით ერთი დღის შემდეგ, ბატარეა მკვდარი იყო.

ინტერნეტში ძებნის შემდეგ, მე ვიპოვე ეს სტატია.

www.onetransistor.eu/2019/07/zs042-ds3231-…

მე ვეთანხმები ამ ანალიზს, მაგრამ ვფიქრობდი, რომ LIR2032 ადეკვატურად იტვირთება, მაგრამ არა ზედმეტად. მე აშკარად ვცდებოდი. ჩემი DS3231, თუმცა ასევე აღინიშნა როგორც ZS-042, როგორც სტატიაში იყო ოდნავ განსხვავებული მაშინ, მაგრამ თითქმის იგივე. ასე რომ, მე გავყიდე დიოდზე ნაჩვენები დიოდი და დავაყენე CR2032 ბატარეა. დიოდის გარეშე მოდული არ შეეცდება ბატარეის დატენვას. ახლა DS3231 ატარებს სწორ დროს ენერგიის გათიშვის დროსაც და ბატარეა უნდა იყოს კარგი მრავალი წლის განმავლობაში.

ენერგიის მოთხოვნები:

WS2812B არის RGB LED- ების სიმებიანი, რომელსაც ზოგჯერ ნეოპიქსელებსაც უწოდებენ. თითოეული NeoPixel მოითხოვს მაქსიმუმ 60 mA. მე ვიყენებ 12 ნეო პიქსელს, ასე რომ საჭიროა 0.72A. მე ვიყენებ 2A USB ადაპტერს, ასე რომ ბევრი დენი აქვს.

ნაბიჯი 1: BlueLamp PCB

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

როგორც მე ჩვეულებრივ ვაკეთებ, მე გამოვიყენე უფასო Eagle Cadsoft პროგრამული უზრუნველყოფა (ახლანდელი Autodesk) ჩემი PCB განლაგებისათვის და შესაქმნელად.

www.autodesk.com/products/eagle/free-downl…

არწივის სქემატური და დაფის ფაილები თან ერთვის სქემატურ სურათს.

ერთი კომენტარი სქემატური, 330 ohm რეზისტორი და 10 000uFd კონდენსატორი არის რეკომენდაციები ადაფრუტის ნეოპიქსელური სახელმძღვანელოსგან:

learn.adafruit.com/adafruit-neopixel-uberg…

გადართვის ღილაკი, რომელიც მე გამოვიყენე "ჩირაღდნის ღილაკის გადამრთველი" იყო აქედან:

www.aliexpress.com/item/32904942704.html?s…

10K (B103) პოტენომეტრი აქედან:

www.aliexpress.com/item/32672253655.html?s…

ნაბიჯი 2: ნათურის შეკრება

ლამპის აწყობა
ლამპის აწყობა
ლამპის აწყობა
ლამპის აწყობა

მე მქონდა მძიმე ბაზა ნათურისგან, რომელიც შევიძინე. მას ჰქონდა დიდი მრგვალი ქინძისთავი. მე ავიღე PVC მილის ნაჭერი, რომელიც მასზე ჯდებოდა. ცოტა ფხვიერი იყო, ამიტომ ავიღე ჭანჭიკი და რამოდენიმე თხილი, რომ შემეძლო მისი გამკაცრება. (იხილეთ სურათი)

WS2812B შეიძლება შემცირდეს თქვენთვის სასურველ NeoPixel- ის რაოდენობაზე. ჩემს მიერ შეძენილ ზოლს აქვს ფართო სივრცეები NeoPixels- ს შორის. მინდოდა ცოტა უფრო ნათელი ყოფილიყო, ამიტომ დავჭრა ორი 6 NeoPixel ზოლი და გავუშვი პარალელურად ოდნავ ოფსეტურით. WS2812B ზოლები შეიძლება გაიჭრას ნეოპიქსელებს შორის. ამ შემთხვევაში მე მჭირდებოდა 180 გრადუსიანი ცვლილება, ასე რომ მე დავჭრა ზოლები და გავიარე ჯამპერის მავთულები შორის. თუ ოდესმე ამას აკეთებთ, დარწმუნდით, რომ სიგნალები და მიმართულების ისრები სწორია. (იხ. სურათი)

ამ WS2812B- ს ასევე აქვს მავთულები და კონექტორი (ეს კონექტორი არის JST-SM 3pin კონექტორი, თუ გსურთ მისი სხვაგან გამოყენება). ვინაიდან ეს კონექტორი უკვე იქ იყო, მე უბრალოდ შევაერთე მავთულები ჩემს PCB- ზე. ამ WS2812B წითელი მავთულის არის 5v, მწვანე არის სიგნალი და თეთრი არის ადგილზე.

მას შემდეგ, რაც მე გავაკეთე PCB, მე დავდე რამდენიმე ფირზე ქვედა და მიმაგრებული მას ბაზაზე. შემდეგ ჩავრთე Pro Micro და DS3231.

ნაბიჯი 3: არდუინოს ესკიზი

არდუინოს ესკიზი
არდუინოს ესკიზი

მიუხედავად იმისა, რომ შევიძინე ჩემი Pro Micro Aliexpress.com– დან, მე გამოვიყენე შემდეგი ინფორმაცია Arduino– ს სამუშაოდ დასაყენებლად:

learn.sparkfun.com/tutorials/pro-micro--fi…

DS3231 ბიბლიოთეკის დასაყენებლად, მე ვიყენებ ამას:

github.com/PaulStoffregen/DS1307RTC

ჩამოტვირთეთ Zip ფაილი

გახსენით Arduino, შეარჩიეთ "ესკიზი" "ბიბლიოთეკის ჩართვა" "დაამატეთ.zip ბიბლიოთეკა"

დააინსტალირეთ შემდეგი იგივე მეთოდით

დროის ბიბლიოთეკა PaulStoffregen

github.com/PaulStoffregen/Time

დროის ზონის ბიბლიოთეკა

github.com/JChristensen/Timezone

დასრულების შემდეგ, დაიწყეთ Arduino.

ინსტრუმენტების დაფების ქვეშ აირჩიეთ "Sparkfun Pro Micro"

კვლავ დააწკაპუნეთ ინსტრუმენტებზე, იქნება შერჩევა პროცესორისთვის

შეიძლება დაგჭირდეთ მისი შეცვლა "Atmega32U4 (5V 16Mhz)"

გაფრთხილება: თუ თქვენ ჩემსავით უყურადღებო ხართ, შეცდომით ავირჩიე "Atmega32U4 (3.3V 8Mhz)". ეს "აგურით" ისე, რომ არდუინომ ვერ დაინახა. მე, ჩვეულებრივ, ვცდილობ წავიკითხო ახალი ნივთები, სანამ მივიღებ და გავიხსენებ რაღაცას ამ მოვლენის შესახებ:

learn.sparkfun.com/tutorials/pro-micro--fi…

ამ სახელმძღვანელოში არის განყოფილება სახელწოდებით "როგორ აღვადგინოთ" აგურისებრი "პრო მიკრო" როგორც აღნიშნავს, ეს სახიფათო პროცედურაა, მაგრამ მე მაინც მოვახერხე ჩემი აღდგენა.

FYI: თუ გაინტერესებთ რატომ არის ორი ვერსია განსხვავებული ძაბვისა და სიჩქარის მქონე, Atmega32U4 (იგივე Atmega328) კარგად იმუშავებს 5V- ზე 16MHz საათით. 3.3V- ზე დიზაინის სპეციფიკა ამბობს 16MHz საათი არ იმუშავებს, ამიტომ მათ აქვთ საათი 8MHz. საერთოდ, Arduino პროგრამული უზრუნველყოფის ლაპარაკით ის იზრუნებს დროის ნებისმიერ საკითხზე.

RTC რჩევა: DS1307– ისთვის დაწერილი პროგრამული უზრუნველყოფის უმეტესობა იმუშავებს DS3231– თან, რადგან მათ აქვთ ძალიან მსგავსი პროგრამული უზრუნველყოფა.

დღის შვებულების დრო

ისე, მე მინდოდა DST– ის დანერგვა, ასე რომ მე არ მჭირდებოდა ჩემი ნათურის გადაპროგრამება წელიწადში ორჯერ. ამაზე რამდენიმე დღე ვიმუშავე. მე ვერ ვიპოვე რაიმე კარგი მარტივი ახსნა, თუ როგორ მუშაობდა Time, TimeLib და RTClib.

მე ნამდვილად დავწერე DST კოდი ჩემი IPClock– ისთვის:

www.instructables.com/id/NO-MORE-SPRING-FO…

რომელიც მუშაობდა ინტერნეტის დროზე, მაგრამ მე ვერ მოვახერხე მისი მუშაობა RTC დროზე.

მე საბოლოოდ გადავეყარე JChristensen– ის შემდეგს:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

ამის გამოსაყენებლად, თქვენ ჯერ უნდა დააყენოთ RTC UTC (კოორდინირებული უნივერსალური დრო), ეს არის დრო გრინვიჩში, ინგლისი. კარგად, არ ვიცოდი როგორ გამეკეთებინა, მაგრამ ვიპოვე ეს სტატია:

www.justavapor.com/archives/2482

გადაწერეთ იგი მთის დროისთვის (თან ერთვის) UTCtoRTC.ino

შემდეგ ჩავრთე დროის ზონა ჩემს ესკიზში. სიმართლე გითხრათ, მე არ გამოვცადე, მხოლოდ ვივარაუდოთ, რომ მუშაობს.

ჩემი ესკიზი ერთვის MTS_BlueLamp.ino.

ნაბიჯი 4: დასკვნა

დასკვნა
დასკვნა

მე გავაკეთე პატარა კაკალი თავზე ჩემი CPAP სახის ნიღბისთვის. ჩემს ძველ საწოლ ნათურაზე ვკიდებდი.

ძირითადად ძალიან კმაყოფილი ვარ ამ ნათურით. სრულად ნათელია დღის განმავლობაში და არ არის ლურჯი საღამოს და ღამით.

ერთი რამ, რაც არ მომწონს არის ის, რომ არ შემიძლია მისი გამოყენება დილის 10 საათის შემდეგ. და დილის 5 საათამდე

მე ასევე აღმოვაჩინე, რომ მე არ ვიყენებ გადართვას ჩართვა/გამორთვას, როგორც მე ჩვეულებრივ ვიყენებ მკრთალ გადამრთველს.

მომავალში, შემიძლია გადავაწერო ესკიზი და შევცვალო ღილაკი დაგეგმილ ან არაგეგმურად (სრული ჩართვით) გადამრთველზე. მაგრამ ჩემი ცუდი კოდირების უნარებით შეიძლება დაველოდო ცოტა ხანს.

გირჩევთ: