Mündəricat:

Tam Göy qurşağı təsiri ilə göy qurşağı söz saatı və daha çox: 13 addım (şəkillərlə)
Tam Göy qurşağı təsiri ilə göy qurşağı söz saatı və daha çox: 13 addım (şəkillərlə)

Video: Tam Göy qurşağı təsiri ilə göy qurşağı söz saatı və daha çox: 13 addım (şəkillərlə)

Video: Tam Göy qurşağı təsiri ilə göy qurşağı söz saatı və daha çox: 13 addım (şəkillərlə)
Video: Heydər Əliyev və Həyat yoldaşını Birdə belə görün #azerbaijan #president #prezident #xeberler #xeber 2024, Iyul
Anonim
Tam Göy qurşağı təsiri və daha çoxu olan göy qurşağı söz saatı
Tam Göy qurşağı təsiri və daha çoxu olan göy qurşağı söz saatı

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ı

Saat üçün dava
Saat üçün dava
Saat üçün dava
Saat üçün dava
Saat üçün dava
Saat üçün dava

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

Neopiksellər
Neopiksellər
Neopiksellər
Neopiksellər
Neopiksellər
Neopiksellər
Neopiksellər
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 mətnin tənzimlənməsi
Ön mətnin tənzimlənməsi
Ön mətnin tənzimlənməsi
Ön mətnin tənzimlənməsi
Ön mətnin tənzimlənməsi
Ö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

Tam Göy qurşağı təsiri
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

Müxtəlif komponentlər
Müxtəlif komponentlər
Müxtəlif komponentlər
Müxtəlif komponentlər
Müxtəlif komponentlər
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

Avadanlıq Təsviri
Avadanlıq Təsviri
Avadanlıq Təsviri
Avadanlıq Təsviri
Avadanlıq Təsviri
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ıq Nəzarəti üçün LDR
Neopiksellərin Parlaqlıq Nəzarəti üçün LDR
Neopiksellərin Parlaqlıq Nəzarəti üçün LDR
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 enerji istehlakının azaldılması
WS2812B enerji istehlakı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 smayl
Söz saatında smayl
Söz saatında smayl
Söz saatında smayl

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ə

Sadə IR Uzaqdan İdarəetmə
Sadə IR Uzaqdan İdarəetmə
Sadə IR Uzaqdan Nəzarət
Sadə IR Uzaqdan Nəzarət
Sadə IR Uzaqdan Nəzarət
Sadə IR Uzaqdan Nəzarət

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?

Nə Əlaqələr?
Nə Ə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ə: