Mundarija:

132 pikselli soat: 5 qadam (rasmlar bilan)
132 pikselli soat: 5 qadam (rasmlar bilan)

Video: 132 pikselli soat: 5 qadam (rasmlar bilan)

Video: 132 pikselli soat: 5 qadam (rasmlar bilan)
Video: Malikam endi qara serialidagi Hayot hozir qanday koʻrinishda? 2024, Noyabr
Anonim
Image
Image
132 pikselli soat
132 pikselli soat

Men eslay oladigan bo'lsam, LEDlar va vaqt bilan bog'liq. Ushbu loyihada men katta devor soati yaratdim, u hozirgi zamonni 132 ta neopixelli diodli LEDlar yordamida o'rnatiladi. Bu har bir soat, daqiqa va soniya uchun individual pikselli gibrid analog raqamli raqam.

Bu men hozirgacha qabul qilgan eng katta loyiha edi, men bu haqda 6 oy oldin o'ylay boshladim va bu fikr asta -sekin birlashdi. Men natijadan juda xursandman va siz bilan baham ko'rishni orziqib kutaman.

1 -qadam: Materiallar va asboblarni yig'ish

Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish
Ta'minot va asboblarni yig'ish

Komponentlar

Ushbu loyiha mening mahalliy DIY do'konimdagi sevimli mashg'ulotlar taxtasida qurilgan. Kengashning kengligi 850 mm, balandligi 500 mm va chuqurligi 18 mm.

Ushbu loyihada ishlatiladigan LEDlar 5050 WS2812b diametrli diametri taxminan 9 mm bo'lgan dumaloq tengliklarga o'rnatilgan bo'lib, ular orqa tomondan lehim yostiqchalari bilan jihozlangan.

Men Arduino Pro Mini -ga mos keladigan mikro -kontrollerdan foydalanayapman. Uning 5V 16 MGtsli versiyasi. Men buni tanladim, chunki u juda nozik dizaynga ega, kichkina oyoq izi va barcha kerakli portlar va kelajakda yangilanishlar uchun zaxira. Bundan tashqari, 5 volt, shuning uchun men LEDlar, mikrokontroller va RTC uchun bitta quvvat manbasidan foydalanishim mumkin

Vaqtni saqlash DS3231 chipiga ega bo'lgan RTC (Real Time Clock) moduli bilan ta'minlanadi. Bu chip juda aniq, shuning uchun vaqt juda ko'p ketmasligi kerak.

Shuningdek ishlatiladi:

Tel. Lehim va issiq elim.

Asboblar:

Quvvat matkaplari va yog'ochdan yasalgan matkaplar (10 mm va 5 mm)

Lehimlash temir

Issiq yopishtiruvchi qurol

simlar

Dremel va shnur router uchun aksessuarlar

2 -qadam: markalash, burg'ulash va yo'nalish

Belgilash, burg'ulash va yo'naltirish
Belgilash, burg'ulash va yo'naltirish
Belgilash, burg'ulash va yo'naltirish
Belgilash, burg'ulash va yo'naltirish
Belgilash, burg'ulash va yo'naltirish
Belgilash, burg'ulash va yo'naltirish

Burg'ulash

  • To'g'ridan -to'g'ri burchakdan chiziq chizish orqali taxtaning o'rtasini toping.
  • Ip va ruchka yordamida 3 ta doirani belgilang. Tashqi eng aylana taxtaning chetidan taxminan 20 mm masofada, qolgan 2 chiziq esa oxirgi chiziqdan 15 mm masofada harakatlanishi kerak.
  • Men har ikki minut va soniyalarning tashqi 2 satrdagi va ichki chiziqdagi soatlarning pozitsiyalarini belgilashga yordam berish uchun bosilgan soat yuzidan foydalandim.
  • Har bir soat, daqiqa va soniya uchun taxminan 5 mm chuqurlikdagi 10 mm teshiklarni burg'ulang.
  • Teshiklarni soat, daqiqa va sekundda ochish uchun 5 mm matkapdan foydalaning.

Yo'nalish

Bu qadam kerak bo'lmasa -da, soatni devorga bir tekisda o'rnatishga imkon beradi.

  • Kengashda marshrutizator va aylana yo'riqnomasi yordamida simli kanallar
  • RTC va Micro Controller yashashi uchun tanaffusni belgilang va yo'naltiring.
  • Kanalni tashqi chiziqlardan simlar chuqurchasiga yo'naltiring

3 -qadam: Juda ko'p askarlik, kesish va yalang'ochlash

Juda ko'p askarlik, kesish va yalang'ochlash
Juda ko'p askarlik, kesish va yalang'ochlash
Juda ko'p askarlik, kesish va yalang'ochlash
Juda ko'p askarlik, kesish va yalang'ochlash
Juda ko'p askarlik, kesish va yalang'ochlash
Juda ko'p askarlik, kesish va yalang'ochlash

Bu keyingi qismni aytish osonroq. Mening maslahatim shoshilish uchun eslatma bo'ladi. tizimni topishga va ritmga kirishga harakat qiling.

LEDlarning har biriga 5 voltli, 5 voltli, Ma'lumotlarni kiritish, Ma'lumotlarni chiqarish, Topraklama va Topraklama kerak. shu jumladan, mikrokontrolder va RTC uchun 400 dan ortiq simlar, har ikki uchida ham lehimlangan.

Bu qadam uchun yopishqoq ko'k modda juda foydali.

  • Men bir -biriga ulanish uchun zarur bo'lgan sim uzunligini aniqlash uchun teshiklarini bir -birining yoniga 2 ta LED qo'yishni boshladim.
  • Birinchi simni ko'rsatma sifatida ishlatib, men har bir rangli simning 60tasini kesib tashladim.
  • Har bir simning uchidan 2 mm qisqichni olib tashlang va ularni lehim bilan o'rab oling.
  • Har bir diodli yostiqchaga lehimning kichik bo'lagini lehimlang.
  • Simlarni LEDlarga lehimlang, ular soniya va soniya uchun 60 ta ikkita zanjir va soat uchun 12 ta zanjir hosil qiladi. Men 5V uchun qizil simdan, ma'lumot uchun sariqdan va er uchun ko'kdan foydalanardim.
  • Har bir ma'lumot chiqishi (DOUT) ni keyingi LEDning ma'lumot kiritishiga (DIN) ulashga e'tibor bering
  • Har bir zanjirning oxirgi dozasi ma'lumot uzatuvchi simga muhtoj emas.

Barcha zanjirlar tugagandan so'ng, ularni o'rnatishdan oldin ularni sinab ko'rish yaxshi bo'ladi. Men har bir LEDning ishlashini tasdiqlash uchun Arduino UNO va Adafruit NeoPixel Strand testlaridan foydalandim.

5V, Ground va Data in zanjirlarining har biriga uzunroq simlarni lehimlang.

Bu erda beshta 5v sim, Arduino Pro Mini -ga ulangan uchta Ma'lumot simlari va 5 Ground simlari bo'lishi kerak.

5V simlarning uchidan 5 mm ajratib oling va ularni bir -biriga lehimlang va er simlari uchun takrorlang.

Uchta zanjirni tugatgandan so'ng, Arduino Pro Mini -ning RAW piniga 5V simni, shuningdek, RTC uchun VCC pinini lehimlang. Arduino Pro Mini va RTC -da GND -ga topraklama simlari, keyin yana 2 ta sim:

SCL RTC -dan A5 -ga Pro Mini -da

SDA RTC -dan A4 -ga Pro Mini -da

LEDlarning ma'lumot uzatish liniyalari quyidagilarga ulanishi kerak.

  • Soniyalar - raqamli pin 3.
  • Daqiqalar - DigitalPin 4
  • Ish vaqti - DigitalPin 5

4 -qadam: O'rnatish

O'rnatilmoqda
O'rnatilmoqda
O'rnatilmoqda
O'rnatilmoqda
O'rnatilmoqda
O'rnatilmoqda

Lehimlangandan so'ng, LEDlarni teshiklariga o'rnatish to'g'ridan -to'g'ri bo'lishi kerak. LEDlarni o'rnatish kerak, shuning uchun ma'lumotlar orqa tomondan qaralganda soat sohasi farqli o'laroq ishlaydi, chunki kod old tomonga o'rnatiladi.

Men ularni ushlab turish uchun ozgina issiq elim ishlatardim, chunki agar kelajakda u ishlamay qolsa, bitta LEDni almashtirishni xohlayman.

Bundan tashqari, men barcha simlarni toza va tartibli saqlash uchun va elim konstruktsiyasini taxtaga mahkamlash uchun issiq elim ishlatardim.

Arduino pro mini dasturlash uchun ko'plab qo'llanmalar mavjud. Men bu kodni Arduino -ga yuklash uchun tashqi USB -ni ketma -ket konvertatsiya qilish usulidan foydalanaman:

Ushbu kod, shuningdek, RTC vaqtini tuzilgan vaqtga o'rnatadi. shuning uchun yuklash tugmachasini yopish juda muhim, shuning uchun u iloji boricha tezroq mos keladi va yuklanadi.

Ushbu kodning katta qismi Endi Doro tomonidan NeoPixel qo'ng'iroq soatlaridan olingan. Adafruit NeoPixel Strand testidan ba'zilari va men birlashtirdim.

Siz bir nechta kutubxonalarni o'rnatishingiz kerak bo'ladi. Ular Arduino dasturiy ta'minotidagi Kutubxonalar menejerida mavjud.

Ws2812b LEDlari uchun Adafruit NeoPixel

RTC bilan I2C orqali gaplashish uchun sim (bu standart sifatida o'rnatilgan)

va RTClib RTCdan nima so'rashni bilgani uchun

/*********************************************** ***************************NeoPixel qo'ng'iroq soati Andy Doro ([email protected]) https://andydoro.com/ringclock/ ************************************************ **************************

Qayta ko'rib chiqish tarixi

Sana nima bilan

20140320 AFD Birinchi qoralama 20160105 AFD xira yoylar 20160916 AFD Trinket mos keluvchi 20170727 AFD 3D muhofaza uchun STARTPIXEL, o'zgarmaydigan boshlanish nuqtasi, DST kutubxonasi yordamida 20180424 AFD avtomatik DST qo'llab -quvvatlashini qo'shdi https://github.com/andydoro/DST_RTC *

/ kutubxona kodini o'z ichiga oladi:

#qo'shing #qo'shing

#qo'shing

// pinlarni belgilang

#SECPIN 3 ni belgilang #MINPIN 4ni aniqlang #HOUPIN 5 ni aniqlang

#devetine BRIGHTNESS 20 // maksimal yorqinlikni o'rnating

#aniqlang r 10

#define g 10 #define b 10 RTC_DS3231 rtc; // Soat ob'ektini o'rnating

Adafruit_NeoPixel tasmasiS = Adafruit_NeoPixel (60, SECPIN, NEO_GRB + NEO_KHZ800); // chiziqli ob'ekt

Adafruit_NeoPixel tasmasiM = Adafruit_NeoPixel (60, MINPIN, NEO_GRB + NEO_KHZ800); // chiziqli ob'ekt Adafruit_NeoPixel stripH = Adafruit_NeoPixel (24, HOUPIN, NEO_GRB + NEO_KHZ800); // chiziqli ob'ekt bayt pixelColorRed, pixelColorGreen, pixelColorBlue; // rang qiymatlarini saqlaydi

bo'sh o'rnatish () {

Wire.begin (); // I2C boshlang rtc.begin (); // soat boshlanishi

Serial.begin (9600);

// pinMode pinMode (SECPIN, OUTPUT); pin rejimi (MINPIN, OUTPUT); pinMode (HOUPIN, OUTPUT);

agar (rtc.lostPower ()) {

Serial.println ("RTC kuchini yo'qotdi, vaqtni belgilashga ruxsat bering!"); // quyidagi satrda RTC bu eskiz tuzilgan sana va vaqtga o'rnatiladi rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))); // Bu chiziq RTC -ni aniq sana va vaqt bilan belgilaydi, masalan: 2014 yil 21 -yanvar, soat 3 da siz qo'ng'iroq qilasiz: // rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0)); }

stripS.begin ();

stripM.begin (); stripH.begin (); // chiziq.show (); // Barcha piksellarni o'chirib qo'ying

// ishga tushirish ketma -ketligi

kechikish (500);

colorWipeS (stripS. Color (0, g, 0), 5); // Moviy rangWipeM (stripM. Color (r, 0, 0), 5); // Moviy rangWipeH (stripH. Color (0, 0, b), 50); // Moviy

kechikish (1000);

DateTime theTime = rtc.now (); // DST baytini hisobga oladi secondval = theTime.second (); // soniya baytini oling minuteval = theTime.minute (); // daqiqalarni oling int hourval = theTime.hour (); soat ko'rsatkichi = soat ko'rsatkichi % 12; // Bu soat 12 soat, agar 13-23 bo'lsa, 0-11 ga aylantiring

for (uint16_t i = 0; i <secondval; i ++) {stripS.setPixelColor (i, 0, 0, b); stripS.show (); kechikish (5); }

uchun (uint16_t i = 0; i <minuteval; i ++) {stripM.setPixelColor (i, 0, g, 0); stripM.show (); kechikish (5); }

for (uint16_t i = 0; i <hourval; i ++) {stripH.setPixelColor (i, r, 0, 0); stripH.show (); kechikish (5); }

}

void loop () {

// vaqt toping

DateTime theTime = rtc.now (); // DSTni hisobga oladi

bayt soniyali = theTime.second (); // soniya oling

bayt minuteval = theTime.minute (); // daqiqalarni oling int hourval = theTime.hour (); // soat soatini olish = soat bo'yicha % 12; // Bu soat 12 soat, agar 13-23 bo'lsa, 0-11 ga aylantiring

stripS.setPixelColor (ikkinchi qiymat, 0, 0, 20); stripS.show (); kechikish (10); if (secondval == 59) {for (uint8_t i = stripS.numPixels (); i> 0; i--) {stripS.setPixelColor (i, 0, g, 0); stripS.show (); kechikish (16);}}

stripM.setPixelColor (minuteval, 0, g, 0);

stripM.show (); kechikish (10); if (secondval == 59 && minuteval == 59) {for (uint8_t i = stripM.numPixels (); i> 0; i--) {stripM.setPixelColor (i, r, 0, 0); stripM.show (); kechikish (16);}}

stripH.setPixelColor (soat soatlari, r, 0, 0);

stripH.show (); kechikish (10); if (secondval == 59 && minuteval == 59 && hourval == 11) {for (uint8_t i = stripH.numPixels (); i> 0; i--) {stripH.setPixelColor (i, 0, 0, b); stripH.show (); kechiktirish (83);}} // ketma -ket disk raskadrovka qilish uchun Serial.print (hourval, DEC); Serial.print (':'); Ketma -ket chop etish (minuteval, DEC); Serial.print (':'); Serial.println (ikkinchi darajali, DEC); }

// Nuqtalarni birin -ketin rang bilan to'ldiring

void colorWipeS (uint32_t c, uint8_t kutish) {uchun (uint16_t i = 0; i <stripS.numPixels (); i ++) {stripS.setPixelColor (i, c); stripS.show (); kechiktirish (kutish); }}

bo'sh rangWipeM (uint32_t c, uint8_t kuting) {

uchun (uint16_t i = 0; i <stripM.numPixels (); i ++) {stripM.setPixelColor (i, c); stripM.show (); kechiktirish (kutish); }}

bo'sh rangWipeH (uint32_t c, uint8_t kuting) {

uchun (uint16_t i = 0; i <stripH.numPixels (); i ++) {stripH.setPixelColor (i, c); stripH.show (); kechiktirish (kutish); }}

5 -qadam: Yakuniy teginishlar

Image
Image
Yakuniy teginishlar
Yakuniy teginishlar

Qolganlarning hammasi tanaffusda RTC va Micro Controller -ni pastga tushirishdir.

Men RTC batareyasini tepaga joylashtirdim, shuning uchun kerak bo'lganda batareyani osongina o'zgartirishim mumkin.

5V simlarni ulagichning + tomoniga va Groundni yon tomonga ulang

Quvvatlang!

Men USB batareyali bankka ulanganman, lekin USB telefon zaryadlash qurilmasi ham shunday ishlaydi.

Eslatma:

LEDlarning yorqinligi kodda o'rnatiladi. Hozirgi durangni past darajada ushlab turish uchun u past qilib qo'yilgan. Barcha LEDlar yonib turganda, u deyarli 8 amperga teng bo'lishi mumkin. Joriy sozlash bilan u 1dan kam.

Soatlar musobaqasi
Soatlar musobaqasi
Soatlar musobaqasi
Soatlar musobaqasi

Soatlar tanlovida ikkinchi o'rinni egalladi

Tavsiya: