Mündəricat:
- Addım 1: Parça və Taxta İşlərinin Toplanması
- Addım 2: Akrilik dairələr
- Addım 3: Lehimləmə
- Addım 4: Kod
- Addım 5: Danimarka yağı
Video: İş saatı: 5 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Çox vaxt özümlə nə edəcəyimi bilmədiyim şeyləri satın alıram. Bu layihə, 12x WS2812b LEDləri olan bir üzük satın alınmasının nəticəsidir. Bunun üçün heç bir planım yox idi, amma sərin bir internetə bənzəyirdi, buna görə səbətimə yapışdırdım, gəldikdə bir müddət onunla oynadım və sonra hər şeyi unutdum.
Bir müddət sonra bir saat düzəltməyi düşünürdüm və heç bir şey etməyərək oturduğunu xatırladım. Dəqiqələri tamamlamaq üçün 60 LED -lə ikinci bir üzük almağı düşünürdüm, amma sonra necə baxdığımızı və 5 dəqiqəyə qədər yuvarlaqlaşdırdığımızı düşünməyə başladım.
Mənimki ilə iş saatını düzəltmək üçün 12 LED üzüklə yola çıxdım. Saatı (Mavi LED) və sonra yuvarlaqlaşdırılan dəqiqələri (Qırmızı LED) göstərmək üçün 1 saniyədə 1 LED göstərir.
Addım 1: Parça və Taxta İşlərinin Toplanması
Bir gün işə gəlib palet gördüyüm üçün çox şanslı oldum. Bu palet standarta bənzəmədiyi üçün mənə yapışdı. Təmiz, istiliklə işlənmiş və ən qeyri -adi möhkəm palıd idi.
Bu layihə paletin bir hissəsindən hazırlanır. (Evə aparmadan əvvəl patrondan soruşdum)
Həm də istifadə olunur:
- 12 piksellik ws2812b LED üzük
- Real vaxt saatı (RTC) modulu (I2C ilə DS3231 istifadə edirəm)
- Arduino Nano v3.0 uyğun gəlir
- Akril təbəqə (5 mm)
- Rəngli Tel
Alətlər
- Güc Matkabı
- Router
- Tənzimlənən düz ağac ucu
- Güc zımpara
- Əl mişarı
- Lehimleme dəmir
- İsti yapışqan silahı
- Qum kağızı
- Danimarka yağı
Zımpara
Ağac blokunu bütün tərəfləri təmiz və hamar olana qədər düzəltmək və təmizləmək üçün güc zımpara ilə başladım. Tarixin bir hissəsini ağacda görmək istədiyim üçün bəzi qüsurları görünən və mükəmməl düz və ya düz olmayan bir şəkildə buraxdım.
Deliklərin işarələnməsi və kəsilməsi
Zımpara etdikdən sonra saatın üzünü istədiyim tərəfi seçdim və hər küncdən xətt çəkərək mərkəzi işarələdim. Tənzimlənən taxtanı led halqadan bir qədər böyük qoydum ki, akrilin oturub təxminən 5 mm dərinlikdə kəsə biləcəyi bir rəf olacaq, sonra kəsicini LED halqasının ölçüsündən bir qədər yuxarı tənzimləyə və başqa 5 mm və ya daha çox kəsə bilərəm..
Marşrutlaşdırma və kabel delikləri
Routerimi 12 mm bitlə istifadə edərək, RTC və Arduino -nu gizlətmək üçün blokun altındakı bir boşluq düzəltdim. Təxminən 15 mm dərinlikdə və hər hansı bir kənardan 5 mm -dən az olmamalıdır. Aşağıdan mərkəzi (iş) işarələdim və LED tellərinə icazə vermək üçün yarıdan bir az keçmiş 10 mm bit istifadə edərək qazdım. Sonra 5 mm -lik bir bit istifadə edərək, LED girintisinin mərkəzindən aşağıdan 10 mm -lik çuxuru qarşılamaq üçün qazdım.
Gücün daxil olması və daha kiçik bir router bitindən istifadə edərək LED halqasının arxasındakı tellər üçün bir kanal düzəltmək üçün 4 mm arxa daha bir çuxur və ağac işi aparılır.
Addım 2: Akrilik dairələr
Saatın ön hissəsinə akril hazırlamaq üçün doldurmalı olduğu çuxurdan daha böyük olan bir kvadrat parçanı kəsdiyimi bildirdim. Sonra işə başlamaq üçün güc zımpara istifadə edərək küncləri lazımi forma və ölçüdə olana qədər çıxarmağa başladım. Daha sonra əllə zımparalamağa keçdim, buna görə də çəkiliş etmədim və yenidən başlamalı oldum.
Düzgün uyğunlaşana qədər yavaş və yorucu bir sınaq və səhv prosesi idi, amma düşünürəm ki, son nəticə buna dəyərdi. Akrilikin ön tərəfinə buzlu bir görünüş vermək üçün çox incə bir kağız istifadə edərək bitirdim.
Addım 3: Lehimləmə
Bu münasibətlə tellərim üçün rəng sistemindən istifadə etməyi xoşlayıram:
- Güc üçün Qırmızı (5v)
- Torpaq üçün ağ
- Məlumat üçün Sarı
- Saat üçün yaşıl
Yuxarıdakı sistemi istifadə edərək 3 zəruri teli LED halqasına lehimləmək və telləri çuxurdan aşağı itələməklə başladım. Əsl məcburiyyətə məruz qalmamalı olduğu üçün üzüyü yerində saxlamaq üçün bir az isti yapışqan istifadə etdim. (Bəzən dəyişdirməyim lazım ola bilər) və akrilin kənarına bir az isti yapışqan ilə quraşdırın.
Daha sonra yuxarıdakı sistemi istifadə edərək 4 teli RTC -yə lehimlədim. İşləri bir az səliqəli saxlamaq üçün Arduinodan RTC üçün güc almağa qərar verdim. Sonra hər şeyi Arduino -ya bağladı və güc üçün 1 tel, Arduino -ya torpaq üçün başqa bir tel lehim etdi.
RTC
- Analog Pin 5 -ə SCL (Saat)
- Analog Pin 4 -ə SDA (Məlumat)
- VCC -dən 5V -ə qədər
- Arduino üzərindəki hər hansı bir GND -yə GND
LED Üzük
Din rəqəmsal pin 6
Əlimdə köhnə bir USB kabeli var idi, buna görə saatı gücləndirmək üçün istifadə etməyə qərar verdim. Normalda bir şeyə bağlanacaq ucunu kəsdim və arxadakı çuxurdan itələdim. Sonra VCC -ni Arduino -ya və LED halqasını Arduino -dan Arduino -dan Yerə qədər müsbət tərəfə və Zəmini lehimləməzdən əvvəl uclarını soyun və bağlayın. Bir az sonra istilik azaldı və yaxşı görünürdü, İsti yapışqan silahı hər şeyi tutmaq üçün geri qayıtdı. Arduinodan gələcəkdə proqramlaşdırmaq üçün USB portuna daxil ola biləcəyim qədər düşə biləcəyim qədər oyunla ayrılmaq qərarına gəldim.
Addım 4: Kod
İndi bu kodu Arduinoya yükləyə bilməlisiniz.
RTC işləmirsə, kodun tərtib edildiyi vaxta əsasən vaxtı təyin edəcək, buna görə yükləmə düyməsini vurduğunuzdan və yoxlamadığınızdan əmin olun.
alternativ olaraq bu da vaxt təyin etmək üçün həqiqətən yaxşı işləyir.
www.instructables.com/id/Setting-the-DS130…
Bu kodun böyük bir hissəsini Adafruit NeoPixel kitabxanasından, bəzilərini tapdığım RTC kitabxanasından, bəzilərini isə özüm hazırladım.
// kitabxana kodunu daxil edin: #include
#daxil edin
#daxil edin
// sancaqlar təyin edin
#PIN 6 təyin edin
#define BRIGHTNESS 20 // maksimum parlaqlığı təyin edin
#təyin r 5
#təyin g 5
#təyin b 5
RTC_DS3231 rtc; // Saat obyekti qurun
Adafruit_NeoPixel zolağı = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // obyekti soyun
boş quraşdırma () {
Wire.begin (); // I2C -ə başlayın
rtc.begin (); // saata başlayın
Serial.begin (9600);
// pinmodları təyin edin
pinMode (PIN, ÇIXIŞ);
if (rtc.lostPower ()) {
Serial.println ("RTC gücünü itirdi, vaxtı təyin edək!");
// aşağıdakı xətt RTC -ni bu eskizin tərtib edildiyi tarix və saata təyin edir
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))));
// Bu xətt RTC -ni açıq bir tarix və vaxtla təyin edir, məsələn, qurmaq üçün
// 21 yanvar 2014 -cü il saat 3 -də zəng edərdiniz:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Bütün pikselləri "söndürmək" üçün başladın
DateTime theTime = rtc.now (); // DST -ni nəzərə alır
bayt saniyə = theTime.second (); // saniyə əldə edin
bayt dəqiqə = theTime.minute (); // dəqiqələr əldə edin
int hourval = theTime.hour ();
nöqtə (şerit Rəng (0, g, 0), 50);
}
boşluq döngəsi () {
// vaxt qazan
DateTime theTime = rtc.now (); // DST -ni nəzərə alır
int minuteval = theTime.minute (); // dəqiqələr əldə edin
int hourval = theTime.hour (); // saatlar əldə edin
int secondval = theTime.second ();
əgər (dəqiqə 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
başqa əgər (minuteval <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
başqa halda (minuteval <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
gecikmə (1000);
üçün (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
əgər (saat aralığı == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
başqa halda (hourval == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
başqa halda (hourval == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
başqa əgər (hourval == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
başqa əgər (hourval == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
başqa əgər (hourval == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
başqa halda (hourval == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
başqa halda (hourval == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
başqa əgər (hourval == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
başqa əgər (hourval == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
başqa əgər (saat aralığı == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
gecikmə (1000);
üçün (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// serial ayıklama üçün
Serial.print (saat dilimi, DEC);
Serial.print (':');
Serial.çap (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
boş nöqtə (uint32_t c, uint8_t gözləyin) {
üçün (int j = 0; j <3; j ++) {
üçün (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
gecikmə (gözləmək);
üçün (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Addım 5: Danimarka yağı
Son və isteğe bağlı addım oduna bir az danimarka yağı tətbiq etməkdir. Taxılın necə çıxarılmasını çox bəyənirəm, ləkələrdən və nəmdən bir qədər müdafiə edir. Buna görə çox tövsiyə edirəm.
Üzünüzü fırçalaya bilərsiniz və ya köhnə bir parça ilə silə bilərəm.
İndi qalan tək şey onu bağlamaq və zövq almaqdır.
Tövsiyə:
Təqaüd Saatı / Sayma / Dn Saatı: 4 Adım (Şəkillərlə)
Təqaüd Saatı / Sayma / Dn Saatı: Çekmecede bu 8x8 LED nöqtə matrisli ekranlardan bir neçəsi vardı və onlarla nə edəcəyimi düşünürdüm. Digər təlimatlardan ilhamlanaraq, gələcək bir tarixə/saata qədər saymaq üçün geri sayma/yuxarı göstərici qurmaq fikrinə sahib oldum və əgər hədəf vaxt
Bolt - DIY Simsiz Şarj Gecə Saatı (6 addım): 6 addım (şəkillərlə)
Bolt - DIY Simsiz Şarj Gecə Saatı (6 addım): İndüktif şarjlar (simsiz şarj və ya simsiz şarj kimi də tanınır) simsiz enerji ötürmə növüdür. Portativ cihazlara elektrik enerjisi vermək üçün elektromaqnit induksiyasından istifadə edir. Ən çox yayılmış tətbiq Qi simsiz şarj cihazıdır
İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: 6 Addım
İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: Salam uşaqlar, bu təlimatlarda internetdən vaxt alacaq bir internet saatı quracağıq, bu layihənin işləməsi üçün heç bir RTC lazım olmayacaq, yalnız işləyən internet bağlantısı Və bu layihə üçün bir esp8266 ehtiyacınız olacaq
Heç bir RTC olmadan ESP8266 Şəbəkə Saatı - Nodemcu NTP Saatı RTC yoxdur - İNTERNET SAAT PROJESİ: 4 addım
Heç bir RTC olmadan ESP8266 Şəbəkə Saatı | Nodemcu NTP Saatı RTC yoxdur | İNTERNET SAAT PROJESİ: Layihədə RTC olmadan bir saat layihəsi olacaq, wifi istifadə edərək internetdən vaxt alacaq və st7735 ekranında göstərəcək
Gixie Saatı: Ən Gözəl Glow Boru Saatı: 4 addım
Gixie Saatı: Ən Gözəl Glow Tube Saatı: Nixie Tube -ni çox bəyənirəm, amma çox bahadır, buna imkanım yoxdur. Bu Gixie Saatı yaratmaq üçün yarım il sərf etdim. Gixie Saatı akril işığı etmək üçün ws2812 işıqlandırması ilə əldə edilir. RGB borusunu daha incə etmək üçün əlimdən gələni edirəm