Სარჩევი:

Ish საათი: 5 ნაბიჯი (სურათებით)
Ish საათი: 5 ნაბიჯი (სურათებით)

ვიდეო: Ish საათი: 5 ნაბიჯი (სურათებით)

ვიდეო: Ish საათი: 5 ნაბიჯი (სურათებით)
ვიდეო: jeki chani 2024, ივლისი
Anonim
Image
Image
შეკრების ნაწილები და ხე მუშაობა
შეკრების ნაწილები და ხე მუშაობა

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

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

ამ ჩემთან ერთად მე დავიწყე ჩემი 12 LED ბეჭედი, რათა გამეკეთებინა საათი. ის აჩვენებს ერთ დროს 1 LED 1 წამს, რომ მიუთითოს საათი (ლურჯი LED) და შემდეგ წუთები (წითელი LED) დამრგვალებულია ქვემოთ

ნაბიჯი 1: ნაწილების შეგროვება და ხეზე მუშაობა

შეკრების ნაწილები და ხე მუშაობა
შეკრების ნაწილები და ხე მუშაობა
შეკრების ნაწილები და ხის მუშაობა
შეკრების ნაწილები და ხის მუშაობა
შეკრების ნაწილები და ხე მუშაობა
შეკრების ნაწილები და ხე მუშაობა

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

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

ასევე გამოიყენება:

  • 12 პიქსელიანი ws2812b LED ბეჭედი
  • რეალური დროის საათი (RTC) მოდული (მე ვიყენებ DS3231– ს I2C– ით)
  • Arduino Nano v3.0 თავსებადია
  • აკრილის ფურცელი (5 მმ)
  • ფერადი მავთული

ინსტრუმენტები

  • Საბურღი ძალა
  • როუტერი
  • რეგულირებადი ბრტყელი ხის ბიტი
  • დენის გამანადგურებელი
  • Ხელის ხერხი
  • გასაყიდი რკინა
  • ცხელი წებოს იარაღი
  • ქვიშის ქაღალდი
  • დანიური ზეთი

მოსახვეწი

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

მარკირება და ჭრის ხვრელები

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

მარშრუტი და საკაბელო ხვრელები

ჩემი როუტერის გამოყენებით 12 მმ -იანი ბიტით, მე გამოვიყვანე შესასვლელი ბლოკის ბოლოში, რათა დამალულიყო RTC და Arduino. მისი სიღრმე დაახლოებით 15 მმ -ია და ნებისმიერი კიდედან არანაკლებ 5 მმ. ცენტრიდან (ქვედა) აღვნიშნე ქვემოდან და გავაფურთხე 10 მმ -იანი ბილიკით, ნახევარი გზის გასწვრივ, რათა დავუშვათ LED მავთულები. შემდეგ 5 მმ -იანი ბიტის გამოყენებით გავხვრიტე LED ჩაღრმავების ცენტრიდან ქვემოდან 10 მმ -იანი ხვრელის დასაკმაყოფილებლად.

უკანა კიდევ 4 მმ -იანი ხვრელი დენის მოსასვლელად და მცირე როუტერის ბიტის გამოყენებით არხის გასაკეთებლად LED რგოლის უკანა მხარეს და ხის სამუშაოები დასრულებულია.

ნაბიჯი 2: აკრილის წრეები

აკრილის წრეები
აკრილის წრეები
აკრილის წრეები
აკრილის წრეები
აკრილის წრეები
აკრილის წრეები

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

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

ნაბიჯი 3: შედუღება

შედუღება
შედუღება
შედუღება
შედუღება
შედუღება
შედუღება
შედუღება
შედუღება

მე მომწონს ფერადი სისტემის გამოყენება ჩემი ხაზებისთვის, ამ შემთხვევაში მე ვირჩევ:

  • წითელი სიმძლავრისთვის (5 ვ)
  • თეთრი გრუნტისთვის
  • ყვითელი მონაცემებისთვის
  • მწვანე საათისათვის

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

შემდეგ მე გავამაგრე 4 მავთული RTC– ზე ზემოთ სისტემის გამოყენებით. იმისთვის, რომ ყველაფერი ცოტათი სუფთა იყოს, გადავწყვიტე Rdu– სთვის ძალა გამომეყვანა Arduino– დან. შემდეგ შეაერთეთ ყველაფერი არდუინოსთან და 1 მავთული შეაერთეთ დენისთვის და მეორე მიწაზე არდუინოს.

RTC

  • SCL (საათი) ანალოგურ პინზე 5
  • SDA (მონაცემები) ანალოგურ პინზე 4
  • VCC 5V– მდე
  • GND ნებისმიერი GND არდუინოზე

LED ბეჭედი

Din ციფრულ პინზე 6

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

ნაბიჯი 4: კოდი

თქვენ ახლა უნდა შეგეძლოთ ამ კოდის ატვირთვა არდუინოში.

თუ RTC არ მუშაობს, ეს კოდი დაადგენს დროს კოდის შედგენის საფუძველზე, ასე რომ დარწმუნდით, რომ უბრალოდ დააჭირეთ ატვირთვის ღილაკს და არ გადაამოწმეთ.

მონაცვლეობით ეს ასევე ძალიან კარგად მუშაობს დროის დასადგენად.

www.instructables.com/id/Setting-the-DS130…

ამ კოდის დიდი ნაწილი ნასესხები მაქვს ადაფრუტ ნეოპიქსელის ბიბლიოთეკიდან, ზოგი კი RTC ბიბლიოთეკიდან ვიპოვე, ზოგი კი დამოუკიდებლად შევადგინე.

// შეიტანეთ ბიბლიოთეკის კოდი: #მოიცავს

#ჩართეთ

#ჩართეთ

// ქინძისთავების განსაზღვრა

#განსაზღვრეთ PIN 6

#განსაზღვრეთ სიკაშკაშე 20 // დააყენეთ მაქსიმალური სიკაშკაშე

#განსაზღვრეთ r 5

#განსაზღვრეთ გ 5

#განსაზღვრეთ ბ 5

RTC_DS3231 rtc; // საათის ობიექტის დადგენა

Adafruit_NeoPixel ზოლები = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // ზოლის ობიექტი

void setup () {

Wire.begin (); // დასაწყისი I2C

rtc.begin (); // საათის დაწყება

სერიული.დაწყება (9600);

// დააყენეთ pinmodes

pinMode (PIN, OUTPUT);

თუ (rtc.lostPower ()) {

Serial.println ("RTC დაკარგა ენერგია, მოდით დავადგინოთ დრო!");

// შემდეგი ხაზი ადგენს RTC– ს ამ ესკიზის შედგენის თარიღსა და დროს

rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)));

// ეს ხაზი ადგენს RTC– ს მკაფიო თარიღითა და დროს, მაგალითად, დასაყენებლად

// 2014 წლის 21 იანვარი დილის 3 საათზე დარეკავთ:

// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));

}

ზოლები. დაწყება ();

ზოლები. ჩვენება (); // ყველა პიქსელის ინიციალიზაცია "გამორთვის"

DateTime theTime = rtc.now (); // ითვალისწინებს DST

მეორე ბაიტი = theTime.second (); // მიიღეთ წამი

ბაიტი minuteval = theTime.minute (); // მიიღეთ წუთი

int hourval = theTime.hour ();

წერტილი (ზოლები. ფერი (0, გ, 0), 50);

}

ბათილი მარყუჟი () {

// მიიღეთ დრო

DateTime theTime = rtc.now (); // ითვალისწინებს DST

int წუთიანი = theTime.minute (); // მიიღეთ წუთი

int hourval = theTime.hour (); // მიიღეთ საათები

int secondval = theTime.second ();

თუ (წუთი წუთი 0) {

strip.setPixelColor (0, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 9) {

strip.setPixelColor (1, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთი <<14) {

strip.setPixelColor (2, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთი <<19) {

strip.setPixelColor (3, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 24) {

strip.setPixelColor (4, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთი <<29) {

strip.setPixelColor (5, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 34) {

strip.setPixelColor (6, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 39) {

strip.setPixelColor (7, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 44) {

strip.setPixelColor (8, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთი <= 49) {

strip.setPixelColor (9, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 54) {

strip.setPixelColor (10, r, 0, 0);

strip.show ();}

სხვა შემთხვევაში თუ (წუთიანი წუთი <= 59) {

strip.setPixelColor (11, r, 0, 0);

strip.show ();}

დაგვიანება (1000);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

ზოლები. ჩვენება ();

}

თუ (საათის ინტერვალი == 0) {

strip.setPixelColor (0, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 1) {

strip.setPixelColor (1, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის შუალედი == 2) {

strip.setPixelColor (2, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის შუალედი == 3) {

strip.setPixelColor (3, 0, 0, ბ);

strip.show ();}

სხვა შემთხვევაში თუ (საათის შუალედი == 4) {

strip.setPixelColor (4, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 5) {

strip.setPixelColor (5, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის შუალედი == 6) {

strip.setPixelColor (6, 0, 0, ბ);

strip.show ();}

სხვაგვარად, თუ (საათის ინტერვალი == 7) {

strip.setPixelColor (7, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 8) {

strip.setPixelColor (8, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 9) {

strip.setPixelColor (9, 0, 0, ბ);

strip.show ();}

სხვა შემთხვევაში თუ (საათის ინტერვალი == 10) {

strip.setPixelColor (10, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 11) {

strip.setPixelColor (11, 0, 0, ბ);

strip.show ();}

სხვა შემთხვევაში თუ (საათის ინტერვალი == 12) {

strip.setPixelColor (0, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 13) {

strip.setPixelColor (1, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 14) {

strip.setPixelColor (2, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 15) {

strip.setPixelColor (3, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 16) {

strip.setPixelColor (4, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 17) {

strip.setPixelColor (5, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 18) {

strip.setPixelColor (6, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 19) {

strip.setPixelColor (7, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 20) {

strip.setPixelColor (8, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 21) {

strip.setPixelColor (9, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 22) {

strip.setPixelColor (10, 0, 0, ბ);

strip.show ();}

სხვაგვარად თუ (საათის ინტერვალი == 23) {

strip.setPixelColor (11, 0, 0, ბ);

strip.show ();}

დაგვიანება (1000);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

ზოლები. ჩვენება ();

}

// სერიული გამართვისთვის

Serial.print (hourval, DEC);

Serial.print (':');

Serial.print (წუთი, DEC);

Serial.print (':');

Serial.println (მეორე ხარისხი, DEC);

}

ბათილი წერტილი (uint32_t c, uint8_t ლოდინი) {

for (int j = 0; j <3; j ++) {

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, c);

ზოლები. ჩვენება ();

დაგვიანება (ლოდინი);

for (int i = 0; i <12; i ++) {

strip.setPixelColor (i, 0, 0, 0);

strip.show ();}

}

}

}

ნაბიჯი 5: დანიური ზეთი

დანიური ზეთი
დანიური ზეთი
დანიური ზეთი
დანიური ზეთი
დანიური ზეთი
დანიური ზეთი
დანიური ზეთი
დანიური ზეთი

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

თქვენ შეგიძლიათ მისი დავარცხნა ან მე მხოლოდ ძველი ქსოვილი გამოვიწმინდო.

ყველაფერი რაც ახლა დარჩა არის მისი ჩართვა და სიამოვნება.

გირჩევთ: