Tartalomjegyzék:

Titkos falióra: 27 lépés (képekkel)
Titkos falióra: 27 lépés (képekkel)

Videó: Titkos falióra: 27 lépés (képekkel)

Videó: Titkos falióra: 27 lépés (képekkel)
Videó: ELSZÍVTAM ÉLETEM ELSŐ CIGIJÉT. vagy nyalókáját? #shorts 2024, November
Anonim
Titkos falióra
Titkos falióra

Az idő múlása nem irányítható. Ugyanezzel az ütemben történik, ha alszunk, ébren vagyunk, unatkozunk vagy eljegyzünk. A jelenlegi eseményekkel kapcsolatban fontos megjegyezni, hogy az idő múlni fog. Miközben várjuk az idő múlását, miért ne készítenénk valamit, ami vonzóbbá teszi az idő múlását.

Ezt az órát a Berlinben, Németországban talált Mengenlehreuhr ihlette, és ugyanúgy olvasható. Csakúgy, mint az eredeti, megvilágított, színes mezők segítségével jelzi az időt.

96 LED -et tartalmaz, amelyek 52 „számjegyű” területet világítanak meg. Az eredetivel ellentétben kör alakú, másodperces gyűrűt tartalmaz, vízszintes sáv elrendezés helyett. A külső sáv másodperceket jelez a középső ponttal együtt, a következő két sáv perceket, az utolsó belső sáv pedig órákat jelez.

Ha van egy kis törmelékanyag és több idő a kezedben, miért ne használhatnád ezt az időt valami olyan elkészítésére, ami megmutatja!

Van néhány változtatás ezen a projekten, ha újra megcsinálnám. Először a keretet és a LED táblát fehérre festeném fekete helyett. Ez több fényt tükrözne az elülső nagy lencsén keresztül. Én is várok a végéig, amíg behelyezem a LED -eket. Szükségem volt arra, hogy a táblát korábban befejezzem, hogy segítsen nekem a kód írásában. Ha nem így, először tanuljuk meg, hogyan kell olvasni!

Kép
Kép

1. lépés: Az óra olvasása

Az órát a belső körökről a külsőre olvassák. A négy mező belső gyűrűje egyenként öt teljes órát jelöl, a második gyűrű mellett négy mezőt is, amelyek egyenként egy teljes órát jelölnek, és az óra értékét 24 órás formátumban jelenítik meg. A harmadik gyűrű tizenegy mezőből áll, amelyek mindegyike öt teljes percet jelöl, a következő gyűrű további négy mezőt tartalmaz, amelyek mindegyike egy teljes percet jelöl. Végül a 29 mezőből álló külső gyűrű páros másodperceket jelöl, a közepén lévő fény villog, jelezve a páratlan (ha világít) vagy a páros (ha nem világít) másodperceket.

Kép
Kép

Például a fenti képen az öt órás számjegyből 1, 3 az egy órás számjegyből, 8 az öt perces számjegyből, 4 az egyperces számjegyből és 23 a két másodperces számjegyből és a középső második számjegyből világít.

1x5 + 3x1: 8x5 + 4x1: 23x2 + 1x1 = 8:44:47 = 8:44:47

Kép
Kép

A fent látható idő: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 15:17:11 PM

Kép
Kép

A fent látható idő: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 PM

2. lépés: Eszközök és anyagok

Eszközök és anyagok
Eszközök és anyagok
Eszközök és anyagok
Eszközök és anyagok
Eszközök és anyagok
Eszközök és anyagok

Elektronikai anyagok:

  • Arduino Nano
  • Valós idejű óra
  • Címzett LED -ek
  • Tápcsatlakozó
  • Tápkábel
  • USB tápcsatlakozó
  • Fényfüggő ellenállás és kiegyensúlyozott ellenállás (ha azt szeretné, hogy éjszaka tompuljon)
  • Huzal

Famegmunkáló anyagok:

  • 3/4 hüvelyk rétegelt lemez
  • Vékony rétegelt lemez
  • Fahulladék (2x4 -eseket használtam, de a keményfa is működne)
  • Festék
  • 30 x 36 hüvelykes akril lap (megtalálható a helyi háztartási boltban)
  • Ablakárnyalat (próbáljon meg helyileg forrást találni. Ha egyik sem áll rendelkezésre, itt talál egy elég nagy lapot)
  • Ablakfesték felhordó folyadék (csecsemő samponnal kevert vizet használtam spray -palackban)
  • Windex
  • Mészáros papír
  • Csavarok
  • Spray ragasztó
  • Ragasztó
  • Ragasztó

Eszközök:

  • Vonalzó
  • Xacto kés
  • Szalag
  • Kétoldalú ragasztó
  • Iránytű
  • Körvágó jig
  • Lombfűrész
  • Szalagfűrész
  • Orsócsiszoló
  • Palm Sander
  • Korongcsiszoló
  • Router táblázat
  • Ár
  • Fúró- és fúrófejek/meghajtók
  • Bilincsek
  • Forrasztópáka
  • Forrasztó
  • Huzalcsupaszítók

3. lépés: Gyűjtse össze a sablonokat

Sablonok összeállítása
Sablonok összeállítása
Sablonok összeállítása
Sablonok összeállítása

A nagy sablonhoz nyomtassa ki az Adobe Reader plakátbeállításával. Vágja le a papír margóit és ragasztja össze őket. A függőleges, vízszintes és átlós vonalak segítenek a sablon felsorakoztatásában. Az oldalakon kis számok találhatók, amelyek segítenek rendszerezni őket, ha kiesnek a sorrendből.

Minden szükséges sablon és fájl megtalálható a 26. lépésben.

4. lépés: Durva vágott körök

Durva vágott körök
Durva vágott körök
Durva vágott körök
Durva vágott körök

A két sablont egy 3/4 hüvelykes rétegelt lemezre fektetve rajzoljon iránytűvel a szükségesnél kissé nagyobb köröket. Egy szúrófűrész segítségével vágja ki a durva formát.

Lépés: Vágja méretre

Méretre vágva
Méretre vágva
Méretre vágva
Méretre vágva

A szalagfűrészen lévő körvágó szerszám segítségével vágja le a köröket a végleges méretre.

6. lépés: Sablon alkalmazása

Sablon alkalmazása
Sablon alkalmazása
Sablon alkalmazása
Sablon alkalmazása
Sablon alkalmazása
Sablon alkalmazása

Spray ragasztó segítségével vigyen fel minden sablont egy körre. Helyezzen be egy szöget a sablon közepébe, hogy a kör középpontjába kerüljön.

7. lépés: Vágja ki a sablont

Sablon kivágása
Sablon kivágása
Sablon kivágása
Sablon kivágása
Sablon kivágása
Sablon kivágása

Egy kirakós játék segítségével vágja ki a sablon minden egyes ablakát. Ha van hozzáférése CNC -hez, ez a lépés sokkal könnyebb lenne! Minden ablakban lyukat fúrtam, hogy segítsem ezt a folyamatot. A vágás megkezdésekor a sablon elkezdhet leválni. Ha ez megtörténik, kis szalagdarabokkal rögzítheti a helyén.

8. lépés: Csiszolás

Csiszolás
Csiszolás
Csiszolás
Csiszolás
Csiszolás
Csiszolás

A botra, orsócsiszolóra és tenyércsiszolóra csiszolópapírral csiszolja és simítsa ki a kirakós fűrész által hagyott durva vágást.

9. lépés: Fúrótartók LED -ekhez

Fúrótartó LED -ekhez
Fúrótartó LED -ekhez
Fúrótartó LED -ekhez
Fúrótartó LED -ekhez
Fúrótartó LED -ekhez
Fúrótartó LED -ekhez
Fúrótartó LED -ekhez
Fúrótartó LED -ekhez

Jelölje meg minden furat közepét egy fülekkel, és fúrjon szabad lyukakat a LED -ekhez. Vezető segítségével segítettem a fúrót a munkadarabomra merőlegesen tartani, és hátlapot, hogy ne fújjam ki a fát a hátulján.

10. lépés: Kombinálja a táblákat

Táblák kombinálása
Táblák kombinálása
Táblák kombinálása
Táblák kombinálása
Táblák kombinálása
Táblák kombinálása

Cserélje ki az elülső és a hátsó panelt, valamint a keret nyomait a LED -kártya hátoldalán. Vigye vissza a keretet a LED -kártya elejére, és fúrjon lyukakat, és csavarja össze a darabokat.

További információkért lásd a képi megjegyzéseket.

11. lépés: Helyezze be a LED -eket

Helyezzen be LED -eket
Helyezzen be LED -eket
Helyezzen be LED -eket
Helyezzen be LED -eket

Nyomja át a LED -eket a LED -kártya hátulján. A lyukakat kellő távolságra kell elhelyezni, hogy ne kelljen semmilyen vezetéket elvágni, kivéve, ha egyik körről a másikra mozog.

Hátulról a LED -ek középen kezdődnek, majd az óramutató járásával ellentétesen, majd a következő gyűrűig futnak.

12. lépés: Rögzítse az 1. szegmenst

Szegmens csatolása 1
Szegmens csatolása 1
Szegmens csatolása 1
Szegmens csatolása 1
Szegmens csatolása 1
Szegmens csatolása 1

Vágjon ki 9 szegmenst az "1. szegmens" sablonból, amely 3/4 hüvelykes rétegelt lemezre van rögzítve (megtalálható a 26. lépésben). Rögzítse a LED táblához ragasztóval és bilincsekkel. Ha türelmetlen, akkor szögekkel is rögzítheti a helyére.

Ha megszáradt, csiszolja le a széleit egyenletesen korongcsiszolóval.

13. lépés: Festés

Festék
Festék
Festék
Festék
Festék
Festék
Festék
Festék

Permetezze le a LED táblát és a keretet is. Ha újra elkészíteném, a fekete helyett a fehér festéket választottam volna, mivel jobban tükrözi a lencsét.

14. lépés: 2. szegmens

2. szegmens
2. szegmens
2. szegmens
2. szegmens
2. szegmens
2. szegmens

Vágjon ki 9 szegmenst a "2. szegmens" sablonból, amely 2 3/8 hüvelyk vastag fából van rögzítve (megtalálható a 26. lépésben). Néhány darab törmeléket használtam 2x4 -esekkel a bolt környékéről. Szárazon illessze be a szegmenseket, és győződjön meg róla, hogy jól illeszkedik egy szalagbilincs segítségével. Ha minden kiderül, fedje le a felületet festőszalaggal, hogy a ragasztó ne ragadjon, és hagyja száradni legalább egy órát, mielőtt folytatná a következő lépést.

15. lépés: 3. szegmens

3. szegmens
3. szegmens
3. szegmens
3. szegmens
3. szegmens
3. szegmens

Vágjon ki 9 szegmenst a "3. szegmens" sablonból, amelyet 3/8 hüvelyk vastagságú fémhulladékból (26. lépés) talál. Ragassza fel őket úgy, hogy a 2. szegmens varratai minden 3. szegmens közepén legyenek. Ez megerősíti a gyűrűt.

16. lépés: Sima gyűrű és festék

Sima gyűrű és festék
Sima gyűrű és festék
Sima gyűrű és festék
Sima gyűrű és festék

Egyedi csiszolótömböt készítettem a nagy gyűrű levágott darabjából. Csiszolja le a gyűrűt belülről és kívülről, és töltse fel az esetleges repedéseket, amelyek a ragasztási folyamat során megjelentek.

Miután sima, vigyen fel néhány réteg fekete festéket és tiszta réteget.

17. lépés: Vágja le az akrilt

Vágott akril
Vágott akril
Vágott akril
Vágott akril
Vágott akril
Vágott akril
Vágott akril
Vágott akril

Vágja az akrilt 30 x 30 hüvelyk négyzetre, és jelölje meg a közepét. Rögzítse az akrilt kétoldalas ragasztószalaggal. Egy süllyesztett marómaróval távolítsa el a felesleges akrilt

18. lépés: Alkalmazza az ablakfestéket

Alkalmazza az ablakfestéket
Alkalmazza az ablakfestéket
Alkalmazza az ablakfestéket
Alkalmazza az ablakfestéket
Alkalmazza az ablakfestéket
Alkalmazza az ablakfestéket

Pormentes környezetben távolítsa el a védőfóliát az akrilról. Vigyen fel spray -t, és távolítsa el a hátlapot az ablakfestékről. Vigye fel az ablakfestéket ragadós oldalával lefelé. Egy gumibetét vagy hitelkártya segítségével préselje ki az összes folyadékot az ablakfesték alól. Miután eltávolította az összes buborékot és ráncot, vágja le a felesleges ablakfestéket éles késsel.

19. lépés: Csatlakoztassa a Defusert

Csatlakoztassa a Defusert
Csatlakoztassa a Defusert
Csatlakoztassa a Defusert
Csatlakoztassa a Defusert

Egy nagy darab hentespapírt használtam, hogy hatástalanítsam. Helyezze a papírt egy sima felületre. Fedje le a keret felületét ragasztóval. Mielőtt a ragasztó megszáradna, fektesse az óra elülső oldalát lefelé a papírra, és durván vágja le a felesleget. Miután megszáradt, éles késsel vágja le az öblítést.

20. lépés: A szigetelés alkalmazása

Alkalmazza a szigetelést
Alkalmazza a szigetelést

Elektromos szalagot használtam az áram- és adatvezetékek elkülönítésére.

21. lépés: Összeszerelés

Összeszerelni
Összeszerelni
Összeszerelni
Összeszerelni
Összeszerelni
Összeszerelni

Távolítsa el a másik védőréteget az akrilról. Helyezze az akrilt a gyűrű belsejébe úgy, hogy az ablak színe felfelé nézzen. Csúsztassa az óra fennmaradó részét a gyűrűbe. Egy bilincs segítségével enyhe nyomást gyakoroljon, miközben lyukat fúrnak a gyűrűn keresztül a LED -panelbe. Ennek nagyjából 1 1/8 hüvelyknek kell lennie hátulról. Ügyeljen arra, hogy ne fúrjon bele egy LED -be. Csavarja be a rácsos fejcsavart a lyukba. Ismételje meg összesen nyolc csavart az óra kerülete mentén.

22. lépés: Rögzítési pontok rögzítése

Rögzítési pontok csatolása
Rögzítési pontok csatolása

A ragasztóhorgony az óra hátoldalára mutat, amelyhez a hátlap rögzíthető. Ezek 3/4 hüvelyk vastagok és körülbelül 2 hüvelyk hosszúak.

23. lépés: Fúrási teljesítmény és LDR érzékelőlyukak

Fúróteljesítmény és LDR érzékelőlyukak
Fúróteljesítmény és LDR érzékelőlyukak

Fúrjon egy lyukat az óra alján a hálózati csatlakozóhoz, és egy lyukat a tetején a fényfüggő ellenállás (LDR) érzékelőhöz.

24. lépés: Szerelje be az elektronikai tartót

Szerelje be az elektronikai tartót
Szerelje be az elektronikai tartót
Szerelje be az elektronikai tartót
Szerelje be az elektronikai tartót

Szerelje be a 3D nyomtatott tartót az RTC és az Arduino Nano számára. Csatlakoztassa az összes elektronikát a vázlat szerint.

25. lépés: Hátsó borító

Hátlap
Hátlap
Hátlap
Hátlap
Hátlap
Hátlap
Hátlap
Hátlap

Vágjon hátlapot vékony rétegelt lemezből, amely kisebb, mint az óra külső része. Fúrjon lyukakat a rögzítési pontokba. Keresse meg a hátsó rész közepét, és mérje meg mindkét irányban 8 hüvelyket, hogy kivágja a kulcslyukakat (az USA -ban a szegecsek középpontjában 16 szabványos). A furatokat csak nagyobbat fúrtam, mint a használni kívánt csavarok fejét, és egy irányban nagyobbra reszeltem a lyukat. Fessük feketére és rögzítsük a fedelet.

26. lépés: Kód és fájlok

Ismét meglehetősen új vagyok az itt használt Arduino könyvtárak használatában, így biztos vagyok benne, hogy vannak jobb módszerek ezek használatára.

Azért írtam a kódot, hogy könnyen frissíthető legyen, attól függően, hogy hány LED -et használ, ha a projektet felfelé vagy lefelé méretezi. Mindössze annyit kell tennie, hogy frissíti a LED kezdő és befejező pozícióját, valamint azt, hogy hány LED tartozik az egyes számjegyekhez.

Hozzáadtam néhány animációt, amelyek indításkor és óránként is lejátszódnak. Sudo véletlenszerűek a fedélzetén található véletlenszám -generátor alapján.

Beállíthatja az órát, hogy a színek között váltson, vagy statikus maradjon. A bevezetőben látható módon akár kiemelheti az indikátor számjegyét is, hogy segítse az olvasási időt.

Nyugodtan szerkessze és módosítsa a kódot, ahogy szeretné.

#include "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; logikai időChange = false; logikai printTime = false; // Igaz értékre állítsa be, ha kimenetet szeretne látni a konzolon. Segít a hibakeresésben. boolean redDown = igaz; logikai zöldDown = false; boolean blueDown = hamis; logikai ciklus = hamis; // Állítsa be a true értéket, ha azt szeretné, hogy az óra színei ciklikusan boolean kiemelést = true; // Igaz legyen az 'utolsó számjegy' kiemelésére. // Az időkonfiguráció minden csoportjának kezdetének és végének helyei int SECOND_1_LOCATION = 0; const int HOUR_2_START_LOCATION = 1; const int HOUR_2_END_LOCATION = 8; const int HOUR_1_START_LOCATION = 9; const int HOUR_1_END_LOCATION = 20; const int MINUTE_2_START_LOCATION = 21; const int MINUTE_2_END_LOCATION = 42; const int MINUTE_1_START_LOCATION = 43; const int MINUTE_1_END_LOCATION = 66; const int SECOND_2_START_LOCATION = 67; const int SECOND_2_END_LOCATION = 95; const int LEDS_PER_HOUR_1 = 3; const int LEDS_PER_HOUR_2 = 2; const int LEDS_PER_MINUTE_1 = 6; const int LEDS_PER_MINUTE_2 = 2; // Az időkonstruktúra felosztására használt szorzók int MULTIPLIER_FIVE = 5; const int MULTIPLIER_TWO = 2; const int START_UP_DELAY = 1; // Változtassa meg, hogy felgyorsítsa vagy lelassítsa az indítási animációt const int CYCLE_SPEED = 1; // Itt módosíthatja a színváltozási ciklus sebességét (1 felett kell lennie) // Változók deklarálása int lastSecond = 0; int currentHour = 0; int currentMinute = 0; int currentSecond = 0; int óra1 = 0; int óra2 = 0; int perc1 = 0; int perc2 = 0; int másodperc1 = 0; int második2 = 0; int ciklusszám = 1; float fadeValue = 255; float fadeCheck = 255; uint8_t fényes = 255; int numberOfAnimations = 5; int véletlenszerűség = 0; // Színek beállítása uint8_t red = 0; uint8_t zöld = 0; uint8_t kék = 255; uint8_t kiemelés_vörös = 60; uint8_t kiemelés_zöld = 60; uint8_t kiemelés_kék = 255; // LED -ek tömbjének meghatározása CRGB ledek [NUM_LEDS]; void setup () {Serial.begin (19200); FastLED.addLeds (ledek, NUM_LEDS); LEDS.setBrightness (fényes); FastLED.clear (); rtc.begin (); // Az alábbi sor megjegyzésének megszüntetése az idő beállításához. // rtc.adjust (DateTime (2020, 2, 19, 23, 59, 50)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))); // Indítási animáció animate (véletlenszerűség); } void loop () {// Idő lekérése DateTime now = rtc.now (); currentHour = most.óra (); currentMinute = most.perc (); currentSecond = most.second (); timeChange = hamis; // Ezekkel manuálisan állíthatja be az időt RTC nélkül. Hasznos a hibakereséshez // currentHour = 5; // aktuálisMinute = 30; // currentSecond = 30; // Minden bit visszaállítása nullára itt: (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB:: Black; } // Óra beállítása // Óra beállítása 1 óra1 = (currentHour % MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // Ez számolja az időegység összes LED -jét, amely világít (int i = HOUR_1_START_LOCATION; i 0) // && hour1 <12) {for (int i = (HOUR_1_START_LOCATION + óra1 - 1); i> = (HOUR_1_START_LOCATION + óra1-LEDS_PER_HOUR_1); i--) {leds = CRGB (kiemelés_vörös, kiemelés_zöld, kiemelés_kék); }} // Óra beállítása 2 óra2 = (aktuális óra / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // Ez számolja az időegység összes LED -jét, amely világít (int i = HOUR_2_START_LOCATION; i 0) // && hour2 <8) {for (int i = (HOUR_2_START_LOCATION + óra2 - 1); i> = (HOUR_2_START_LOCATION + óra2-LEDS_PER_HOUR_2); i--) {leds = CRGB (kiemelés_vörös, kiemelés_zöld, kiemelés_kék); }} // perc beállítása // perc beállítása 1 perc1 = (currentMinute % MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // Ez számolja az időegység összes LED -jét, amely világít (int i = MINUTE_1_START_LOCATION; i 0) // && minute1 <24) {for (int i = (MINUTE_1_START_LOCATION + perc1 - 1); i> = (MINUTE_1_START_LOCATION + perc1-LEDS_PER_MINUTE_1); i--) {leds = CRGB (kiemelés_vörös, kiemelés_zöld, kiemelés_kék); }} // perc beállítása 2 perc2 = (currentMinute / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // Ez számolja az időegység összes LED -jét, amely világít (int i = MINUTE_2_START_LOCATION; i 0) // && minute2 <22) {for (int i = (MINUTE_2_START_LOCATION + perc2 - 1); i> = (MINUTE_2_START_LOCATION + perc2-LEDS_PER_MINUTE_2); i--) {leds = CRGB (kiemelés_vörös, kiemelés_zöld, kiemelés_kék); }} // Második beállítás ha (currentSecond! = LastSecond) {timeChange = true; } // Második 1 másodperc beállítása1 = currentSecond % MULTIPLIER_TWO; if (second1 == 1) {leds [SECOND_1_LOCATION] = CRGB (piros, zöld, kék); } // Második 2 másodperc beállítása2 = currentSecond / MULTIPLIER_TWO; for (int i = SECOND_2_START_LOCATION; i 0) // && second2 <29) {for (int i = (SECOND_2_START_LOCATION + second2 - 1); i> = (SECOND_2_START_LOCATION + second2 - 1); i--) {leds = CRGB (kiemelés_vörös, kiemelés_zöld, kiemelés_kék); }} lastSecond = aktuálisSecond; // Számolja meg a program ciklusait, és hívja meg a setColor függvényt, hogy megváltoztassa a LED -ek színét valaha CYCLE_SPEED ciklusban. if (cycleCount világos) // {// fadeValue = világos; //} // else if (fadeValue <150) // {// fadeValue = 150; //} // LEDS.setBrightness (fadeValue); FastLED.show (); // Az aktuális idő nyomtatása a konzolra, ha (timeChange == true && printTime == true) {printToConsole (); }} // Az animációs funkció további animációkat adhat ide, ha szeretné void animate (int select) {if (select == 0) {for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {leds = CRGB (piros, zöld, kék); FastLED.show (); késleltetés (START_UP_DELAY); } for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; FastLED.show (); késleltetés (START_UP_DELAY); }} else if (select == 1) {for (int i = 0; i <250; i ++) {int light = random (95); ledek [fény] = CRGB (piros, zöld, kék); FastLED.show (); }} else if (select == 2) {leds [0] = CRGB (piros, zöld, kék); for (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {leds [SECOND_2_START_LOCATION+i] = CRGB (piros, zöld, kék); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {ledek [MINUTE_1_START_LOCATION + i] = CRGB (piros, zöld, kék); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {ledek [MINUTE_2_START_LOCATION + i] = CRGB (piros, zöld, kék); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {led [HOUR_1_START_LOCATION + i] = CRGB (piros, zöld, kék); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {led [HOUR_2_START_LOCATION + i] = CRGB (piros, zöld, kék); } késleltetés (34); FastLED.show (); }} else if (select == 3) {leds [0] = CRGB (piros, zöld, kék); for (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i ++) {ledek [SECOND_2_END_LOCATION - i] = CRGB (piros, zöld, kék); if (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) {led [MINUTE_1_END_LOCATION - i] = CRGB (piros, zöld, kék); } if (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) {led [MINUTE_2_END_LOCATION - i] = CRGB (piros, zöld, kék); } if (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) {led [HOUR_1_END_LOCATION - i] = CRGB (piros, zöld, kék); } if (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) {led [HOUR_2_END_LOCATION - i] = CRGB (piros, zöld,kék); } késleltetés (34); FastLED.show (); }} else if (select == 4) {for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); késleltetés (200); for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {ledek = CRGB (piros, zöld, kék); } FastLED.show (); késleltetés (200); for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); késleltetés (200); for (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {ledek = CRGB (piros, zöld, kék); } FastLED.show (); késleltetés (200); for (int i = SECOND_2_END_LOCATION; i> = SECOND_1_LOCATION; i--) {leds = CRGB:: Black; } FastLED.show (); késleltetés (200); }} // Színes ciklusfüggvény void setColor (boolean cycleColors) {if (cycleColors == true) {if (redDown == true && greenDown == false) {red ++; zöld--; ha (zöld <= 0) {piros = 255; redDown = hamis; greenDown = igaz; }} else if (greenDown == true && blueDown == false) {green ++; kék--; ha (kék <= 0) {zöld = 255; greenDown = hamis; blueDown = igaz; }} else if (blueDown == true && redDown == false) {blue ++; piros--; ha (piros <= 0) {kék = 255; blueDown = hamis; redDown = igaz; }}} else {red = 0; zöld = 0; kék = 255; }} // Nyomtatás soros monitorra funkció void printToConsole () {Serial.print ("Current Time:"); Serial.print (currentHour); Serial.print (":"); Serial.print (currentMinute); Serial.print (":"); Serial.println (currentSecond); Serial.println (""); for (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i ++) {Serial.print (leds ); if (i % 2 == 0) {Serial.print (""); }} Serial.println (""); for (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i ++) {Serial.print (leds ); if ((((i - HOUR_1_START_LOCATION + 1) % 3) == 0) {Serial.print (""); }} Serial.println (""); for (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i ++) {Serial.print (leds ); if ((((i - MINUTE_2_START_LOCATION) + 1) % 2 == 0) {Serial.print (""); }} Serial.println (""); for (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i ++) {Serial.print (leds ); if ((((i - MINUTE_1_START_LOCATION) + 1) % 6 == 0) {Serial.print (""); }} Serial.println (""); for (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i ++) {Serial.print (ledek ); Serial.print (""); } Soros.println (""); Serial.println (ledek [SECOND_1_LOCATION]); Sorozat.println (); for (int i = 0; i <NUM_LEDS; i ++) {Serial.print (ledek ); } Sorozat.println (); Sorozat.println (); }

27. lépés: Élvezze

Kép
Kép

Összefoglalva, ezt az órát csodálatos nézni, és ha egyszer ráér, viszonylag könnyen olvasható. Ha saját óra projektet készít, tudassa velem!

Ajánlott: