Tartalomjegyzék:

Szivárványos szóóra teljes szivárványhatással és még sok más: 13 lépés (képekkel)
Szivárványos szóóra teljes szivárványhatással és még sok más: 13 lépés (képekkel)

Videó: Szivárványos szóóra teljes szivárványhatással és még sok más: 13 lépés (képekkel)

Videó: Szivárványos szóóra teljes szivárványhatással és még sok más: 13 lépés (képekkel)
Videó: РАДУГА МАЛЫШ. Обнаружение секса на УЗИ. Беременность 13 недель. 2024, Július
Anonim
Szivárvány szóóra teljes szivárványhatással és így tovább
Szivárvány szóóra teljes szivárványhatással és így tovább

Célok

1) Egyszerű

2) Nem drága

3) Lehetőleg energiatakarékos

Szivárványos szóóra teljes szivárványhatással.

Mosoly a szóórán.

Egyszerű IR távirányító

Frissítés 03-nov-18 LDR a neopixelek fényerejének szabályozásához

Frissítés 01-jan-19 A WS2812B energiafogyasztásának csökkentése.

Frissítés január 15-én 19-es Smiley.

Frissítés 23-jan-19 Kód 1.6

Frissítse a 10 március 19-i könyvtárak linkjeit

Frissítés 14-április-19-es verzió 1.7. Válaszd ki a smiley be- és kikapcsolási collor szivárvány/fix enzimet.

Utolsó frissítés 01-jun-19 verzió 2.0 IR távirányító és kódtervezés

1. lépés: Az óra tokja

Az óra tokja
Az óra tokja
Az óra tokja
Az óra tokja
Az óra tokja
Az óra tokja

Néhány egyszerű eszközzel és egy kis szakértelemmel nem nehéz betűórát készíteni. A számomra rendelkezésre álló anyagokat használtam.

A tokhoz durva fenyő rudat használtam, amelyben néhány keretet fűrészeltem. Így készülne a ház négy oldala, amelyeket összeragasztottak és a sarkokban egy kis fadarabbal megerősítettek. Ezután a fát csiszolni és festeni kell.

A betűket egy nyomtató tükörírással vágja ki fóliából. A fólia az üveglap hátulján található, és kétrétegű mintapapírral van borítva a jobb fényeloszlás érdekében. Az üveget szilikon tömítőanyag rögzíti.

2. lépés: Neopixelek

Neopixelek
Neopixelek
Neopixelek
Neopixelek
Neopixelek
Neopixelek
Neopixelek
Neopixelek

A Neopixels LED -ek falemezen vannak elhelyezve. Ebben az esetben először 3 mm -es lyukakat fúr. Elöl betűméretre 3/4 mélységre vannak nagyítva. Ezt követően a hátsó 3 mm -t 10 mm -re növelik, ez a méret egy Neopixel. Néhány karakter, többek között a W, a lyukat kissé módosítani kell.

Rétegelt rétegelt lemezt használtam, amely gyorsan szétesett, az MDF jobb lehet.

Az egyedi LED -ekkel nem kötött rögzített távolságra, mint például a LED -szalagok esetében. A LED -eket össze kell kötni egymással. Ezt megteheti minden rövid huzaldarabbal. De a két min (-) csatlakozás pont olyan, mint a két plusz (+) csatlakozás, amelyek belsőleg vannak összekötve, tehát ugyanaz a kapcsolat.

Sok munkát megspórolhat, ha egy huzaldarabot forraszt a bal LED -re, majd a jobb LED -re. Ezután forrasztja a közteseket.

Az adatkapcsolatnak természetesen rövid darabokkal kell rendelkeznie, mert az adatkimenet az adatbevitelre megy.

3. lépés: Az első szöveg beállítása

Az elülső szöveg beállítása
Az elülső szöveg beállítása
Az elülső szöveg beállítása
Az elülső szöveg beállítása
Az elülső szöveg beállítása
Az elülső szöveg beállítása

Az előlap most hollandul van, de egyszerűen bármilyen nyelvre konvertálható.

A NeoPixels LED-ek itt egymás után váltakoznak 0-167 között. A számozás a bal felső sarokban lévő első sorból jobbra, majd a második sorból jobbról balra stb. A beállítás a saját igényei szerint végezhető el. A NeoPixelek számát a karakterek száma határozza meg. Kevesebb vagy több Neopixel állítható be a következő sorban

#define NUMPIXELS 168 // Hány NeoPixel kapcsolódik az Arduino -hoz?

A 168 egy másik szám. A számozás 0 -val kezdődik. Bármilyen szöveget készíthet. Ha megváltoztatja a szöveget, akkor a megfelelő szavakat is módosítania kell. A számozás ugyanaz marad.

Például a jegyzőkönyv DRIE -jét a kód határozza meg

void zetmDrie () {

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

}

Ha az Arduino szót szeretné elkészíteni, akkor ez így hangzik:

void 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

}

Tehát szavakat is köthet közöttük.

Az óra szavaknál hasznos, ha összefüggő szót alkotnak, de nem feltétlenül szükséges. A fel nem használt betűkhez nem kell neonpixel. Mindet feltöltöttem az idő megjelenítésétől eltérő jövőbeli lehetőségek használatához.

Ha megváltoztatja a kezdőpontot vagy az utódlási sorrendet, a számozásnak ennek megfelelően kell változnia.

4. lépés: Teljes szivárvány hatás

Teljes szivárvány hatás
Teljes szivárvány hatás

Az óra úgy van programozva, hogy másodpercenként hányszor számolják, hány neopixel van bekapcsolva.

A teljes spektrum körülbelül az osztott, majd kissé eltolt számú. Ennek eredményeként minden egyes Neopixel más színű, amely folyamatosan változik. Az 1 -es és a 167 -es számú neopixel követi egymást néhány színnel kapcsolatban.

Ha egyszerre kevesebb különböző színt részesít előnyben, akkor ezt könnyű beállítani. A szín még mindig eltolódik a teljes spektrumon, de kisebb részével. Az 1 -es és a 167 -es számú neopixel már nem követi egymást.

A fényerő a következő sorban állítható be:

pixels.setBrightness (150);

Egy kisebb szám kevesebb, a nagyobb szám pedig nagyobb fényerő.

5. lépés: A különböző összetevők

A különböző összetevők
A különböző összetevők
A különböző összetevők
A különböző összetevők
A különböző összetevők
A különböző összetevők

A következő összetevőket használtam

Arduino Pro Mini ATMEGA328 5V/16MHz

DS3231 óra modul

168 db Neopixels led WS2812 LED chip és hűtőborda 5V 5050 RGB WS2811 IC Beépített

Fólia betűs sablon

DCF77 vevő

6. lépés: Az óra kódja

Itt a kód. Fényerő -szabályozó és kikapcsolás, ha senki nincs jelen és éjszaka.

Hozzáadott RCWL-0516 radar mikrohullámú mozgásérzékelő (RADAR keresése)

10 perc mozdulatlanság után a NeoPixelek kialszanak.

A 2.0 verzióról

A memóriahasználat túl nagy volt, a fordítóban elfogytak a memória figyelmeztetések. Ezért teljesen megváltoztattam a kódot, de a művelet változatlan maradt, és hozzáadtak egy IR -vevőt.

Van egy kódrészlet, amely biztosítja az EEPROM számára az adatokat. Futtassa ezt egyszer a / * és * / ideiglenes eltávolításával. Keresse meg => futtassa ezt egyszer, hogy adatokkal lássa el az EEPROM -ot

Az üres hurok elején van egy kód, amellyel leolvashatja a kódot a saját távirányítójáról. Ezt a / * és * / ideiglenes eltávolításával futtathatja, ne felejtse el később visszahelyezni őket. Saját gombokat is megadhat. A beolvasott kódot be kell írni => Itt definiálhatja saját gombjait

A Samsung távirányítója jobban működik, mint a (nagyon olcsó) egyszerű.

7. lépés: A hardver leírása

A hardver leírása
A hardver leírása
A hardver leírása
A hardver leírása
A hardver leírása
A hardver leírása

Az Arduino Pro Mini különböző verziói vannak. Kérjük, vegye figyelembe, hogy a csatlakozók eltérőek lehetnek.

Hozzáadott egy RCWL-0516 mikrohullámú mozgásérzékelőt.

Amíg mozgás van az óra közelében, a NeoPixel bekapcsolva marad

és amint nincs több mozgás, a NeoPixel néhány perc múlva kikapcsol.

A 2.0 -s verzióban a DCF77 vevőt a 13 -as érintkezőn keresztül táplálják. Ez a tű kimenetként van definiálva, és a DCF77 rutin megszólításakor magasra van állítva. A DCF77 vevő 0,28 mA -t használ, és csak néhány percre van szükség naponta.

A kikapcsolás ment

5 volt * 0,28 mA / 1000 * 24 óra * 365 nap * 1 / 0,85 hatékonyságú tápegység = 14,4 watt évente.

Ez nem tűnik soknak, de minden rész segít.

8. lépés: LDR a neopixelek fényerejének szabályozásához

LDR a neopixelek fényerejének szabályozásához
LDR a neopixelek fényerejének szabályozásához
LDR a neopixelek fényerejének szabályozásához
LDR a neopixelek fényerejének szabályozásához

Hozzáadott egy LDR -t a neopixelek fényerejének szabályozásához.

Az LDR -t beragasztottam a neopixel 103. terébe. Ez az időkijelzőn nem használatos, ezért nem befolyásolja a szabályozást. A papír csillapítja a beeső fényt, de ez nem probléma.

Az LDR és a 20 kohm ellenállás feszültségosztója az Arduino Pro Mini A0 -jához megy. A feszültség a fényintenzitás jelzője, és ezért a neopixelek által kibocsátott fény mennyiségét is jelzi.

Az általam használt képlet jó fényszabályozást biztosít, a körülmények függvényében beállítható. A fény mennyiségétől függően a feszültség 0 és 5 volt között változhat, amelyet 0-1024 számra alakítanak át, amelyek "LDRValue" értékűek.

Ha az új mért érték nagyobb, mint az utolsó számított érték, az intenzitást 1 -gyel növeljük, ha alacsonyabb, mint 1 -gyel csökkentettük, és ha egyenlő, akkor semmi sem történik. Annak érdekében, hogy az érték lassan haladjon, és ne legyen villogó hatás, csak 1 -et növelünk vagy csökkentünk, és mivel a számítás a ciklusban van, csak a ciklus 25 -szörös áthaladása után számítják újra.

Az intenzitás elméletileg minimum 20 és maximum 1024/7 + 45 = 191. A maximális érték, amit mértem, 902 volt, ami 173 intenzitású. Ez jól illeszkedik az alapértelmezett értékként beállított 150 értékhez. (lásd pixels.setBrightness (150))

A 2.0 verzióban a vezérlőt a távvezérlővel állíthatja be. A következő paramétereket adtuk hozzá: Brightness_min minimum és Brightness_max, mint maximális beállítás és Brightness_Offset, mint beállítási paraméter. A Brightness_min és a _max azok az értékek, amelyek függhetnek saját helyzetétől. A Brightness_Offset olyan érték, amelyet a távirányítóval lehet beállítani, és amellyel több vagy kevesebb fényerő állítható be.

A mért LDRValue és a számított BerLDRValue értékek között 3 -as halott sáv is található.

Használja a void BrightnessControl nyomtatási utasításait a fényerő beállításának ellenőrzéséhez.

9. lépés: A WS2812B energiafogyasztásának csökkentése

A WS2812B energiafogyasztásának csökkentése
A WS2812B energiafogyasztásának csökkentése

A WS2812B címezhető neopixelek illesztőprogramjai akkor is áramot merítenek, ha a neopixelek ki vannak kapcsolva, 0 -ra állítva (nem világítanak a neopixelek).

Amikor mind a 169 neopixel kint van, 69 mA -t mérök a neopixelekhez. Feltételezve, hogy az óra napi 12 órában ki van kapcsolva, a teljes leállítás ekkor ment: 5 (Voltos tápegység) * 69/1000 (Miliampere / 1000 = Ampere) * 12 (Napi órák száma) * 365 (Napok száma év) = 1511 Wattóra. Tehát éves szinten 1,5 Kwh. Egyetértek, ez önmagában nem sok, de sok kicsi csinál egy nagyot.

Az áramkör egyszerű. A tápegység pluszát egy P-csatornás MosFet kapcsolja. A radarérzékelő határozza meg, hogy a neopixelek be vannak -e kapcsolva. Két párhuzamos MosFet -et tettem, hogy az ON ellenállás a lehető legalacsonyabb legyen a MosFets elvesztése miatt. Normál használat esetén 4, 5 mili voltot mérek a MosFets felett. A kaput az Arduino 4 kimenete vezérli 470 Kohm ellenálláson keresztül. Ha a kimenet digitálisan alacsony (0) értékre csökken, akkor a neopixelek be vannak kapcsolva, és magasan (1) ki vannak kapcsolva.

10. lépés: Mosolyogjon a Word Clockon

Smiley a Word Clockon
Smiley a Word Clockon
Smiley a Word Clockon
Smiley a Word Clockon

Mosoly a szóórán.

Időnként megjelenik egy Smiley az órán. Ez azonban boldoggá tesz.

A Smiley -t a radarérzékelő váltja ki. A mozgás (állítható) száma a Smiley megjelenésének mérőszáma. A % jelek azt jelzik, hogy mozgást észleltünk. Minden tizedik (állítható) mozdulattal a Smiley egy kacsintó arcot állít elő, és háromszor egy kacsintó arc után negyedszer jön ki egy mosolygó arc, amely kinyújtja a nyelvét.

A Smiley egy kis változás a kódban.

11. lépés: Milyen könyvtárakat használnak

Mely könyvtárakat használják.

Windows 7 -ben használom őket Arduino IDE 1.6 -mal, és tesztelték Windows 10 -ben is Adruino IDE 1.8.8 -mal

RTClib-master

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-master

Ken Shirriff IRremote könyvtára

Mivel mindig zűrzavar van a használt könyvtárral kapcsolatban, hozzáadom az általam használtat.

Az IRremote könyvtár sok memóriát használ. Az IRremote.h azt jelzi, hogy letilthatja a fel nem használt protokollokat

// Minden protokoll, amelyet tartalmaz, memóriába kerül, és a dekódolás során időbe kerül. // Tiltsa le (állítsa 0 -ra) az összes olyan protokollt, amelyre nincs szüksége/szeretne!

Minden le van tiltva, kivéve a NEC és a Samsung protokollt. Ez 10%memóriamegtakarítást eredményez. Jelenleg már nincs probléma a memória mennyiségével, így egyelőre nem szükséges a letiltás.

12. lépés: Egyszerű IR távirányító

Egyszerű IR távirányító
Egyszerű IR távirányító
Egyszerű IR távirányító
Egyszerű IR távirányító
Egyszerű IR távirányító
Egyszerű IR távirányító

Az összeszerelés

Amint az a fényképeken is látható, a LED 132 lyuk kissé túl nagynak bizonyult. Ezt jól kihasználtam, és hozzáadtam az IR -vevőt. Csatlakoztassa a VS1838 infravörös vevő adattűjét az Arduino 7. tűjéhez. Ezenkívül csatlakoztassa a plusz és mínusz tápegységet. Az infravörös vevő 0,21 mA -t használ, és a FET kapcsoló után csatlakoztatható a plusz tápegységhez is. Ennek eredményeképpen 5 volt * 0,21 mA / 1000 * 12 óra * 365 nap * 1 / 0,85 hatékonyságú tápegység = 5,4 watt / év, ha az óra 50% -ában az óra be van kapcsolva. Ez nem tűnik soknak, de minden rész segít.

A működés a következő

Nyomja meg az infravörös távirányító bármelyik gombját, majd az OK gombot. Az első megnyomáskor az infravörös feldolgozásba kerül, a második alkalommal pedig észleli, hogy indokolt kérés volt -e. A második alkalommal az OK -nak gyorsan meg kell nyomnia az első gombnyomást, mert különben ismét visszalép. Ezt a konstrukciót úgy készítettem el, hogy alig kaptam az első kódot helyesen dekódolva, és ezért nem kerültem az infravörös kezelésbe.

Az infravörös kezelést követően számos LED világít információért, a magyarázatért olvasson tovább, és nézze meg az első képet.

A leírás az egyszerű távirányítóra vonatkozik, de bármilyen távirányítót használhat, és saját kulcsokat határozhat meg. Samsung távirányítót is használtam.

Az első négy gomb a LED -ek felső négy sorának felel meg. A beállításoktól függően négy LED balra vagy jobbra fordul. Amikor megnyomja az 1-4 gombokat, az állapot megfordul, és eltárolódik a memóriában.

1 fix színű vagy szivárvány hatás

2 másodperces vaku kikapcsolva vagy második villanáskor

3 smiley off smiley on

4 DCF77 kikapcsolva vagy DCF77 bekapcsolva

A kulcs száma megjelenik a következő gombokon

5 smiley számláló

6 szivárvány spektrum szélesség

7 rögzítse a piros beállítást

8 javítsa a zöld beállítást

9 fix kék beállítás

A LED -ek 6., 7. és 8. sora most a beállított értéknek felel meg, a 6. sor az egységeket, a 7. sor a tízeseket, a 8. sor pedig a százat jelzi. Minden sor nulla értékkel kezdődik. Tehát a sor első ledje 0, a második 1 stb.

0 időbeállítás

/\ fényerő beállítás

A 0 gomb megnyomásakor a "tíz" LED világít, jelezve, hogy be szeretné állítani az időt, és amikor a 0 gombot másodszor megnyomja, a beállított idő jelenik meg a kijelzőn.

Az idő most beállítható, és megjelenik a kijelzőn.

Állítsa be a pontos időt, majd ha a perc egyezik a referenciaórán, nyomja meg az OK gombot.

Az idő beállítva.

Ha nem nyomja meg a perc vagy óra gombot, az idő nem változik. Ha mégis megnyomja őket, azonnal beállítja az időt.

Az 5 - 9 gombok értéke a gombokkal módosítható

jobb plusz 1

balra mínusz 1

előre plusz 10

fordítottja mínusz 10.

és az idő beállításához

jobb plusz 1 perc

balra mínusz 1 perc

az előrehaladás plusz 1 óra

fordítva mínusz 1 óra

Néha előfordul, hogy a gombnyomást nem ismeri fel, vagy kétszer hajtja végre. Tehát figyeljen, ha a beállítás jól megy, különben próbálja meg vagy javítsa újra. Az általam is tesztelt Samsung távirányító sokszor jobban működött, mint a (nagyon olcsó) egyszerű távirányító.

A szín beállításakor a változás közvetlenül a teljes kijelzőn látható. A színek áttekintésével rendelkező webhelyekről lásd: https://www.helderester.nl/kleurentabel.html. Természetesen bármilyen értéket beállíthat.

Ha a szivárvány spektrumának szélessége 0, akkor a spektrum nagyon keskeny, és a kijelző színe állandóan változik.

Az idő ilyen módon történő beállításának hátránya, hogy nem tudja kiszámítani a nyári / téli átmenetet, mert a dátum helytelen. Magának az órának nem számít, mert most nem használjuk.

13. lépés: Milyen Nexts?

Milyen Nexts?
Milyen Nexts?

Ami ezután következik, hang, ha a szabad memória még mindig elegendő.

Már megvannak a hangszóródobozok. Egy régi laptopról származnak.

Ajánlott: