Spisu treści:
- Krok 1: Sprawa na zegar
- Krok 2: Neopiksele
- Krok 3: Dostosowywanie tekstu przedniego
- Krok 4: Pełny efekt tęczy
- Krok 5: Różne komponenty
- Krok 6: Kod zegara
- Krok 7: Opis sprzętu
- Krok 8: LDR do kontroli jasności neopikseli
- Krok 9: Zmniejszenie zużycia energii WS2812B
- Krok 10: Buźka na Word Clock
- Krok 11: Jakie biblioteki są używane
- Krok 12: Prosty pilot na podczerwień
- Krok 13: Co dalej?
Wideo: Rainbow Word Clock z pełnym efektem tęczy i nie tylko: 13 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Cele
1) Prosty
2) Nie drogie
3) Jak najbardziej energooszczędny
Rainbow Word Clock z pełnym efektem tęczy.
Buźka na Word Clock.
Prosty pilot na podczerwień
Aktualizacja 3 listopada-18 LDR dla kontroli jasności neopikseli
Aktualizacja 01.01.2019 Zmniejszenie zużycia energii WS2812B.
Aktualizacja 15.01.2019 Smiley.
Aktualizacja 23 stycznia-19 Kod 1.6
Zaktualizuj linki do bibliotek 10 marca-19
Aktualizacja 14 kwietnia 19 wersja 1.7 Wybór buźki on/off collor rainbow/fix enz.
Ostatnia aktualizacja 01 czerwca-19 wersja 2.0 Pilot na podczerwień i przeprojektowanie kodu
Krok 1: Sprawa na zegar
Przy kilku prostych narzędziach i odrobinie wprawy nie jest trudno zrobić zegar listowy. Wykorzystałem dostępne mi materiały.
Do sprawy użyłem szorstkiej listwy sosnowej, w której przepiłowałem kilka ramek. Tworzyły one cztery boki obudowy, które zostały sklejone i wzmocnione małym kawałkiem drewna w rogach. Następnie drewno wymaga szlifowania i malowania.
Litery są wycinane z folii przez drukarkę w lustrzanym odbiciu. Folia znajduje się z tyłu szklanej płyty i jest pokryta dwuwarstwowym papierem deseniowym dla lepszego rozsyłu światła. Szkło mocowane jest szczeliwem silikonowym.
Krok 2: Neopiksele
Diody LED Neopixels są umieszczone na drewnianej płytce. W niej najpierw wywierca się 3 mm otwory. Z przodu powiększone do rozmiaru litery do 3/4 głębokości. Następnie 3 mm z tyłu zwiększa się do 10 mm, to jest rozmiar Neopiksela. W przypadku niektórych postaci, m.in. W, otwór należy lekko wyregulować.
Użyłem sklejki, która szybko się kruszyła, może lepiej MDF.
W przypadku pojedynczych diod LED nie jesteś związany stałą odległością, jak ma to miejsce w przypadku taśm LED. Diody LED muszą być ze sobą połączone. Możesz to zrobić ze wszystkimi krótkimi kawałkami drutu. Ale dwa połączenia min (-) są tak samo jak dwa połączenia plus (+) połączone wewnętrznie, a więc to samo połączenie.
Możesz zaoszczędzić sobie wiele pracy lutując kawałek drutu do lewej diody, a następnie do prawej diody. Następnie przylutuj te pośrednie.
Połączenie danych musi oczywiście składać się z krótkich kawałków, ponieważ dane wychodzące trafiają do danych wejściowych.
Krok 3: Dostosowywanie tekstu przedniego
Przednia płyta jest teraz w języku niderlandzkim, ale po prostu do konwersji na dowolny język.
Diody NeoPixels przełączają się tutaj kolejno od 0-167. Numeracja biegnie od pierwszego rzędu od góry po lewej do prawej, a następnie do drugiego rzędu od prawej do lewej itd. Dopasowanie można wykonać według własnych potrzeb. Liczba NeoPixels zależy od liczby znaków. Mniej lub więcej Neopikseli można dostosować w następującym wierszu
#define NUMPIXELS 168 // Ile NeoPixels jest podłączonych do Arduino?
168 to niż inna liczba. Numeracja zaczyna się od 0. Możesz zrobić dowolny tekst. Jeśli zmienisz tekst, będziesz musiał również dostosować odpowiednie słowa. Numeracja pozostaje taka sama.
Na przykład DRIE minut jest określony w kodzie
nieważne zetmDrie () {
Led_Aan[56]=1, Led_Aan[57]=1, Led_Aan[58]=1, Led_Aan[59]=1; // min-suszenie
}
Jeśli chcesz stworzyć słowo Arduino, to wygląda to tak:
nieważne 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; //Słowo-arduino
}
Więc możesz tworzyć słowa pomiędzy.
W przypadku słów zegarowych przydatne jest, jeśli tworzą one ciągłe słowo, ale nie jest to absolutnie konieczne. Niewykorzystane litery nie potrzebują Neonpixels. Mam je wszystkie wypełnione dla wykorzystania przyszłych możliwości innych niż wyświetlanie czasu.
Jeśli zmienisz punkt początkowy lub zmienisz kolejność następstwa, numeracja powinna się odpowiednio zmienić.
Krok 4: Pełny efekt tęczy
Zegar jest teraz tak zaprogramowany, że ile razy na sekundę liczona jest liczba włączonych neopikseli.
Całkowite widmo to liczba podzielonych, a następnie nieco przesuniętych. W rezultacie każdy Neopiksel ma inny kolor, który stale się zmienia. Neopixel nr 1 i nr 167 następują po sobie w pewnym kolorze.
Jeśli wolisz mniej różnych kolorów w tym samym czasie, jest to łatwe do dostosowania. Kolor przesuwa się nadal w całym spektrum, ale w jego mniejszej części. Neopiksele nr 1 i nr 167 nie następują już po sobie, jaki wiąże się z niektórymi kolorami.
Jasność można ustawić w następującej linii, piksele.setJasność(150);
Mniejsza liczba oznacza mniejszą, a większą większą jasność.
Krok 5: Różne komponenty
Następujące komponenty, których użyłem
Arduino Pro Mini ATMEGA328 5V/16MHz
Moduł zegara DS3231
168 sztuk Neopixels led WS2812 LED Chip i radiator 5V 5050 RGB WS2811 IC Wbudowany
Szablon listu foliowego
Odbiornik DCF77
Krok 6: Kod zegara
Oto kod. Dodano kontrolę jasności i wyłączanie, gdy nikogo nie ma i w nocy.
Dodano radarowy czujnik ruchu mikrofalowego RCWL-0516 (wyszukaj RADAR)
Po 10 minutach bezruchu NeoPixels gasną.
O wersji 2.0
Użycie pamięci było zbyt duże, z ostrzeżeniami o braku pamięci w kompilatorze. Dlatego całkowicie zmieniłem kod, ale działanie pozostało bez zmian i dodano odbiornik IR.
Istnieje fragment kodu, który dostarcza dane do pamięci EEPROM. Uruchom to raz, tymczasowo usuwając / * i * /. Wyszukaj => uruchom to raz, aby dostarczyć dane do pamięci EEPROM
Na początku pętli void znajduje się kod do odczytania kodu z własnego pilota. Możesz to uruchomić, tymczasowo usuwając / * i * /, nie zapomnij włożyć ich później. Możesz także zdefiniować własne przyciski. Odczytany kod należy wprowadzić w => Zdefiniuj tutaj własne przyciski
Pilot Samsunga działa lepiej niż (bardzo tani) prosty.
Krok 7: Opis sprzętu
Istnieją różne wersje Arduino Pro Mini. Należy pamiętać, że połączenia mogą się różnić.
Dodano czujnik ruchu mikrofalowego RCWL-0516.
Dopóki w pobliżu zegara występuje ruch, NeoPixel pozostaje włączony
a jak tylko przestanie się poruszać, NeoPixel wyłączy się po kilku minutach.
W wersji 2.0 odbiornik DCF77 jest zasilany przez pin 13. Ten pin jest zdefiniowany jako wyjście i ustawiany w stan wysoki, gdy adresowana jest procedura DCF77. Odbiornik DCF77 pobiera 0,28 mA i jest potrzebny tylko przez kilka minut dziennie.
Wyłączanie zapisów
5 V * 0,28 mA / 1000 * 24 godziny * 365 dni * 1 / 0,85 sprawność zasilacza = 14,4 wata rocznie.
To nie wydaje się dużo, ale wszystko pomaga.
Krok 8: LDR do kontroli jasności neopikseli
Dodano LDR do kontroli jasności neopikseli.
LDR wkleiłem w przestrzeń neopixela 103. Ten nie jest używany w wyświetlaniu czasu i dlatego nie wpływa na regulację. Papier tłumi padające światło, ale to żaden problem.
Dzielnik napięcia LDR i rezystor 20 kΩ trafia do A0 Arduino Pro Mini. Napięcie jest wskaźnikiem natężenia światła, a zatem również wskaźnikiem ilości światła, jaką muszą dawać neopiksele.
Formuła, którą stosuję daje mi dobrą kontrolę światła, można je regulować w zależności od okoliczności. W zależności od ilości światła, napięcie może wahać się od 0 do 5 woltów, które jest konwertowane na 0 do 1024 zliczeń, które są w "LDRValue".
Jeżeli nowa zmierzona wartość jest większa niż ostatnia obliczona wartość, intensywność zwiększa się o 1, jeśli jest mniejsza niż zmniejszona o 1 i jeśli jest równa, nic się nie dzieje. Aby wartość przebiegała powoli, tak aby nie było efektu mrugania, zwiększa się lub zmniejsza tylko 1, a ponieważ obliczenie jest w pętli, jest ponownie obliczane dopiero po przejściu pętli 25 razy.
Intensywność wynosi teoretycznie minimum 20 i maksimum 1024/7 + 45 = 191. Maksymalna wartość, którą zmierzyłem, to 902, co daje intensywność 173. To dobrze pasuje do 150, które ustawiłem jako wartość domyślną. (zobacz piksele.setBrightness(150))
W wersji 2.0 można ustawić sterowanie za pomocą pilota. Dodano następujące parametry: Jasność_min jako minimum i Jasność_maks jako ustawienie maksymalne i Przesunięcie jasności jako parametr ustawienia. Brightness_min i _max to wartości, które mogą zależeć od Twojej sytuacji. Brightness_Offset to wartość, którą można ustawić za pomocą pilota i za pomocą której można ustawić większą lub mniejszą jasność.
Pomiędzy zmierzonymi wartościami LDRValue i obliczonymi wartościami BerLDRValue istnieje również strefa martwa wynosząca 3.
Użyj instrukcji drukowania w void BrightnessControl, aby sprawdzić ustawienie jasności.
Krok 9: Zmniejszenie zużycia energii WS2812B
Sterowniki adresowalnych neopikseli WS2812B pobierają prąd nawet wtedy, gdy neopiksele są wyłączone i ustawione na kolor 0 (brak świecących elementów neopikseli).
Kiedy wszystkie 169 neopikseli są wyłączone, mierzę 69 mA do neopikseli. Zakładając, że zegar jest wyłączony 12 godzin dziennie, całkowite wyłączenie pozwala zaoszczędzić: 5 (zasilanie woltowe) * 69/1000 (miliampery / 1000 = ampery) * 12 (liczba godzin dziennie) * 365 (liczba dni w rok) = 1511 watogodzin. Czyli rocznie 1,5 Kwh. Zgadzam się, to niewiele samo w sobie, ale wiele małych tworzy duże.
Obwód jest prosty. Plus zasilacza jest przełączany przez P-kanałowy MosFet. Czujnik radarowy określa, czy neopiksele są włączone, czy wyłączone. Umieściłem dwa równoległe MosFet, aby utrzymać opór ON na jak najniższym poziomie z powodu utraty MosFetów. W normalnym użytkowaniu mierzę 4, 5 miliwoltów przez MosFety. Bramką steruje wyjście 4 z Arduino za pośrednictwem rezystora 470 Kohm. Jeśli wyjście cyfrowo spadnie do niskiego (0), neopiksele są włączone, a na wysokim (1) są wyłączone.
Krok 10: Buźka na Word Clock
Buźka na Word Clock.
Od czasu do czasu na zegarze pojawia się buźka. To jednak sprawia, że jesteś szczęśliwy.
Buźka jest wyzwalana przez czujnik radarowy. Liczba ruchów (regulowana) jest miarą wyglądu Buźki. Znaki % wskazują, że wykryto ruch. Przy co dziesiątym (regulowanym) ruchu, Smiley pojawia się z Mrugającą Twarzą, a po trzykrotnym pojawieniu się Mrugającej Twarzy, po raz czwartym, gdy Smiley Face wystaje język.
Smiley to mała zmiana w kodzie.
Krok 11: Jakie biblioteki są używane
Jakie biblioteki są używane.
Używam ich w Windows 7 z Arduino IDE 1.6 i zostały przetestowane również w Windows 10 z Adruino IDE 1.8.8
RTClib-master
Arduino-DS3231-master
Adafruit_NeoPixel-master
Arduino-DCF77-master
Biblioteka IRremote Kena Shirriffa
Ponieważ zawsze jest zamieszanie co do używanej biblioteki, dodaję tę, której używam.
Biblioteka IRremote zużywa dużo pamięci. W IRremote.h jest wskazane, że możesz wyłączyć dowolny nieużywany protokół
// Każdy protokół, który zawierasz, kosztuje pamięć, a podczas dekodowania kosztuje czas// Wyłącz (ustaw na 0) wszystkie protokoły, których nie potrzebujesz/nie chcesz!
Mam wyłączone wszystko poza protokołem NEC i Samsung. Daje to oszczędność pamięci o 10%. W tej chwili nie ma już problemu z ilością pamięci, więc na razie wyłączanie nie jest konieczne.
Krok 12: Prosty pilot na podczerwień
Zgromadzenie
Jak widać na zdjęciach otwór na diodę LED 132 okazał się trochę za duży. Dobrze to wykorzystałem i dodałem do niego odbiornik podczerwieni. Podłącz pin danych odbiornika podczerwieni VS1838 do pinu 7 Arduino. Ponadto podłącz zasilanie plus i minus. Odbiornik IR wykorzystuje 0,21 mA i może być również podłączony do zasilania dodatniego za przełącznikiem FET. Daje to oszczędność, jeśli zegar jest na 50% czasu, 5 V * 0,21 mA / 1000 * 12 godzin * 365 dni * 1 / 0,85 sprawność zasilacza = 5,4 wata rocznie. To nie wydaje się dużo, ale wszystko pomaga.
Operacja jest następująca
Naciśnij dowolny klawisz na pilocie na podczerwień, a następnie klawisz OK. Za pierwszym razem, gdy naciśniesz, przejdziesz do przetwarzania IR, a za drugim razem wykryjesz, czy było to uzasadnione żądanie. Za drugim razem OK musi nastąpić szybko po pierwszym naciśnięciu klawisza, ponieważ w przeciwnym razie nastąpi powrót. Zrobiłem tę konstrukcję tak, że prawie nie udało mi się poprawnie zdekodować pierwszego kodu i dlatego nie skończyłem w obsłudze IR.
Po przejściu do obsługi podczerwieni, wiele diod LED zapala się w celu uzyskania informacji, aby uzyskać wyjaśnienie, przeczytaj dalej i obejrzyj pierwszy obraz.
Opis dotyczy prostego pilota, ale możesz użyć dowolnego pilota i zdefiniować własne klawisze. Skorzystałem też z pilota Samsunga.
Pierwsze cztery klawisze odpowiadają czterem górnym rzędom diod LED. Cztery diody LED obracają się w lewo lub w prawo w zależności od ustawienia. Po naciśnięciu klawiszy od 1 do 4 stan jest odwracany i zapisywany w pamięci.
1 stały kolor lub efekt tęczy
2 sekundy wyłączone lub drugie włączone
3 buźka wyłączona buźka włączona
4 DCF77 wyłączony lub DCF77 włączony
Numer klucza jest wyświetlany na następujących klawiszach
5 liczników emotikonów
6 tęczowa szerokość widma
7 napraw czerwone ustawienie;
8 napraw zielone ustawienie
9 napraw niebieskie ustawienie
Wiersz 6, 7 i 8 diod LED odpowiadają teraz ustawionej wartości, wiersz 6 wskazuje jednostki, wiersz 7 dziesiątki, a wiersz 8 setki. Każdy wiersz zaczyna się od wartości zero. Czyli pierwsza dioda w rzędzie to 0, druga to 1 itd.
0 ustawienie czasu
/\ ustawienie jasności
Po naciśnięciu przycisku 0 zapalą się diody „dziesięć” sygnalizujące, że chcesz ustawić czas, a po ponownym naciśnięciu 0 na wyświetlaczu pojawi się ustawiony czas.
Czas można teraz ustawić i jest on pokazywany na wyświetlaczu.
Ustaw prawidłowy czas, a następnie, jeśli minuta jest taka sama na zegarze wzorcowym, naciśnij przycisk OK.
Czas jest dostosowany.
Jeśli nie naciśniesz przycisku minut lub godzin, nie nastąpi zmiana czasu. Jeśli je naciśniesz, czas zostanie ustawiony natychmiast.
Wartość klawiszy od 5 do 9 można zmienić za pomocą klawiszy
racja to plus 1
pozostało minus 1
naprzód to plus 10
rewers to minus 10.
i do ustawienia czasu
dobrze to plus 1 minuta
pozostało minus 1 minuta
do przodu jest plus 1 godzina
rewers to minus 1 godzina
Zdarza się, że naciśnięcie klawisza nie jest rozpoznawane lub jest wykonywane dwukrotnie. Zwróć więc uwagę, czy ustawienie pójdzie dobrze, w przeciwnym razie spróbuj lub popraw ponownie. Pilot Samsung, który również testowałem, działał wielokrotnie lepiej niż (bardzo tani) prosty pilot.
Podczas ustawiania koloru widać zmianę bezpośrednio na całym wyświetlaczu. Strona z przeglądem kolorów znajduje się na stronie https://www.helderester.nl/kleurentabel.html. Możesz oczywiście ustawić dowolną wartość.
Jeśli szerokość widma tęczy ma wartość 0, widmo jest bardzo wąskie, a wyświetlacz ma jeden kolor, który stale się zmienia.
Wadą takiego ustawienia czasu jest to, że nie można obliczyć przejścia lato/zima, ponieważ mamy nieprawidłową datę. Nie ma to znaczenia dla samego zegara, ponieważ nie używamy go teraz.
Krok 13: Co dalej?
Co dalej, dźwięk, jeśli wolna pamięć jest nadal wystarczająca.
Mam już skrzynki głośnikowe. Pochodzą ze starego laptopa.
Zalecana:
Niesamowita szklarnia z automatycznym podlewaniem, połączeniem z Internetem i nie tylko: 7 kroków (ze zdjęciami)
Niesamowita szklarnia z automatycznym podlewaniem, połączeniem z Internetem i nie tylko: Witamy w tej instrukcji. Na początku marca byłam w sklepie ogrodniczym i widziałam kilka szklarni. A ponieważ od dawna chciałem zrobić projekt z roślinami i elektroniką, poszedłem dalej i kupiłem jeden: https://www.instagram.com/p
Zegar słowny z efektem tęczy i podświetleniem tła.: 6 kroków
Zegar słowny z efektem tęczy i podświetleniem tła.: Początek jest tam. Płyta przednia ma wymiary 40 na 40 cm i jest gotowa
Tylko linia, tylko światło! (Typ 1): 19 kroków
Just Line, Just Light!(Type1): Jest to praca polegająca na wyrażaniu światła na akrylowych płytach z wygrawerowanymi wzorami grafiki liniowej. Harmonijnie wyraża kolory i wzory różnych diod LED. dla planet” z
Dwunożny BORIS dla początkujących i nie tylko: 11 kroków (ze zdjęciami)
BORIS the Biped for Beginners and Beyond: Zawsze chciałeś nauczyć się programować Arduino, ale po prostu nie możesz znaleźć projektu, na który warto poświęcić czas lub pieniądze, aby to zrobić. Czy kiedykolwiek chciałeś mieć własnego łatwego do programowania, hakowalnego i konfigurowalnego robota, ale nie możesz znaleźć takiego, który pasuje
Blokada NFC - gdy płytka drukowana jest również przyciskami, anteną i nie tylko: 7 kroków (ze zdjęciami)
Blokada NFC - gdy płytka drukowana jest również przyciskami, anteną i nie tylko …: Możesz wziąć jedną z dwóch rzeczy z tej instrukcji. Możesz śledzić i tworzyć własną kombinację klawiatury numerycznej i czytnika NFC. Schemat jest tutaj. Układ PCB jest tutaj. Znajdziesz zestawienie materiałów, aby zamówić p