Mündəricat:
- Addım 1: Saat Davası
- Addım 2: Neopiksellər
- Addım 3: Ön mətnin tənzimlənməsi
- Addım 4: Tam Göy qurşağı təsiri
- Addım 5: Müxtəlif komponentlər
- Addım 6: Saat üçün kod
- Addım 7: Avadanlıq Təsviri
- Addım 8: Neopiksellərin Parlaqlıq Nəzarəti üçün LDR
- Addım 9: WS2812B Enerji İstehsalının Azaldılması
- Addım 10: Söz Saatında Smiley
- Addım 11: Hansı Kitabxanalardan İstifadə Edilir
- Addım 12: Sadə IR Uzaqdan İdarəetmə
- Addım 13: Hansı Əlaqələr?
Video: Tam Göy qurşağı təsiri ilə göy qurşağı söz saatı və daha çox: 13 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Məqsədlər
1) Sadə
2) Bahalı deyil
3) Mümkün qədər enerji səmərəli
Tam göy qurşağı təsiri ilə Gökkuşağı Söz Saatı.
Söz Saatında Bir Smiley.
Sadə IR uzaqdan idarəetmə
Neopixellərin Parlaqlıq Nəzarəti üçün 03-nov-18 LDR-ni yeniləyin
01-jan-19 yeniləmə WS2812B enerji istehlakını azaldır.
15-yanvar-19 Smiley'i yeniləyin.
23 Yanvar-19 Kod 1.6-ı yeniləyin
10 Mart-19 Kitabxanaları bağlantılarını yeniləyin
14-apr-19 versiyasını 1.7 yeniləyin Seçim smileyini rəngli göy qurşağı aç/söndürün enz.
Son yeniləmə 01-iyun-19 versiyası 2.0 IR uzaqdan idarəetmə və kodun yenidən dizaynı
Addım 1: Saat Davası
Bəzi sadə vasitələr və bir az bacarıqla, məktub saatı düzəltmək çətin deyil, məndə olan materiallardan istifadə etdim.
Dava üçün bir neçə çərçivə gördüyüm kobud bir şam çubuğundan istifadə etdim. Bunlar, yapışdırılmış və künclərində kiçik bir taxta parçası ilə möhkəmləndirilmiş qutunun dörd tərəfini düzəldərdi. Sonra ağacın zımpara və boyaya ehtiyacı var.
Hərflər folqa ilə yazıcı tərəfindən aynada yazılır. Folqa şüşə lövhənin arxasındadır və daha yaxşı işıq yayılması üçün iki qatlı naxışlı kağızla örtülmüşdür. Şüşə silikon mastik ilə bərkidilir.
Addım 2: Neopiksellər
Neopixels LED -ləri taxta bir plaka üzərində düzülmüşdür, əvvəlcə 3 mm -lik deliklər qazırsınız. Ön tərəfdə məktub ölçüsünün 3/4 dərinliyinə qədər böyüdülür. Bundan sonra arxadakı 3 mm 10 mm -ə qədər artırılır, bu Neopixel ölçüsüdür. Bəzi simvollar üçün W, dəlik bir qədər düzəldilməlidir.
Tez parçalanan kontrplak istifadə etdim, MDF daha yaxşı ola bilər.
Fərdi LED -lərlə, LED şeritlərində olduğu kimi sabit bir məsafəyə bağlı deyilsiniz. LEDlər bir -birinə bağlanmalıdır. Bunu bütün qısa tel parçaları ilə edə bilərsiniz. Ancaq iki min (-) əlaqə, daxili bağlanan iki artı (+) bağlantı kimidir, buna görə də eyni əlaqə.
Bir tel telini sol LED -ə, sonra sağ LED -ə lehimləməklə özünüzü çox işdən xilas edə bilərsiniz. Sonra aralıq olanları lehimləyin.
Məlumat bağlantısı, əlbəttə ki, qısa hissələrlə olmalıdır, çünki məlumat çıxışı məlumat girişinə gedir.
Addım 3: Ön mətnin tənzimlənməsi
Ön plaka indi Holland dilindədir, ancaq hər hansı bir dilə çevirmək üçün.
NeoPixels ledləri ardıcıl olaraq 0-167 arasında dəyişir. Nömrələmə ilk soldan sağa, sonra ikinci cərgədən sağdan sola gedir. Ayarlama öz ehtiyaclarınıza uyğun olaraq edilə bilər. NeoPixellərin sayı simvolların sayı ilə müəyyən edilir. Aşağıdakı sətirdə daha az və ya daha çox Neopiksel tənzimlənə bilər
#define NUMPIXELS 168 // Arduino -ya neçə NeoPixel qoşulub?
168 başqa bir rəqəmdir. Nömrələmə 0 -dan başlayır. İstənilən mətni edə bilərsiniz. Mətni dəyişdirsəniz, uyğun sözləri də düzəltməlisiniz. Nömrələmə eyni olaraq qalır.
Nümunə olaraq, dəqiqələrin DRIE kodu ilə müəyyən edilir
boş zetmDrie () {
Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-drie
}
Arduino sözünü düzəltmək istəyirsənsə, belə olur:
boş 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
}
Beləliklə, aralarında sözlər düzəldə bilərsiniz.
Saat sözləri üçün bitişik bir söz meydana gətirmələri faydalıdır, lakin bu, tamamilə lazım deyil. İstifadə edilməmiş məktubların Neonpixelə ehtiyacı yoxdur. Göstərilən vaxtdan başqa gələcək imkanların istifadəsi üçün hamısını doldurdum.
Başlanğıc nöqtəsini dəyişdirsəniz və ya ardıcıllıq ardıcıllığını dəyişdirsəniz, nömrələnmə də buna uyğun olaraq dəyişməlidir.
Addım 4: Tam Göy qurşağı təsiri
Saat indi o qədər proqramlaşdırılıb ki, saniyədə neçə dəfə neopikselin işə salındığı hesablanır.
Ümumi spektr bölünənlərin sayıdır və sonra bir qədər dəyişir. Nəticədə, hər bir Neopixel davamlı olaraq dəyişən fərqli bir rəngdə olur. Neopixel nr 1 və nr 167 bəzi rəngləri əhatə edir.
Eyni zamanda daha az fərqli rənglərə üstünlük verirsinizsə, bunu tənzimləmək asandır. Rəng hələ də bütün spektrdə dəyişir, lakin daha kiçik bir hissəsi ilə. Neopixel nr 1 və nr 167 artıq bir rəngə aiddir.
Parlaqlıq aşağıdakı sətirdə təyin edilə bilər, piksel.setBrightness (150);
Kiçik bir rəqəm daha az, daha çox rəqəm daha parlaqdır.
Addım 5: Müxtəlif komponentlər
İstifadə etdiyim aşağıdakı komponentlər
Arduino Pro Mini ATMEGA328 5V/16MHz
Saat Modulu DS3231
168 ədəd Neopixels led WS2812 LED Çip və Soğutucu 5V 5050 RGB WS2811 IC Daxili
Folyo məktub şablonu
DCF77 qəbuledicisi
Addım 6: Saat üçün kod
İşdə kod budur. Parlaqlıq nəzarəti və heç kim olmadıqda və gecə söndürüldü.
Əlavə edilmiş RCWL-0516 Radar Mikrodalğalı Hərəkət Sensoru (RADAR axtar)
10 dəqiqə hərəkətsiz qaldıqdan sonra NeoPixels sönür.
2.0 versiyası haqqında
Yaddaş istifadəsi həddindən artıq çox idi, kompilyatorda yaddaş xəbərdarlıqları bitdi. Buna görə kodu tamamilə dəyişdirdim, amma əməliyyat eyni qaldı və bir IR qəbuledicisi əlavə edildi.
EEPROM -u məlumatlarla təmin etmək üçün bir kod parçası var. / * Və * / işarələrini müvəqqəti olaraq silin. EEPROM -u məlumatla təmin etmək üçün => bunu bir dəfə işlədin
Boşluq döngəsinin əvvəlində öz uzaqdan idarə etmə kodunuzu oxumaq üçün bir kod var. / * Və * / işarələrini müvəqqəti olaraq silə bilərsiniz, sonra geri qoymağı unutmayın. Öz düymələrinizi də təyin edə bilərsiniz. Oxunan kod => Öz düymələrinizi bura daxil edin
Samsung uzaqdan idarəetmə cihazı (çox ucuz) sadədən daha yaxşı işləyir.
Addım 7: Avadanlıq Təsviri
Arduino Pro Mini -nin fərqli versiyaları var. Bağlantıların fərqli ola biləcəyini unutmayın.
RCWL-0516 Mikrodalğalı Hərəkət Sensoru əlavə edildi.
Saatın yaxınlığında hərəkət olduğu müddətcə NeoPixel aktiv olaraq qalır
və heç bir hərəkət olmayanda NeoPixel bir neçə dəqiqədən sonra sönür.
2.0 versiyasında DCF77 qəbuledicisi 13 pin vasitəsilə enerji ilə təmin edilir. Bu pin çıxış olaraq təyin olunur və DCF77 rutininə müraciət edildikdə yüksək olaraq təyin edilir. DCF77 qəbuledicisi 0,28 mA istifadə edir və gündə yalnız bir neçə dəqiqə lazımdır.
Söndürmə qənaət edir
5 Volt * 0,28 mA / 1000 * 24 saat * 365 gün * 1 / 0,85 səmərəli enerji təchizatı = ildə 14,4 vat.
Bu çox görünmür, amma hər şey kömək edir.
Addım 8: Neopiksellərin Parlaqlıq Nəzarəti üçün LDR
Neopiksellərin parlaqlığını idarə etmək üçün LDR əlavə edildi.
Mən LDR -ni neopixel 103 boşluğuna yapışdırdım. Bu, vaxt ekranında istifadə edilmir və buna görə də tənzimləməyə təsir etmir. Kağız hadisə işığını söndürür, amma bu problem deyil.
LDR və 20 kohm rezistorun gərginlik ayırıcısı Arduino Pro Mini -nin A0 -na gedir. Gərginlik işığın intensivliyinin göstəricisidir və buna görə də neopiksellərin verməli olduğu işıq miqdarının göstəricisidir.
İstifadə etdiyim düstur mənə yaxşı işıq nəzarəti verir, şəraitə görə tənzimlənə bilər. İşıq miqdarından asılı olaraq, gərginlik 0 ilə 5 volt arasında dəyişə bilər, bu da "LDRValue" da olan 0 -dan 1024 sayına çevrilir.
Yeni ölçülmüş dəyər son hesablanan dəyərdən böyükdürsə, intensivlik 1 artır, 1 azaldandan aşağıdırsa və bərabərdirsə heç bir şey edilmir. Dəyərin yavaş -yavaş davam etməsi üçün heç bir yanıb -sönmə effekti olmayacaq, yalnız 1 artır və ya azaldıla bilər və hesablama döngədə olduğu üçün yalnız döngəni 25 dəfə keçdikdən sonra yenidən hesablanır.
İntensivlik nəzəri olaraq minimum 20 və maksimum 1024/7 + 45 = 191 -dir. Ölçdüyüm maksimum dəyər 902 idi, bu da 173 intensivliyə bərabərdir. Bu, standart dəyər olaraq təyin etdiyim 150 -yə uyğundur.. (bax piksel.setBrightness (150))
2.0 versiyasında uzaqdan idarəetmə vasitəsi ilə nəzarəti qura bilərsiniz. Aşağıdakı parametrlər əlavə edildi: minimum olaraq Brightness_min və maksimum olaraq Brightness_max və Parametr parametri olaraq Brightness_Offset. Parlaqlıq_min və _max öz vəziyyətinizdən asılı ola biləcək dəyərlərdir. Brightness_Offset, uzaqdan idarəetmə ilə təyin edilə bilən və az və ya çox parlaqlığın təyin oluna biləcəyi bir dəyərdir.
Ölçülmüş LDRValue və hesablanmış BerLDRValue dəyərləri arasında 3 -lük bir ölü bant da var.
Parlaqlıq parametrini yoxlamaq üçün boş BrightnessControl -dəki çap ifadələrini istifadə edin.
Addım 9: WS2812B Enerji İstehsalının Azaldılması
WS2812B ünvanlı neopikseldə olan sürücülər, neopiksellər söndürüldükdə belə, 0 rənginə qoyulmuşdur (heç bir yeni piksel elementi yanmır).
Bütün 169 neopikseldən çıxanda neopikseldə 69 mA ölçürəm. Saatın gündə 12 saat olduğunu düşünsək, ümumi bağlanma qənaət edir: 5 (Volt enerji təchizatı) * 69/1000 (Miliampere / 1000 = Amper) * 12 (Gündəlik saatların sayı) * 365 (Gün ərzində günlərin sayı il) = 1511 Watt saat. Beləliklə, illik olaraq 1,5 Kwh. Razıyam, özlüyündə çox deyil, amma bir çox kiçik olanlar böyük bir şey edir.
Dövrə sadədir. Güc qaynağının artığı P kanallı MosFet ilə dəyişdirilir. Radar sensoru, neopiksellərin açıq olub -olmadığını təyin edir. MosFets itkisinə görə ON müqavimətini mümkün qədər aşağı saxlamaq üçün iki MosFet parrelel qoymuşam. Normal istifadədə MosFets üzərində 4, 5 milili volt ölçürəm. Qapı, 470 Kohm müqavimət vasitəsi ilə Arduinodan 4 çıxışı ilə idarə olunur. Çıxış rəqəmsal olaraq aşağı (0) səviyyəsinə keçərsə, neopiksellər açıqdır və yüksəkdə (1) sönür.
Addım 10: Söz Saatında Smiley
Söz Saatında Bir Smiley.
Bəzən saatda bir Smiley görünür, amma bu sizi xoşbəxt edir.
Smiley, radar sensoru tərəfindən tetiklenir. Hərəkətlərin sayı (tənzimlənən) Smileyin görünüşünün ölçüsüdür. % İşarələri hərəkətin aşkarlandığını göstərir. Hər onuncu (tənzimlənən) hərəkəti ilə, Smiley Winky Face ilə gəlir və üç dəfə Winky Face dördüncü dəfə bir Smiley Face dilini çıxarır.
Smiley, kodda kiçik bir dəyişiklikdir.
Addım 11: Hansı Kitabxanalardan İstifadə Edilir
Hansı kitabxanalardan istifadə olunur.
Onları Windows 7 -də Arduino IDE 1.6 ilə istifadə edirəm və onlar da Windows 10 -da Adruino IDE 1.8.8 ilə sınaqdan keçirilmişdir.
RTClib ustası
Arduino-DS3231-master
Adafruit_NeoPixel-master
Arduino-DCF77-master
Ken Shirriff-in IRremote Kitabxanası
İstifadə olunan kitabxanada hər zaman qarışıqlıq olduğu üçün istifadə etdiyimi əlavə edirəm.
IRremote kitabxanası çoxlu yaddaşdan istifadə edir.
// Daxil etdiyiniz hər bir protokol yaddaş xərcləri və kod açma zamanı xərcləri // Lazım olmayan/istəmədiyiniz bütün protokolları deaktiv edin (0 olaraq təyin edin)!
NEC və Samsung protokolu istisna olmaqla hər şey əlil oldu. Bu, yaddaşa 10%qənaət etməyə imkan verir. Hal -hazırda yaddaşın həcmi ilə bağlı artıq problem yoxdur, buna görə hələlik onu deaktiv etmək lazım deyil.
Addım 12: Sadə IR Uzaqdan İdarəetmə
Məclis
Fotoşəkillərdə gördüyünüz kimi, LED 132 üçün çuxurun bir az çox böyük olduğu ortaya çıxdı. Bundan yaxşı istifadə etdim və ona IR qəbuledicisini əlavə etdim. VS1838 IR qəbuledicisinin məlumat pinini Arduinonun 7 pininə qoşun. Bundan əlavə, artı və mənfi enerji təchizatını birləşdirin. IR qəbuledicisi 0,21 mA istifadə edir və FET keçidindən sonra artı enerji təchizatına da qoşula bilər. Bu, vaxtın 50% -ni təşkil edirsə, 5 Volt * 0.21 mA / 1000 * 12 saat * 365 gün * 1 / 0.85 səmərəli enerji təchizatı = ildə 5.4 vat qənaətlə nəticələnir. Bu çox görünmür, amma hər şey kömək edir.
Əməliyyat aşağıdakı kimidir
IR uzaqdan idarəetmə düyməsindəki hər hansı bir düyməni və sonra OK düyməsini basın. İlk dəfə basdığınız zaman, IR işlənməsinə son qoyacaqsınız və ikinci dəfə bunun əsaslandırılmış bir tələb olub olmadığını aşkar edəcəksiniz. İkinci dəfə OK, ilk düyməni basmağı tez bir zamanda yerinə yetirməlidir, çünki əks halda yenidən geri qayıdır. Mən bu konstruksiyanı elə düzəltmişəm ki, ilk kodu çətinliklə düzgün açmışam və buna görə də IR idarəetməsində bitməmişəm.
Bir dəfə IR idarəetməsində bir sıra LEDlər məlumat üçün davam edir, izahat üçün daha çox oxuyun və ilk görüntüyə baxın.
Təsvir sadə bir uzaqdan idarəetmə üçündür, ancaq hər hansı bir uzaqdan idarə etmədən istifadə edə və öz düymələrinizi təyin edə bilərsiniz. Bir də Samsung pultundan istifadə etdim.
İlk dörd düymə LED -lərin ilk dörd sırasına uyğundur. Dörd LED, parametrdən asılı olaraq sola və ya sağa dönür. 1 -dən 4 -ə qədər düymələrə basıldıqda vəziyyət tərsinə çevrilir və yaddaşda saxlanılır.
1 sabit rəng və ya göy qurşağı təsiri
2 saniyəlik flaş sönür və ya ikinci flaş açılır
3 smiley off smiley açıq
4 DCF77 söndürülmüş və ya DCF77 açıqdır
Açarın nömrəsi aşağıdakı düymələrdə göstərilir
5 smiley sayğacı
6 göy qurşağı spektrinin eni
7 qırmızı ayarı düzəldin
8 yaşıl ayarı düzəldin
9 mavi ayarı düzəldin
LED -lərin 6, 7 və 8 -ci sətirləri artıq müəyyən edilmiş dəyərə uyğundur, 6 -cı sıra vahidləri, 7 -ci sıranı onlarla və 8 -ci sıranı göstərir. Hər satır sıfır dəyəri ilə başlayır. Beləliklə, sıradakı birinci led 0, ikincisi 1 və s.
0 vaxt ayarı
/\ parlaqlıq ayarı
0 düyməsinə basıldıqda, "on" LED -ləri yanıb, vaxtı təyin etmək istədiyinizi göstərir və 0 -a ikinci dəfə basdığınızda ekranda təyin olunan vaxt görünür.
İndi vaxt təyin edilə bilər və ekranda göstərilir.
Doğru saatı təyin edin və sonra dəqiqə bir istinad saatında eyni olarsa, OK düyməsini basın.
Vaxt tənzimlənir.
Dəqiqə və ya saat düyməsini işləməsəniz, vaxt dəyişikliyi edilməyəcək. Onlara basarsanız, vaxt dərhal təyin olunacaq.
5 -dən 9 -a qədər düymələrin dəyəri düymələrlə dəyişdirilə bilər
sağ artı 1 -dir
sol eksi 1 -dir
irəli 10 artıdır
tərs mənfi 10 -dur.
və vaxt ayarı üçün
sağ üstəgəl 1 dəqiqə
sol eksi 1 deqiqedir
irəli artı 1 saatdır
tərs mənfi 1 saatdır
Bəzən olur ki, düyməni basmaq tanınmır və ya iki dəfə aparılır. Ayar yaxşı getdiyinə diqqət yetirin, əks halda yenidən cəhd edin və ya düzəldin. Test etdiyim Samsung uzaqdan idarəetmə cihazı (çox ucuz) sadə uzaqdan idarəetmə cihazından dəfələrlə yaxşı işləyir.
Rəngi təyin edərkən dəyişikliyi birbaşa bütün ekranda görürsünüz. Rənglərin ümumi görünüşü olan bir sayt üçün https://www.helderester.nl/kleurentabel.html ünvanına baxın. Əlbəttə ki, hər hansı bir dəyəri təyin edə bilərsiniz.
Göy qurşağı spektrinin eni 0 olarsa, spektr çox dar və ekranda daim dəyişən bir rəng var.
Vaxtı bu şəkildə təyin etməyin dezavantajı, tarixin səhv olduğu üçün yaz / qış keçidini hesablaya bilməməyinizdir. Saatın özü üçün heç bir əhəmiyyət kəsb etmir, çünki indi istifadə etmirik.
Addım 13: Hansı Əlaqələr?
Boş yaddaş hələ də kifayətdirsə, bundan sonra səslənir.
Artıq səsgücləndirici qutularım var. Köhnə bir noutbukdan.
Tövsiyə:
Göy qurşağı təsiri və arxa plan işığı olan söz saatı .: 6 addım
Göy qurşağı effektli və arxa plan işığı olan söz saatı
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
Tətbiq Nəzarəti ilə Göy qurşağı Qülləsi: 6 Addım (Şəkillərlə)
Tətbiq Nəzarəti ilə Göy qurşağı Qülləsi: Göy qurşağı qülləsi tətbiq tərəfindən idarə olunan bir mühit işığıdır. İşıq mənbəyi olaraq WS2812 LED şeridi və işıqları idarə etmək üçün ESP8266 modulu istifadə etdim. Tərəflər işığı yaymaq üçün əla bir material olan ağ akril şüşədən hazırlanmışdır. Tətbiqlə siz
CheapGeek- Daha çox və ya daha çox çirkin bir monitor etmək : 5 addım
CheapGeek- Daha çox və ya daha çox çirkin bir monitor düzəlt … (necə baxdığınızdan asılı olaraq) evdə PC işi üçün istifadə etdiyim ehtiyat monitorum var idi. Monitorun qara olması lazım idi. Üstəlik əlimdəki hər şey qara rəngdədir
Çox sərin göy qurşağı baş bandı: 9 addım (şəkillərlə birlikdə)
Çox sərin Gökkuşağı Bandı: Bu layihə, çıxdığınız zaman vəhşi LED rəngli bir halo yaratmanıza kömək edəcək, iki ildir ki, konfranslarda, məktəblərdə, yanan adamda geyinirəm .. və Makerfaire ilə həmişə xoşbəxt insanlarımız var. baxmaq üçün gəlir. İnsanlar istəyər