Spisu treści:

LEDura - Analogowy zegar LED: 12 kroków (ze zdjęciami)
LEDura - Analogowy zegar LED: 12 kroków (ze zdjęciami)

Wideo: LEDura - Analogowy zegar LED: 12 kroków (ze zdjęciami)

Wideo: LEDura - Analogowy zegar LED: 12 kroków (ze zdjęciami)
Wideo: round led clock 2024, Lipiec
Anonim
LEDura - Analogowy zegar LED
LEDura - Analogowy zegar LED
LEDura - Analogowy zegar LED
LEDura - Analogowy zegar LED
LEDura - Analogowy zegar LED
LEDura - Analogowy zegar LED

Projekty Tinkercad »

Po długim czasie robienia różnych projektów postanowiłem sam zrobić instruktaż. W przypadku pierwszego przeprowadzę Cię przez proces tworzenia własnego zegara analogowego z niesamowitym adresowalnym pierścieniem LED. Pierścień wewnętrzny pokazuje godziny, pierścień zewnętrzny minuty i sekundy.

Zegar oprócz godziny może również wyświetlać temperaturę w pomieszczeniu i może być bardzo ładną ozdobą pomieszczenia. Co 15 minut zegar wykonuje również efekty specjalne – film pokazuje je wszystkie, koniecznie sprawdź. Za pomocą 2 przycisków i potencjometru użytkownik może wybierać pomiędzy różnymi trybami i modyfikować kolory według własnego uznania. Uaktualniłem go również tak, aby automatycznie przyciemniał diody LED, jeśli w pokoju robi się ciemno, dzięki czemu użytkownik nie będzie przeszkadzał w nocy.

Zegar można postawić na biurku, stoliku przy łóżku lub powiesić na ścianie.

Uwaga: zdjęcia nie są tak dobre jak w rzeczywistości ze względu na wysoką jasność.

Krok 1: Jak to przeczytać?

Jak to przeczytać?
Jak to przeczytać?

Zegar posiada 2 pierścienie - mniejszy do wyświetlania godzin i większy do wyświetlania minut i sekund. Niektóre diody świecą się cały czas - tak zwany kompas, który wskazuje główne pozycje zegara. Na pierścieniu godzinowym oznacza zegar 3, 6, 9 i 12', na pierścieniu minutowym oznacza 15, 30, 45 i 0 minut.

Krok 2: Czego będziesz potrzebować

Czego będziesz potrzebować
Czego będziesz potrzebować

Materiały:

  • 1x Arduino Nano (możesz również użyć dowolnego innego Arduino)
  • 1x moduł zegara czasu rzeczywistego DS3231
  • 1x Adresowalny pierścień led - 60 diod LED
  • 1x Adresowalny pierścień led - 24 diody LED
  • 2x Przyciski (NIE - normalnie otwarte)
  • 1x potencjometr 100 kOhm
  • 1x zasilacz 5 V (zdolny do dostarczania 1 A)
  • 1x złącze zasilania
  • Niektóre przewody
  • 1x rezystor 10kOhm
  • 1x fotorezystor
  • Prefboard (opcjonalnie)
  • Złącza przewodów bloku zacisków (opcjonalnie)
  • Drewno o grubości 25mm, wymiary co najmniej 22cmx22cm
  • 1mm cienkie matowe tworzywo PCV o wymiarach 20cmx20xm

Narzędzia:

  • Podstawowe narzędzia do budowy elektroniki (lutownica, szczypce, śrubokręt, …)
  • Wiertarka
  • Pistolet na gorący klej
  • Papier ścierny i trochę lakieru do drewna
  • Maszyna CNC (może ma ją jakiś znajomy)

Krok 3: Komponenty elektroniczne - tło

Komponenty elektroniczne - tło
Komponenty elektroniczne - tło
Komponenty elektroniczne - tło
Komponenty elektroniczne - tło
Komponenty elektroniczne - tło
Komponenty elektroniczne - tło

DS3231

Mogliśmy określić czas za pomocą wbudowanego w Arduino oscylatora i timera, ale zdecydowałem się użyć dedykowanego modułu zegara czasu rzeczywistego (RTC), który może śledzić czas nawet po odłączeniu zegara od źródła zasilania. Płytka DS3231 posiada baterię, która zapewnia zasilanie, gdy moduł nie jest podłączony do zasilania. Jest również bardziej precyzyjny w dłuższych okresach czasu niż źródło zegara Arduinos.

DS3231 RTC wykorzystuje interfejs I2C do komunikacji z mikrokontrolerem – bardzo prosty w obsłudze i do komunikacji z nim wystarczą tylko 2 przewody. Moduł dostarcza również czujnik temperatury, który zostanie wykorzystany w tym projekcie.

Ważne: Jeśli planujesz używać baterii jednorazowych do modułu RTC, powinieneś odlutować rezystor 200 omów lub diodę 1N4148. W przeciwnym razie bateria może wybuchnąć. Więcej informacji można znaleźć pod tym linkiem.

Pierścień LED WS2812

Zdecydowałem się użyć pierścienia 60 LED do śledzenia minut i pierścienia 24 LED przez wiele godzin. Można je znaleźć na Adafruit (pierścień neoPixel) lub w niektórych tanich wersjach na eBayu, Aliexpressie lub w innych sklepach internetowych. Wśród adresowalnych taśm led jest duża różnorodność i jeśli po raz pierwszy się nimi bawisz, polecam zapoznać się z kilkoma opisami zastosowań – oto kilka przydatnych linków:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Adresowalna taśma LED posiada 3 złącza: 5V, GND oraz DI/DO. Pierwsze dwie służą do zasilania diod LED, a ostatnia do zasilania danych. Zachowaj ostrożność podczas podłączania pierścienia do Arduino – linia danych musi być podłączona do pinu DI (data IN).

Arduino

Używam Arduino Nano, ponieważ jest mały i wystarczający do tego projektu. Możesz użyć prawie każdego innego Arduino, ale wtedy musisz być ostrożny podczas podłączania do niego wszystkiego. Przyciski i pierścienie LED mogą być na tych samych pinach, ale złącza I2C (dla modułu RTC) mogą się różnić w zależności od platformy – sprawdź ich kartę katalogową.

Krok 4: Elektronika - Zasilanie

Elektronika - Zasilanie
Elektronika - Zasilanie

Arduino i taśma LED muszą być zasilane napięciem 5V, więc wiemy, jakie napięcie jest potrzebne. Ponieważ pierścienie LED pobierają dość dużo wzmacniaczy, nie możemy zasilać go bezpośrednio z Arduino, które może wytrzymać maks. 20 mA na swoim cyfrowym wyjściu. Według moich pomiarów pierścienie LED mogą razem pobierać do 500 mA. Dlatego kupiłem adapter, który jest w stanie dostarczyć do 1A.

Tym samym zasilaczem chcemy zasilać Arduino i diody LED - tutaj trzeba uważać.

Ostrzeżenie! Zachowaj szczególną ostrożność podczas testowania taśmy LED – zasilacz NIE może być podłączony do Arduino, gdy Arduino jest również podłączone do komputera za pomocą złącza USB (możesz uszkodzić port USB komputera).

Uwaga: Na poniższych schematach użyłem zwykłego przełącznika, aby wybrać, czy Arduino jest zasilane przez zasilacz, czy przez złącze USB. Ale na perfboard widać, że dodałem listwę pinową, aby wybrać, z którego źródła zasilania Arduino jest zasilane.

Krok 5: Elektronika - lutowanie

Elektronika - Lutowanie
Elektronika - Lutowanie
Elektronika - Lutowanie
Elektronika - Lutowanie
Elektronika - Lutowanie
Elektronika - Lutowanie
Elektronika - Lutowanie
Elektronika - Lutowanie

Kiedy zbierzesz wszystkie części, nadszedł czas, aby je ze sobą zlutować.

Ponieważ chciałem zadbać o okablowanie, użyłem płyty perforowanej i jakiegoś złącza w listwie zaciskowej do przewodów, aby móc je odpiąć w przypadku przeróbek. Jest to opcjonalne - można też przylutować przewody bezpośrednio do Arduino.

Wskazówka: łatwiej jest wydrukować schematy, aby mieć je przed sobą podczas lutowania. I dokładnie sprawdź wszystko przed podłączeniem do zasilania.

Krok 6: Oprogramowanie - tło

IDE Arduino

Zamierzamy zaprogramować Arduino za pomocą dedykowanego oprogramowania: Arduino IDE. Jeśli grasz z Arduino po raz pierwszy, polecam zapoznać się z instrukcjami, jak to zrobić. W sieci jest już mnóstwo samouczków, więc nie będę się wdawał w szczegóły.

Biblioteka

Postanowiłem użyć biblioteki FastLED zamiast popularnego Adafruit. Ma kilka zgrabnych funkcji matematycznych, dzięki którym możesz robić świetne efekty (kciuka w górę dla programistów!). Możesz znaleźć bibliotekę w ich repozytorium GitHub, ale dodałem plik.zip wersji, której używam w moim kodzie.

Jeśli zastanawiasz się, jak dodać zewnętrzną bibliotekę do Arduino IDE, możesz sprawdzić kilka już wykonanych instrukcji

Do modułu zegara wykorzystałem bibliotekę Arduino dla zegara czasu rzeczywistego (RTC) DS3231 (link), którą można łatwo zainstalować w Arduino IDE. Będąc w IDE, kliknij Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami…, a następnie filtruj wyszukiwanie według powyższej nazwy.

Uwaga: z jakiegoś powodu obecnie nie mogę dodawać plików.zip. Bibliotekę znajdziesz w moim repozytorium GitHub.

Krok 7: Oprogramowanie - kod

Oprogramowanie - Kod
Oprogramowanie - Kod
Oprogramowanie - Kod
Oprogramowanie - Kod

Struktura

Aplikacja składa się z 4 plików:

  • LEDclokc.ino Jest to główna aplikacja Arduino, w której znajdują się funkcje do sterowania całym zegarem – zaczynają się od prefiksu CLOCK_.
  • LEDclokc.h tutaj znajdują się definicje połączeń pinów i niektóre konfiguracje zegara.
  • ring.cpp i ring.h oto mój kod do sterowania pierścieniami LED.

LEDzegar.h

Tutaj znajdziesz wszystkie definicje zegara. Na początku są definicje okablowania. Upewnij się, że są takie same jak twoje połączenia. Dalej są konfiguracje zegara – tutaj znajdziesz makro dla ilości trybów jakie posiada zegar.

LEDclock.ino

Na schemacie przedstawiona jest główna pętla. Kod najpierw sprawdza, czy został naciśnięty dowolny przycisk. Ze względu na charakter przełączników musimy użyć metody debugowania do odczytania ich wartości (więcej na ten temat można przeczytać pod linkiem).

Po naciśnięciu przycisku 1 tryb zmiennej jest podnoszony o 1, jeśli naciśnięty jest przycisk 2, typ zmiennej jest podnoszony. Używamy tych zmiennych, aby określić, który tryb zegara chcemy zobaczyć. Jeśli oba przyciski zostaną wciśnięte w tym samym czasie, wywoływana jest funkcja CLOCK_setTime(), dzięki której można zmienić czas zegara.

Późniejszy kod odczytuje wartość potencjometru i zapisuje ją w zmiennej – za pomocą tej zmiennej użytkownik może zmieniać kolory zegara, jasność itp.

Następnie jest instrukcja switch-case. Tutaj określamy, w jakim trybie aktualnie znajduje się zegar i przez ten tryb wywoływana jest odpowiednia funkcja, która ustawia kolory diod. Możesz dodać własne tryby zegara i przepisać lub zmodyfikować funkcje.

Jak opisano w bibliotece FastLED, musisz na końcu wywołać funkcję FastLED.show(), która zmienia kolor diod na kolor, który wcześniej ustawiliśmy.

Pomiędzy wierszami kodu można znaleźć znacznie bardziej szczegółowe opisy

Cały kod w załączeniu poniżej w plikach poniżej.

WSKAZÓWKA: cały projekt możesz znaleźć w moim repozytorium GitHub. Tutaj kod również zostanie zaktualizowany, jeśli dodam do niego jakieś zmiany.

Krok 8: Zrób zegar

Zrób zegar
Zrób zegar
Zrób zegar
Zrób zegar
Zrób zegar
Zrób zegar

Ramka zegara

Ramę zegara zbudowałem na maszynie CNC i drewnie o grubości 25mm. Szkic narysowany w ProgeCAD można znaleźć poniżej. Szczeliny na pierścień LED są nieco większe, bo producenci podają tylko pomiary średnicy zewnętrznej – wewnętrzna może się bardzo różnić… Z tyłu zegara jest sporo miejsca na elektronikę i przewody.

Pierścienie PCV

Ponieważ diody LED są dość jasne, dobrze jest je jakoś rozproszyć. Najpierw spróbowałem z przezroczystym silikonem, który działa rozpraszająco, ale jest dość brudny i trudno go wygładzić na wierzchu. Dlatego zamówiłem kawałek „mlecznego” PCV o wymiarach 20x20 cm i wyciąłem w nim dwa pierścienie maszyną CNC. Możesz użyć papieru ściernego, aby zmiękczyć krawędzie, aby pierścienie wsunęły się w szczeliny.

Otwory boczne

Następnie nadszedł czas na wywiercenie otworów pod przyciski, potencjometr i złącze zasilania. Najpierw narysuj ołówkiem każdą pozycję, a następnie wywierć otwór. Tutaj zależy jakie masz przyciski – ja wybrałem przyciski z lekko zakrzywioną główką. Mają średnicę 16mm, więc użyłem wiertarki do drewna tej wielkości. To samo dotyczy potencjometru i złącza zasilania. Pamiętaj, aby później usunąć wszystkie rysunki ołówkiem.

Krok 9: Rysuj w lesie

Rysuj w lesie
Rysuj w lesie
Rysuj w lesie
Rysuj w lesie
Rysuj w lesie
Rysuj w lesie

Postanowiłem narysować kilka wskaźników zegarowych w drewnie – tutaj możesz użyć swojej wyobraźni i zaprojektować własne. Drewno spaliłem lutownicą rozgrzaną do max temperatury.

Aby koła były ładnie okrągłe, użyłem kawałka aluminium, wywierciłem w nim otwór i śledziłem krawędzie otworu lutownicą (patrz zdjęcie). Upewnij się, że mocno trzymasz aluminium, aby nie ślizgało się podczas rysowania. I zachowaj ostrożność, aby zapobiec urazom.

Jeśli tworzysz rysunki i chcesz, aby były ładnie dopasowane do pikseli zegara, możesz użyć „Trybu konserwacji”, który pokaże ci, gdzie mają się znajdować piksele (przejdź do rozdziału Montaż).

Chroń drewno!

Kiedy jesteś zadowolony z zegara, czas go wyszlifować i zabezpieczyć lakierem do drewna. Do zmiękczenia krawędzi użyłem bardzo miękkiego papieru ściernego (wartość 500). Polecam używać transparentnego lakieru do drewna, aby kolor drewna się nie zmienił. Nałóż niewielką ilość lakieru na pędzel i pociągnij go w kierunku jednorocznych w drewnie. Powtórz to co najmniej 2 razy.

Krok 10: Montaż

Montaż
Montaż
Montaż
Montaż
Montaż
Montaż

Jodły umieszczają przyciski i potencjometr na swoich pozycjach – jeśli twoje otwory są za duże, możesz użyć gorącego kleju, aby je naprawić. Następnie umieść pasek pierścieniowy w jego gniazdach i podłącz jego przewody do Arduino. Przed wklejeniem pierścienia LED na swoje miejsce dobrze jest upewnić się, że piksele LED są we właściwym miejscu – wyśrodkowane i wyrównane z rysunkiem. W tym celu dodałem tzw. tryb konserwacji, który wyświetla wszystkie ważne piksele (0, 5, 10, 15, … na pierścieniu minutowym oraz 3, 6, 9 i 12 na pierścieniu godzinowym). Możesz wejść w ten tryb, naciskając i przytrzymując oba przyciski, przed podłączeniem zasilania do złącza. Możesz wyjść z tego trybu, naciskając dowolny przycisk.

Po wyrównaniu pierścieni LED nałóż trochę gorącego kleju i przytrzymaj je, aż klej stanie się twardy. Następnie weź pierścienie PCV i jeszcze raz: nałóż trochę gorącego kleju na diody LED, szybko je umieść i przytrzymaj przez kilka sekund. Na koniec, gdy masz pewność, że wszystko działa, możesz przykleić na gorąco płytkę (lub Arduino) do drewna. Wskazówka: nie nakładaj na dużo kleju. Tylko niewielka ilość, dzięki czemu trzyma się w jednym miejscu, ale możesz ją łatwo usunąć, jeśli chcesz później coś zmienić.

Na samym końcu włóż baterię pastylkową do uchwytu.

Krok 11: Aktualizacja - fotorezystor

Aktualizacja - fotorezystor
Aktualizacja - fotorezystor
Aktualizacja - fotorezystor
Aktualizacja - fotorezystor
Aktualizacja - fotorezystor
Aktualizacja - fotorezystor

Efekty zegara są szczególnie przyjemne w ciemności. Ale to może przeszkadzać użytkownikowi w nocy, gdy śpi. Dlatego zdecydowałem się na ulepszenie zegara o funkcję automatycznej korekty jasności – gdy w pokoju robi się ciemno; zegar wyłącza swoje diody LED.

Do tego celu wykorzystałem czujnik światła - fotorezystor. Jego opór znacznie wzrośnie; do kilku mega omów, gdy jest ciemno i będzie miał tylko kilkaset omów, gdy świeci na nią światło. Wraz ze zwykłym rezystorem tworzą dzielnik napięcia. Kiedy więc zmienia się rezystancja czujnika światła, zmienia się również napięcie na pinie analogowym Arduino (które możemy zmierzyć).

Przed lutowaniem i montażem jakiegokolwiek obwodu, dobrze jest najpierw go zasymulować, aby zobaczyć zachowanie i wprowadzić poprawki. Z pomocą Autocad Tinkercad możesz to zrobić! Za pomocą kilku kliknięć dodałem komponenty, połączyłem je i napisałem kod. W symulacji widać jak zmienia się jasność diod LED w zależności od wartości fotorezystora. To bardzo proste i nieskomplikowane - zapraszamy do zabawy na torze.

Po symulacji przyszedł czas na dodanie funkcji do zegara. Wywierciłem otwór w środku zegara, wkleiłem fotorezystor, podłączyłem jak widać na obwodzie i dodałem kilka linijek kodu. W pliku LEDclock.h musisz włączyć tę funkcję, deklarując USE_PHOTO_RESISTOR jako 1. Możesz także zmienić przy jakiej jasności w pomieszczeniu zegar będzie ściemniał diody LED, zmieniając wartość CLOCK_PHOTO_TRESHOLD.

Krok 12: Ciesz się

Kiedy włączysz go po raz pierwszy, zegar pokaże losowy czas. Możesz to ustawić, naciskając oba przyciski jednocześnie. Obracaj pokrętłem, aby wybrać właściwy czas i potwierdź go naciśnięciem dowolnego przycisku.

Znalazłem inspirację w jakimś bardzo zgrabnym projekcie w Internecie. Jeśli zdecydujesz się samodzielnie zbudować zegar, sprawdź je również! (NeoClock, Wol Clock, Arduino Colorful Clock) Jeśli kiedykolwiek zdecydujesz się postępować zgodnie z instrukcjami, mam nadzieję, że sprawisz, że będzie to tak przyjemne, jak ja.

Jeśli natkniesz się na jakieś problemy w trakcie jej tworzenia, możesz zadać mi dowolne pytanie w komentarzach – chętnie postaram się na nie odpowiedzieć!

Zalecana: