Სარჩევი:

LED საათი ნეოპიქსელების გამოყენებით: 4 ნაბიჯი (სურათებით)
LED საათი ნეოპიქსელების გამოყენებით: 4 ნაბიჯი (სურათებით)

ვიდეო: LED საათი ნეოპიქსელების გამოყენებით: 4 ნაბიჯი (სურათებით)

ვიდეო: LED საათი ნეოპიქსელების გამოყენებით: 4 ნაბიჯი (სურათებით)
ვიდეო: LED საათი სამაჯური (ლავა) 2024, ივლისი
Anonim
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით
LED საათი ნეოპიქსელების გამოყენებით

კეთილი იყოს თქვენი მობრძანება, თუ როგორ უნდა გააკეთოთ LED საათი 60 ნეოპიქსელის გამოყენებით.

თქვენ ნახავთ 3 PDF– ს, რომელიც არის ერთ – ერთი საათის სეგმენტებისთვის, მეორე არის ბაზისთვის და ბოლოს ერთი არის შაბლონი, რომელიც დაგეხმარებათ მონაკვეთების ერთმანეთთან შეერთებაში.

ასე რომ, ამის დასასრულებლად დაგჭირდებათ შემდეგი

  • 60 ნეოპიქსელის ბეჭედი მოდის 4 მეოთხედში. მოძებნეთ "ws2812 ბეჭედი 60" (.00 12.00)
  • RTC მოძებნეთ "DS3231 მოდული" (£ 2.50)
  • არდუინო ნანო (4 ფუნტი)
  • პლაივუდი 3 მმ/1/8 ".
  • მავთულის ნაჭრები. იმედია გექნებათ გარშემო?
  • 5 ვ USB კვების ბლოკი. ტიპი, რომელიც თქვენს შვილებს გაანადგურებს.

ქვემოთ მოცემულია Lipo ბატარეაზე მყოფი ელემენტები, მაგრამ ტესტირების შემდეგ, საათმა ძალიან ბევრი ენერგია მოიხმარა, ასე რომ ბატარეა დაეცა ქსელის USB PSU– ს სასარგებლოდ.

  • dc-dc კონვერტორის ძებნა "გაზრდის კონვერტორი" (£ 3)
  • დატენვის წრე TP4056 ძებნა "tp4056" (£ 2)
  • LiPo 1000Mah ერთუჯრედიანი. მოძებნეთ "1000mah lipo 3.7" ან "503450 lipo" (00 8.00)

LiPo ნომერი არის 503450 და შეიძლება სასიამოვნო იყოს იმის ცოდნა, რომ ეს ნიშნავს 50 მმ სიგრძის 34 მმ სიგანეს და 5.0 სიღრმეს.

ნაბიჯი 1: ხის ნაჭრები

ხის ნაჭრები
ხის ნაჭრები
ხის ნაჭრები
ხის ნაჭრები
ხის ნაჭრები
ხის ნაჭრები

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

როდესაც ყველა ნაჭერი ამოჭრილია, ჯერ უნდა შეამოწმოთ როგორ ჯდება ისინი ერთმანეთთან, შემდეგ დააწებეთ ყველა. მე ავაშენე 3 ფენა საათის გეგმის თავზე, რათა დავრწმუნდე, რომ ყველაფერი სწორად იყო წრიული. ასევე დარწმუნდით, რომ ქვედა ნაწილებს მიიღებთ სწორ ორიენტაციაში და მთლიანი შუა ნაჭერი თავდაყირაა დამონტაჟებული, ასე რომ თქვენ დაიხურებთ სახსრებს.

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

სურათების სერია ასევე აჩვენებს, თუ როგორ არის გაერთიანებული ბაზა.

ნაბიჯი 2: LED ბეჭდის გაყვანილობა

LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა
LED ბეჭდის გაყვანილობა

ამ ნაბიჯის შესახებ ბევრი რამის თქმა არ შეიძლება, მაგრამ იმ შემთხვევაში, თუ თქვენ არ გამოგიყენებიათ WS2812LED– ის ზოლები, ისინი ინტელექტუალურია, ასე რომ თითოეულს აქვს მონაცემები შიგნით და გარეთ. 15 LED- ის რკალში PCB ამუშავებს ყველა კავშირს, მაგრამ როდესაც სექციებს შეუერთდებით თქვენ უნდა შეასრულოთ დენის კავშირები და მონაცემები. თქვენ ვერ გაიგებთ კავშირებს, რადგან ისინი წრეში არიან, მაგრამ როდესაც წრე დაასრულებთ, თქვენ უნდა გქონდეთ ერთი ბმული, რომელიც აკლია მონაცემებს IN/OUT, რათა მოგცეთ საშუალება დააკავშიროთ მავთულები მონაცემებთან IN. სადაც მავთულები უკავშირდება მონაცემებს IN იქნება პირველი LED ან სწორად დანომრილი ZERO.

დავინტერესდი, როგორ იყო საუკეთესო საშუალება LED- ის რგოლის დაფიქსირება ხის ბეჭედზე? მაგრამ საბოლოოდ მე გადავწყვიტე გამოვიყენო მოსაპირკეთებელი კაბელი და შემოვიდე წრეწირის გარშემო, ყოველ ჯერზე გამოვტოვო LED- ები.

ნაბიჯი 3: გაყვანილობა Arduino Nano და დენის

არდუინო ნანოსა და დენის გაყვანილობა
არდუინო ნანოსა და დენის გაყვანილობა
არდუინო ნანოსა და დენის გაყვანილობა
არდუინო ნანოსა და დენის გაყვანილობა
არდუინო ნანოსა და დენის გაყვანილობა
არდუინო ნანოსა და დენის გაყვანილობა

მე თავიდანვე გადავწყვიტე LiPo გამოვიყენო ამ პროექტზე, მაგრამ როდესაც ვცადე, ბატარეა ღამით დამთავრდა. თავიდან მეგონა, რომ ბატარეა შეიძლება გატეხილი იყოს, ასე რომ გავზომე დენი და აღმოვაჩინე, რომ წრე 73mA- ს ხატავს, რაც იმას ნიშნავს, რომ ბატარეაზე ის უფრო მეტი იქნებოდა. ფაქტობრივად, მე გავზომე დენი ბატარეაზე (გამაძლიერებელ კონვერტორამდე) და აღმოვაჩინე, რომ 110 mA- ზე მეტი იყო. ასე რომ, აშკარა იყო, რომ ეს საათი არ აპირებდა ბატარეაზე მუშაობას.

ამის ნაცვლად, მე ვირჩევ 5 ვ USB დამტენის გამოყენებას. მე მიდრეკილი მაქვს მკვდარი USB დამტენების გარშემო, რადგან კონექტორები ორ პატარა ბავშვს ბოროტად იყენებენ.

ვინაიდან ჩვენ ვიყენებთ WS2812 LED- ებს, ჩვენ მხოლოდ 3 კავშირი გვაქვს Arduino Nano– სთან.

  • Ძალა
  • გრუნტი
  • მონაცემები IN. ნარინჯისფერი D2 ნანოზე

შემდეგ ჩვენ გვაქვს RTC, რომელსაც აქვს მხოლოდ 4 მავთული.

  • სიმძლავრე 5 ვოლტი
  • გრუნტი
  • SCL (I2C საათი) ლურჯი A5 ნანოზე
  • SDA (I2C მონაცემები) ყვითელი A4 ნანოზე

დაბოლოს, ჩვენ გვჭირდება ძალა და ეს მიდის ნანოს 5 ვ სიმძლავრის ტერმინალზე.. Vin შექმნილია იმისათვის, რომ ჰქონდეს ძაბვა 5 ვოლტზე მეტი (ანუ 7-12 ვოლტი) და მიწა.

ნაბიჯი 4: პროგრამა

მე ნამდვილად მსიამოვნებს პროგრამირება, მე უბრალოდ არ ვარ ძალიან კარგი.

პრობლემა 1

წამი და წუთი სწორად არის წარმოდგენილი როგორც რიცხვი 0-59-დან. თუმცა პირველი LED და შესაბამისად ნული არის ბოლოში. ასე რომ, ამის გამოსწორება იყო საჭირო.

ბათილია სწორიPos (int A)

{თუ (A 30) {A = A - 31; }} temp = A; }

პრობლემა 2

მე შევეცადე ყველა LED- ის გასუფთავება ახალი პოზიციის ჩვენებამდე, მაგრამ ამან გამოიწვია LED- ის მოციმციმე. ასე რომ, მე გადავწყვიტე შემდეგი LED ჩართო და შემდეგ გამორთო წინა. ეს მშვენივრად მუშაობდა ?? NOPE რადგან ახალი პოზიცია რომ იყოს ნული, ის შეეცდება და გამორთულია -1. ასე რომ განიხილებოდა ამავე დროს.

ბათილად წაშლა წინა (int B)

// წაშალეთ წინა led, თუ ის იყო ნული მაშინ // გამორთეთ 59 დანარჩენი უბრალოდ გამოაკლეთ 1 // და გამორთეთ ეს ერთი. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // ყველაფერი გამორთული} სხვა {strip.setPixelColor (B - 1, 0, 0, 0); // ყველა გამორთული}}

პრობლემა 3

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

თუ (წმ == წთ -1)

{strip.setPixelColor (წთ -1, 0, 30, 0); }

პრობლემა 4

ყველაფერი კარგად იწყება, მოდით შევურიოთ ფერები ერთსა და იმავე პოზიციას?

თუ (წთ == წმ)

{strip.setPixelColor (წთ., 15, 13, 0); // მწვანე და წითელი, რომ გახადოს ყვითელი. }

პრობლემა 5

საათები იწყება 24 საათის ფორმატში. ასე რომ, ეს ჯერ გამოსწორებას საჭიროებს

თუ (საათი> 12)

{საათი = საათი -12; }

პრობლემა 6

და არ უნდა დაგვავიწყდეს, რომ არის 24 საათი დღეში და მე მაქვს 60 LED. მართლაც ადვილია მისი გაანგარიშება 5 -ით

საათი = საათი * 5;

პრობლემა 7

ყოველივე ზემოაღნიშნულის გაკეთებისთანავე ჩვენ გვაქვს საათი 4 LED– ით გადახტომისას, ის ბევრად უკეთესი იქნებოდა, თუ ის გამოიყენებდა ყველა LED- ს და სწორად აჩვენებდა საათის ფრაქციებს? ისევ და ისევ, ეს იყო ადვილი გამოსწორება, მე უბრალოდ დავამატე ორიგინალური წუთების რიცხვი გაყოფილი 12 საათზე.

საათი = საათი + (addMin/12);

პრობლემა 8

როდესაც საათი ან წუთი წინ არის, წამები ქრება ერთი წამით ადრე.

საათი = თუ (წთ = = 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // მწვანე}}

პრობლემა 9

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

// 2020 წლის 12 აპრილს, საღამოს 23:20 საათზე დარეკავთ:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

გირჩევთ: