Mundarija:

Kamalakning to'liq effektli kamalak so'zli soati va boshqalar: 13 qadam (rasmlar bilan)
Kamalakning to'liq effektli kamalak so'zli soati va boshqalar: 13 qadam (rasmlar bilan)

Video: Kamalakning to'liq effektli kamalak so'zli soati va boshqalar: 13 qadam (rasmlar bilan)

Video: Kamalakning to'liq effektli kamalak so'zli soati va boshqalar: 13 qadam (rasmlar bilan)
Video: GEYLAR QANDAY PAYDO BO'LGAN? 2024, Iyul
Anonim
Kamalakning to'liq effektli kamalak so'zli soati va boshqalar
Kamalakning to'liq effektli kamalak so'zli soati va boshqalar

Maqsadlar

1) oddiy

2) qimmat emas

3) Iloji boricha energiyani tejash

Kamalakning to'liq effektli kamalak so'zli soati.

So'z soatlaridagi tabassum.

Oddiy IR masofadan boshqarish pulti

Neopixellarning yorqinligini boshqarish uchun 03-nov-18 LDR-ni yangilang

Yangilanish 01-yanvar-19 WS2812B quvvat sarfini kamaytirish.

15-yanvar-19-smaylni yangilang.

23-yanvar-19-kodni 1.6-ga yangilang

10-mart-19 kutubxonalari havolalarini yangilang

14-apreldan 19-versiyaga 1.7-versiyasini yangilang.

Oxirgi yangilanish 01-iyun-19 versiyasi 2.0 IQ masofadan boshqarish pulti va kodni qayta loyihalash

1 -qadam: soat uchun sumka

Soat uchun ish
Soat uchun ish
Soat uchun ish
Soat uchun ish
Soat uchun ish
Soat uchun ish

Oddiy asboblar va ozgina mahorat bilan, harfli soat yasash qiyin emas, men o'zim uchun mavjud bo'lgan materiallardan foydalandim.

Ish uchun men qo'pol qarag'ay novdasidan foydalandim, unda men bir nechta ramkalarni arraladim. Bu korpusning to'rt tomonini bir -biriga yopishtirib, burchaklaridagi kichik yog'och bo'lagi bilan mustahkamlab qo'yardi. Keyin yog'och zımpara va bo'yashga muhtoj.

Harflar folga bilan kesilgan bo'lib, ko'zguda yoziladi. Folga shisha plastinkaning orqa tomonida va yorug'likni yaxshiroq taqsimlash uchun ikki qavatli naqshli qog'oz bilan qoplangan. Shisha silikon plomba bilan o'rnatiladi.

2 -qadam: Neopiksellar

Neopiksellar
Neopiksellar
Neopiksellar
Neopiksellar
Neopiksellar
Neopiksellar
Neopiksellar
Neopiksellar

Neopixels LED -lari yog'och plastinkada joylashgan bo'lib, siz avval 3 mm teshiklarni burg'ilaysiz. Old tomondan ular harflar hajmining 3/4 chuqurigacha kattalashtiriladi. Shundan so'ng, orqa tarafdagi 3 mm 10 mm gacha ko'tariladi, bu Neopixel o'lchamidir. Ba'zi belgilar uchun V, teshik biroz sozlanishi kerak.

Men tez parchalanadigan kontrplakdan foydalandim, MDF yaxshiroq bo'lishi mumkin.

Har bir LED bilan siz LED chiziqlar bilan bir xil masofaga bog'lanmaysiz. LEDlar bir -biriga ulangan bo'lishi kerak. Siz buni barcha qisqa simlar bilan qilishingiz mumkin. Ammo ikkita min (-) ulanish xuddi ichki ulangan ikkita ortiqcha (+) ulanishga o'xshaydi, shuning uchun ham bir xil ulanish.

Bir bo'lak simni chap LEDga, so'ng o'ng LEDga lehimlab, o'zingizni ko'p ishdan qutqarishingiz mumkin. Keyin oraliqlarini lehimlang.

Ma'lumotlar ulanishi, albatta, qisqa bo'laklardan iborat bo'lishi kerak, chunki ma'lumotlar uzilishi ma'lumotlarni uzatishga o'tadi.

3 -qadam: oldingi matnni sozlash

Old matnni sozlash
Old matnni sozlash
Old matnni sozlash
Old matnni sozlash
Old matnni sozlash
Old matnni sozlash

Old plastinka endi golland tilida, lekin har qanday tilga aylantirish uchun.

NeoPixels LED-lari ketma-ket 0-167 yillarda almashtiriladi. Raqamlash yuqori chapdagi birinchi qatordan o'ngga, keyin ikkinchi qatordan o'ngdan chapga o'tadi va hokazo. O'z ehtiyojlaringizga qarab sozlash mumkin. NeoPixellar soni belgilar soniga qarab belgilanadi. Kamroq yoki ko'proq Neopixellarni keyingi qatorda sozlash mumkin

#define NUMPIXELS 168 // Arduino -ga nechta NeoPixel biriktirilgan?

168 - bu boshqa raqam. Raqamlash 0 dan boshlanadi. Siz xohlagan matnni yaratishingiz mumkin. Agar siz matnni o'zgartirsangiz, unga mos keladigan so'zlarni o'zgartirishingiz kerak bo'ladi. Raqamlar bir xil bo'lib qoladi.

Misol sifatida, daqiqalarning DRIE kodda belgilanadi

vet zetmDrie () {

Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-drie

}

Agar siz Arduino so'zini yaratmoqchi bo'lsangiz, u shunday bo'ladi:

vet zetArduino () {

Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;

Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; // Word-arduino

}

Shunday qilib, siz so'zlar orasidagi so'zlarni yaratishingiz mumkin.

Soat so'zlari uchun, agar ular qo'shni so'z hosil qilsa, foydalidir, lekin bu mutlaqo kerak emas. Foydalanilmagan harflarga Neonpixel kerak emas. Men ularning barchasini kelajakdagi imkoniyatlardan foydalanish uchun, vaqt ko'rsatilishidan tashqari to'ldirganman.

Agar siz boshlang'ich nuqtani o'zgartirsangiz yoki ketma -ketlikni o'zgartirsangiz, raqamlash mos ravishda o'zgarishi kerak.

4 -qadam: Kamalakning to'liq effekti

Kamalakning to'liq effekti
Kamalakning to'liq effekti

Soat hozir shunday dasturlashtirilganki, soniyada necha marta neopiksel yoqilganligini hisoblash mumkin.

Umumiy spektr taqsimlanganlar soniga to'g'ri keladi va keyin biroz siljiydi. Natijada, har bir Neopixel doimiy ravishda o'zgarib turadigan boshqa rangga ega. Neopixel nr 1 va nr 167 bir -birini ta'qib qiladi.

Agar siz bir vaqtning o'zida kamroq ranglarni afzal ko'rsangiz, uni sozlash oson. Rang hali ham butun spektr bo'ylab o'zgaradi, lekin uning kichik qismi bilan. Neopixel nr 1 va nr 167 endi bir -biriga mos kelmaydi.

Yorqinlikni quyidagi satrda o'rnatish mumkin.

piksel.setBrightness (150);

Kichik raqam kamroq va katta raqam yorqinroq.

5 -qadam: Har xil komponentlar

Har xil komponentlar
Har xil komponentlar
Har xil komponentlar
Har xil komponentlar
Har xil komponentlar
Har xil komponentlar

Men ishlatgan quyidagi komponentlar

Arduino Pro Mini ATMEGA328 5V/16MGts

DS3231 soat moduli

168 dona Neopixel LED-ning WS2812 LED chip va sovutgichi 5V 5050 RGB WS2811 IC o'rnatilgan

Folga harfli stencil

DCF77 qabul qiluvchisi

6 -qadam: soat kodi

Mana kod. Yorug'lik nazorati qo'shildi va hech kim bo'lmaganida va kechasi o'chirildi.

RCWL-0516 radar mikroto'lqinli harakat sensori qo'shildi (RADAR qidiruvi)

10 daqiqalik harakatsizlikdan so'ng, NeoPixels o'chadi.

2.0 versiyasi haqida

Xotiradan foydalanish juda ko'p edi, kompilyatorda xotira ogohlantirishlari tugadi. Shuning uchun men kodni butunlay o'zgartirdim, lekin operatsiya o'zgarmadi va IQ qabul qiluvchisi qo'shildi.

Ma'lumotni EEPROM bilan ta'minlash uchun kodning bir qismi bor, / * va * / ni vaqtincha o'chirish orqali bir marta ishga tushiring. EEPROMga ma'lumotlar bilan ta'minlash uchun => ni bir marta ishga tushiring

Bo'shliqning boshida kodni masofadan boshqarish pultidan o'qish uchun kod mavjud, uni / * va * / ni vaqtincha o'chirish orqali ishga tushirishingiz mumkin, keyin ularni qaytarib qo'yishni unutmang. Siz shuningdek o'zingizning tugmalaringizni belgilashingiz mumkin. O'qilgan kodni => O'z tugmalarini belgilashga yozish kerak

Samsung masofadan boshqarish pulti (juda arzon) oddiyidan yaxshiroq ishlaydi.

7 -qadam: Uskuna tavsifi

Uskuna tavsifi
Uskuna tavsifi
Uskuna tavsifi
Uskuna tavsifi
Uskuna tavsifi
Uskuna tavsifi

Arduino Pro Mini -ning turli xil versiyalari mavjud. E'tibor bering, ulanishlar farq qilishi mumkin.

RCWL-0516 mikroto'lqinli harakat sensori qo'shildi.

Soat yaqinida harakat bor ekan, NeoPixel yoqiladi

va boshqa harakat yo'qligi bilan NeoPixel bir necha daqiqadan so'ng o'chadi.

2.0 -versiyada DCF77 qabul qilgichi 13 -pin orqali quvvat bilan ta'minlanadi. Bu pin DCF77 tartibiga e'tibor qaratilganda chiqish sifatida belgilanadi va yuqori o'rnatiladi. DCF77 qabul qilgichi 0,28 mA dan foydalanadi va kuniga atigi bir necha daqiqa kerak bo'ladi.

O'chirish saqlanadi

5 volt * 0,28 mA / 1000 * 24 soat * 365 kun * 1 / 0,85 samaradorlik quvvat manbai = yiliga 14,4 vatt.

Bu unchalik ko'rinmaydi, lekin hamma narsa yordam beradi.

8 -qadam: Neopiksellarning yorqinligini boshqarish uchun LDR

Neopiksellarning yorqinligini boshqarish uchun LDR
Neopiksellarning yorqinligini boshqarish uchun LDR
Neopiksellarning yorqinligini boshqarish uchun LDR
Neopiksellarning yorqinligini boshqarish uchun LDR

Neopiksellarning yorqinligini boshqarish uchun LDR qo'shildi.

Men LDRni neopixel 103 maydoniga yopishtirdim. Bu vaqt ko'rsatkichida ishlatilmaydi va shuning uchun tartibga ta'sir qilmaydi. Qog'oz voqeani yoritadi, lekin bu muammo emas.

LDR va 20 kohmli rezistorning bo'linishi Arduino Pro Mini A0 ga to'g'ri keladi. Voltaj yorug'lik intensivligining ko'rsatkichidir va shuning uchun ham neopiksellar berishi kerak bo'lgan yorug'lik miqdorining ko'rsatkichidir.

Men ishlatadigan formulalar menga yorug'likni yaxshi boshqaradi, uni sharoitga qarab sozlash mumkin. Yorug'lik miqdoriga qarab, kuchlanish 0 dan 5 voltgacha o'zgarishi mumkin, bu 0 dan 1024 gacha "LDRValue" ga aylanadi.

Agar yangi o'lchangan qiymat oxirgi hisoblangan qiymatdan katta bo'lsa, intensivlik 1 ga oshiriladi, agar u 1 ga kamayganidan past bo'lsa va unga teng bo'lsa, hech narsa qilinmaydi. Ko'rinib turadigan effekt bo'lmasligi uchun qiymatni asta -sekin davom ettirish uchun faqat 1 tasi ko'payadi yoki kamayadi va hisob -kitob tsiklda bo'lgani uchun u faqat 25 marta aylanib o'tgandan keyin qayta hisoblab chiqiladi.

Zo'ravonlik nazariy jihatdan minimal 20 va maksimal 1024/7 + 45 = 191. Men o'lchagan maksimal qiymat 902 edi, bu 173 zo'ravonlikka teng. Bu men ko'rsatgan 150 qiymatiga mos keladi.. (qarang piksel.setBrightness (150))

2.0 versiyasida siz boshqaruvni masofadan boshqarish pulti orqali o'rnatishingiz mumkin. Quyidagi parametrlar qo'shildi: Brightness_min minimal sifatida va Brightness_max maksimal sozlama va Brightness_Offset parametr sifatida. Brightness_min va _max - bu sizning vaziyatingizga bog'liq bo'lishi mumkin bo'lgan qadriyatlar. Brightness_Offset - bu masofadan boshqarish pulti yordamida o'rnatiladigan va ko'p yoki kamroq yorqinlikni sozlash mumkin bo'lgan qiymat.

O'lchangan LDRValue va BerLDRValue qiymatlari o'rtasida 3 ta o'lik tarmoqli ham mavjud.

Yorqinlik sozlamalarini tekshirish uchun BrightnessControl bo'sh joyidagi bosma bayonotlardan foydalaning.

9 -qadam: WS2812B quvvat sarfini kamaytirish

WS2812B quvvat sarfini kamaytirish
WS2812B quvvat sarfini kamaytirish

WS2812B manzilli neopikselli drayverlar neopiksellar o'chirilgan bo'lsa ham, 0 rangga o'rnatiladi (neopiksel elementlari yoqilmagan).

Hamma 169 ta neopikselda bo'lsa, men 69 mA ni neopiksellarga o'lchayman. Soat kuniga 12 soat yopiq deb hisoblasak, umumiy o'chirish quyidagilarni tejaydi: 5 (Volt quvvat manbai) * 69/1000 (Miliamper / 1000 = Amper) * 12 (Kuniga soat soni) * 365 (Bir kunda kunlar soni) yil) = 1511 vatt soat. Shunday qilib, har yili 1,5 kVt. Qabul qilaman, bu o'z -o'zidan emas, lekin ko'plab kichiklar katta narsani yaratadi.

O'chirish oddiy, quvvat manbai P kanalli MosFet bilan almashtiriladi. Radar sensori neopiksellarning yoqilgan yoki o'chirilganligini aniqlaydi. MosFets yo'qolganligi sababli ON qarshilikni iloji boricha past darajada ushlab turish uchun ikkita MosFet parrelel qo'ydim. Oddiy foydalanishda men MosFets ustidan 4, 5 milli voltni o'lchayman. Darvoza 470 kohmli rezistor orqali Arduino -dan 4 -chiqish orqali boshqariladi. Agar chiqish raqamli ravishda past (0) ga tushsa, neopiksellar yoqilgan va yuqori (1) da o'chirilgan.

10 -qadam: Soat soatlaridagi tabassum

So'z soatlaridagi tabassum
So'z soatlaridagi tabassum
So'z soatlaridagi tabassum
So'z soatlaridagi tabassum

So'z soatlaridagi tabassum.

Vaqti -vaqti bilan tabassum paydo bo'ladi, lekin bu sizni xursand qiladi.

"Smiley" radar sensori tomonidan boshqariladi. Harakatlar soni (sozlanishi) - bu Smileyning ko'rinishini o'lchash. % Belgilari harakat aniqlanganligini ko'rsatadi. Har o'ninchi (sozlanishi) harakatda, Smiley ko'zni qamashtiruvchi yuz bilan chiqadi va uch marta ko'z qisganidan keyin to'rtinchi marta tabassumli til chiqadi.

Smiley - bu koddagi kichik o'zgarish.

11 -qadam: Qaysi kutubxonalar ishlatiladi

Qaysi kutubxonalar ishlatiladi.

Men ularni Windows 7 da Arduino IDE 1.6 bilan ishlataman va ular Windows 10 da Adruino IDE 1.8.8 bilan sinovdan o'tgan.

RTClib ustasi

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-ustasi

Ken Shirriffning IRremote kutubxonasi

Kutilgan kutubxona haqida har doim chalkashliklar bo'lgani uchun, men o'zim foydalanadiganni qo'shaman.

IRremote kutubxonasi juda ko'p xotiradan foydalanadi.

// Siz kiritgan har bir protokol xotira xarajatlarini va dekodlash vaqtida xarajatlarni sarflaydi // Sizga kerak bo'lmagan/kerak bo'lmagan barcha protokollarni o'chiring (0 ga o'rnating)!

Menda NEC va Samsung protokolidan tashqari hamma narsa o'chirilgan. Bu xotirani 10%tejash imkonini beradi. Hozirda xotira hajmida muammo yo'q, shuning uchun hozircha o'chirib qo'yish shart emas.

12 -qadam: oddiy IR masofadan boshqarish pulti

Oddiy IR masofadan boshqarish pulti
Oddiy IR masofadan boshqarish pulti
Oddiy IR masofadan boshqarish pulti
Oddiy IR masofadan boshqarish pulti
Oddiy IR masofadan boshqarish pulti
Oddiy IR masofadan boshqarish pulti

Assambleya

Rasmlarda ko'rib turganingizdek, LED 132 uchun teshik biroz kattaroq bo'lib chiqdi. Men bundan yaxshi foydalandim va unga IQ qabul qilgichni qo'shdim. VS1838 IQ qabul qilgichining ma'lumot pinini Arduino -ning 7 -piniga ulang. Bundan tashqari, ortiqcha va ortiqcha quvvat manbaini ulang. IQ qabul qilgich 0,21 mA dan foydalanadi va FET tugmachasidan keyin ortiqcha quvvat manbaiga ulanishi mumkin. Bu, agar soat 50% bo'lsa, 5 volt * 0,21 mA / 1000 * 12 soat * 365 kun * 1 / 0,85 samaradorlik quvvat manbai = yiliga 5,4 vattni tejashga olib keladi. Bu unchalik ko'rinmaydi, lekin hamma narsa yordam beradi.

Operatsiya quyidagicha

IR masofadan boshqarish pultidagi istalgan tugmachani va keyin OK tugmasini bosing. Birinchi marta bosganingizda, siz IQni qayta ishlash jarayoniga kirasiz va ikkinchi marta siz uning asosli so'rov ekanligini aniqlaysiz. Ikkinchi marta OK birinchi tugmani tezda bosishi kerak, aks holda u yana qaytadi. Men bu konstruktsiyani shunday qildimki, men birinchi kodni deyarli to'g'ri dekodlamadim va shuning uchun IQ bilan ishlashda qolmadim.

Infraqizil nurlar bilan ishlashda bir qancha LEDlar ma'lumot olish uchun davom etadi, tushuntirish uchun o'qing va birinchi rasmni ko'ring.

Tavsif oddiy masofadan boshqarish pulti uchun, lekin siz istalgan masofadan boshqarish pultidan foydalanishingiz va o'z kalitlaringizni belgilashingiz mumkin. Men ham Samsung masofadan boshqarish pultidan foydalandim.

Birinchi to'rtta tugma LEDning to'rtta yuqori qatoriga to'g'ri keladi. To'rt LED sozlamaga qarab chapga yoki o'ngga buriladi. 1 dan 4 gacha tugmalar bosilganda, holat teskari bo'ladi va xotirada saqlanadi.

1 ta sobit rang yoki kamalak effekti

2 soniya yonib o'chadi yoki ikkinchi marta yonadi

3 tabassum off tabassum yoqilgan

4 DCF77 o'chirilgan yoki DCF77 yoqilgan

Keyingi tugmachalarda kalit raqami ko'rsatiladi

5 tabassum hisoblagichi

6 kamalak spektrining kengligi

7 qizil sozlamalarni tuzatish

8 tuzatish yashil sozlamalari

9 tuzatish ko'k sozlamalari

LEDlarning 6, 7 va 8 -qatorlari endi belgilangan qiymatga mos keladi, 6 -qator birliklarni ko'rsatadi, 7 -qatorda o'nlab va 8 -qatorda yuz. Har bir satr nol qiymati bilan boshlanadi. Shunday qilib, birinchi qator 0, ikkinchisi 1 va boshqalar.

0 vaqtni sozlash

/\ nashrida sozlash

0 tugmachasi bosilganda, vaqtni belgilashni xohlashingizni bildiruvchi "o'n" LED yonadi va ikkinchi marta 0 bosilganda displeyda belgilangan vaqt paydo bo'ladi.

Endi vaqtni sozlash mumkin va u displeyda ko'rsatiladi.

To'g'ri vaqtni belgilang va agar soat mos yozuvlar soati bo'yicha bir xil bo'lsa, OK tugmasini bosing.

Vaqt sozlangan.

Agar siz daqiqalar yoki soatlar tugmachasini ishlatmasangiz, vaqt o'zgartirilmaydi. Agar siz ularni bossangiz, vaqt darhol belgilanadi.

Klaviatura yordamida 5 dan 9 gacha bo'lgan kalitlarni o'zgartirish mumkin

o'ng plyus 1

chapda minus 1

oldinga ortiqcha 10

teskari - minus 10.

va vaqtni sozlash uchun

o'ng - ortiqcha 1 daqiqa

chapda minus 1 daqiqa

oldinga ortiqcha 1 soat

teskari - minus 1 soat

Ba'zida tugma bosilmasligi yoki ikki marta bajarilishi sodir bo'ladi. Agar sozlamalar yaxshi ketayotgan bo'lsa, diqqat qiling, aks holda qayta urinib ko'ring yoki to'g'rilang. Men ham sinovdan o'tgan Samsung masofadan boshqarish pulti (juda arzon) oddiy masofadan boshqarish pultiga qaraganda bir necha bor yaxshi ishlagan.

Rangni belgilashda siz o'zgarishlarni to'g'ridan -to'g'ri butun displeyda ko'rasiz. Ranglarga umumiy nuqtai nazar bilan qarang. Siz, albatta, har qanday qiymatni belgilashingiz mumkin.

Agar kamalak spektrining kengligi 0 ga teng bo'lsa, spektr juda tor va displey doimo o'zgarib turadigan bitta rangga ega.

Vaqtni shunday belgilashning nochorligi shundaki, siz yoz -qish o'tishini hisoblay olmaysiz, chunki bizda sana noto'g'ri. Soatning o'zi muhim emas, chunki biz hozir ishlatmaymiz.

13 -qadam: Qaysi qo'shimchalar?

Qaysi Nexts?
Qaysi Nexts?

Bo'sh xotira hali ham etarli bo'lsa, nima eshitiladi.

Menda allaqachon karnay qutilari bor. Ular eski noutbukdan.

Tavsiya: