Mundarija:
- 1 -qadam: ehtiyot qismlarni yig'ish va yog'ochdan ishlov berish
- 2 -qadam: Akril doiralar
- 3 -qadam: Lehimlash
- 4 -qadam: Kod
- 5 -qadam: Daniya yog'i
Video: Ish vaqti: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Men tez -tez o'zim nima qilmoqchi ekanligimni bilmaydigan narsalarni sotib olaman. Ushbu loyiha 12x WS2812b LEDlari yoqilgan halqani sotib olish natijasidir. Menda bu borada rejalar yo'q edi, lekin u Internetda juda zo'r ko'rinardi, shuning uchun men uni aravamga tiqib qo'ydim, u kelganida bir muddat o'ynadim va keyin hammasini unutdim.
Birozdan keyin men soat yasash haqida o'yladim va u hech narsa qilmay o'tirganini esladim. Men daqiqalarni to'ldirish uchun 60 LEDli ikkinchi halqani sotib olish haqida o'yladim, lekin keyin biz qanday qilib vaqtga qaraymiz va uni 5 daqiqagacha aylantiramiz deb o'ylay boshladim.
Bu bilan men o'zimning 12 LED halqam bilan ish soatini yasadim. U bir vaqtning o'zida 1 LEDni ko'rsatadi, bu soatni ko'rsatadi (Moviy LED) va keyin daqiqalarni (Qizil LED) pastga aylantiradi.
1 -qadam: ehtiyot qismlarni yig'ish va yog'ochdan ishlov berish
Men bir kuni ishga kelib, taglik topganimdan juda omadli edim. Bu pallet menga yopishib qoldi, chunki u sizning standartingizga o'xshamadi. Bu toza, issiqlik bilan ishlangan va eng g'ayrioddiy qattiq eman edi.
Ushbu loyiha palletning bir qismidan qilingan. (Men uyga olib ketishdan oldin xo'jayindan so'radim)
Shuningdek ishlatiladi:
- 12 pikselli ws2812b LED halqali
- Haqiqiy vaqt soati (RTC) moduli (I2C bilan DS3231 ishlataman)
- Arduino Nano v3.0 mos keladi
- Akril varaq (5 mm)
- Rangli sim
Asboblar
- Quvvat matkapi
- Router
- Yog'ochdan yasalgan tekis sozlanishi
- Quvvat zımpara
- Qo'l arra
- Lehimlash temir
- Issiq yopishtiruvchi qurol
- Qum qog'oz
- Daniya yog'i
Zımpara
Men yog'och zımpara yordamida yog'och blokni tekis va tekis qilib, hamma tomonlari toza va tekis bo'lguncha tozalashni boshladim. Men o'tmishdagi ba'zi tarixlarni ko'rishni xohlaganim uchun, ba'zi kamchiliklarni ko'rinadigan qilib qo'ydim, lekin u to'g'ri yoki to'rtburchaklar emas.
Teshiklarni belgilash va kesish
Zımpara qilgandan so'ng, men soatning yuzini xohlagan tomonni tanladim va markazni har bir burchakdan chiziqlar bilan belgilab qo'ydim. Men sozlanadigan yog'ochni halqadan bir oz kattaroq qilib qo'ydim, shuning uchun akril uchun 5 mm chuqurlikda o'tiradigan va kesadigan tokchasi bor edi, keyin kesgichni LED halqasining kattaligidan kattaroq qilib sozlab, yana 5 mm yoki undan ko'pini kesib tashladim..
Yo'nalish va kabel teshiklari
Ruterimni 12 mm bit bilan ishlatib, RTC va Arduino -ni yashirish uchun blokning pastki qismidagi chuqurchaga chiqdim. Uning chuqurligi taxminan 15 mm va har qanday chetidan kamida 5 mm. Men markazni (ishni) pastdan belgilab qo'ydim va LED simlariga ruxsat berish uchun 10 millimetrli burg'ulashni yarmigacha o'tkazdim. Keyin 5 mm diametrli diodli chuqurchaning markazidan 10 mm teshikni pastdan teshib o'tdim.
Quvvat kirishi uchun orqa tomondan yana 4 mm teshik va kichikroq yo'riqnoma yordamida LED halqasining orqa qismidagi simlar uchun kanal yasash va yog'och ishi bajariladi.
2 -qadam: Akril doiralar
Soat oldida akril yasash uchun men teshikdan kattaroq kvadrat bo'lakni kesib tashlashni aytdim. Keyin ishga tushirish uchun zımpara yordamida burchaklarni to'g'ri shakli va o'lchamiga qadar olib tashlashni boshladim. Keyin qo'lda silliqlashga o'tdim, shuning uchun men otishni to'xtatmadim va qaytadan boshlashim kerak edi.
Bu asta -sekin va zerikarli sinov va xato jarayoni edi, u to'g'ri o'rnatilgunga qadar, lekin menimcha, yakuniy natija bunga loyiq edi. Men akrilning old qismiga muzli ko'rinish berish uchun juda nozik qog'oz ishlatib tugatdim.
3 -qadam: Lehimlash
Shu munosabat bilan men simlarim uchun rang tizimidan foydalanishni yaxshi ko'raman:
- Quvvat uchun qizil (5v)
- Er uchun oq
- Ma'lumot uchun sariq
- Soat uchun yashil rang
Men yuqoridagi tizim yordamida LED halqasiga 3 ta kerakli simni lehimlashdan va simlarni teshikdan pastga surishdan boshladim. Haqiqiy majburlashga duch kelmaslik kerak, men halqani joyida ushlab turish uchun ozgina issiq elim ishlatardim. (Men uni biroz o'zgartirishim mumkin) va akrilni chetiga ozgina issiq elim bilan o'rnating.
Keyin yuqoridagi tizim yordamida 4 ta simni RTCga lehimladim. Ishlarni biroz toza saqlash uchun men Arduino -dan RTC quvvatini olishga qaror qildim. Keyin hamma narsani Arduino -ga ulab, Arduino -ga 1 simni, ikkinchisini esa topraklash uchun lehimladi.
RTC
- Analog pin 5 ga SCL (soat)
- Analog pin 4 ga SDA (ma'lumotlar)
- VCC dan 5V gacha
- Arduino -dagi har qanday GND -ga GND
LED halqa
Din raqamli pin 6
Menda eski USB kabeli bor edi, shuning uchun uni soatni quvvatlantirish uchun ishlatishga qaror qildim. Men odatda biror narsaga ulanadigan uchini kesib tashladim va uni orqadagi teshikdan itirdim. Keyin VCC -ni Arduino -ga lehimlashdan oldin, LED halqasini musbat tomonga va Arduino -dan LED -ni erga lehimlashdan oldin, uchlarini echib oling. Men birozdan keyin issiqlikni pasaytirdim va u yaxshi ko'rinardi, Issiq yopishtiruvchi qurol hamma narsani ushlab turish uchun qaytib keldi. Men Arduinodan etarlicha o'ynab ketishga qaror qildim, shuning uchun kelajakda USB portiga kira olaman, lekin men unchalik tushib keta olmayman.
4 -qadam: Kod
Endi siz ushbu kodni Arduino -ga yuklashingiz kerak.
Agar RTC ishlamayotgan bo'lsa, bu vaqt kod tuzilgan vaqtga qarab belgilanadi, shuning uchun yuklash tugmachasini bosing va tasdiqlamang.
bu vaqtni belgilash uchun juda yaxshi ishlaydi.
www.instructables.com/id/Setting-the-DS130…
Bu kodning katta qismini men Adafruit NeoPixel kutubxonasidan, ba'zilarini RTC kutubxonasidan, ba'zilarini esa o'zim tuzganman.
// kutubxona kodini o'z ichiga oladi: #include
#qo'shing
#qo'shing
// pinlarni belgilang
#PIN kodni belgilang 6
#devetine BRIGHTNESS 20 // maksimal yorqinlikni o'rnating
#aniqlang r 5
#aniqlang g 5
#ta'rif b 5
RTC_DS3231 rtc; // Soat ob'ektini o'rnating
Adafruit_NeoPixel tasmasi = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // chiziqli ob'ekt
bo'sh o'rnatish () {
Wire.begin (); // I2C ni boshlang
rtc.begin (); // soat boshlanishi
Serial.begin (9600);
// pinmodlarni o'rnating
pin rejimi (PIN, OUTPUT);
agar (rtc.lostPower ()) {
Serial.println ("RTC kuchini yo'qotdi, vaqtni belgilashga ruxsat bering!");
// keyingi satrda RTC bu eskiz tuzilgan sana va vaqtga o'rnatiladi
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))));
// Bu satr RTCni aniq sana va vaqt bilan belgilaydi, masalan o'rnatish uchun
// 2014 yil 21 -yanvar, soat 03:00 da siz qo'ng'iroq qilardingiz:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Barcha piksellarni o'chirib qo'ying
DateTime theTime = rtc.now (); // DSTni hisobga oladi
bayt soniyali = theTime.second (); // soniya oling
bayt minuteval = theTime.minute (); // daqiqa oling
int hourval = theTime.hour ();
nuqta (chiziqli Rang (0, g, 0), 50);
}
void loop () {
// vaqt toping
DateTime theTime = rtc.now (); // DSTni hisobga oladi
int minuteval = theTime.minute (); // daqiqa oling
int hourval = theTime.hour (); // soatni oling
int secondval = theTime.second ();
agar (minuteval 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
aks holda (minuteval <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
kechikish (1000);
uchun (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
agar (soat vaqti == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
aks holda (soat vaqti == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
kechikish (1000);
uchun (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// ketma -ket disk raskadrovka uchun
Serial.print (soat soatlari, DEC);
Serial.print (':');
Ketma -ket chop etish (minuteval, DEC);
Serial.print (':');
Serial.println (ikkinchi darajali, DEC);
}
bo'sh nuqta (uint32_t c, uint8_t kuting) {
uchun (int j = 0; j <3; j ++) {
uchun (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
kechiktirish (kutish);
uchun (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
5 -qadam: Daniya yog'i
Oxirgi va ixtiyoriy qadam - yog'ochga Daniya yog'ini surtish. Menga bu donni qanday chiqarishi juda yoqadi va u dog 'va namlikdan himoya qiladi. Shuning uchun men buni juda tavsiya qilaman.
Siz uni tarashingiz mumkin, yoki men uni artish uchun faqat eski matodan foydalanaman.
Qolgan narsa - uni rozetkaga ulash va zavqlanish.
Tavsiya:
Tushlik vaqti: 9 qadam (rasmlar bilan)
Tushlik vaqti: Siz tushlik vaqti uzoqroq bo'lishini xohlaganmisiz, lekin bu qo'shimcha daqiqalarni qayerdan topishni bilmaganmisiz? Xo'sh, endi xohlamang! Soat texnologiyasining yutuqlari tufayli men sizga har kuni soat 11:00 da 20% tezlik va 20 ni sekinlashtiradigan soatni taqdim etaman
Mikrokontroller loyihalari uchun o'rtacha ish vaqti: 6 qadam
Sizning mikrokontroler loyihalaringiz uchun o'rtacha ish haqi: Men bu ko'rsatmada men ishlaydigan o'rtacha nima ekanligini va nima uchun unga g'amxo'rlik qilish kerakligini tushuntirib beraman, shuningdek, maksimal hisoblash samaradorligi uchun uni qanday amalga oshirish kerakligini ko'rsataman (murakkablik haqida qayg'urmang, bu tushunish juda oson va
Ish stoli qurilmasi - sozlanadigan ish stoli yordamchisi: 7 qadam (rasmlar bilan)
Ish stoli qurilmasi - sozlanadigan ish stoli yordamchisi: Ish stoli qurilmasi - bu shaxsiy shaxsiy ish stoli yordamchisi bo'lib, u internetdan yuklab olingan har xil ma'lumotlarni ko'rsatishi mumkin. Bu qurilma men o'qituvchi tomonidan boshqariladigan Berri kollejidagi CRT 420 - Maxsus mavzular sinfiga mo'ljallangan va qurilgan
Creative Robotix - ta'lim platformasi - Vaqti: 12 qadam (rasmlar bilan)
Creative Robotix - Ta'lim platformasi - TimEE: Bu ko'rsatma bizning Creative Robotix ta'lim platformamiz uchun muqobil terini yaratadi. Birinchidan, platformani 23 -bosqichga yarating, so'ng qurishni keyingi bosqichdan davom ettiring. TimEE dizayni micro-S deb nomlangan ijodiy usuldan ilhomlangan
Reaktsiya vaqti o'lchagichi (vizual, audio va sensorli): 9 qadam (rasmlar bilan)
Reaktsiya vaqti o'lchagichi (vizual, audio va teginish): reaktsiya vaqti - bu odam stimulni aniqlash va javob berish uchun zarur bo'lgan vaqt o'lchovidir. Masalan, sportchining ovozli reaktsiya vaqti - bu o'q otish (musobaqani boshlash) va uning musobaqani boshlashi orasidagi vaqt. Reaktio