Spisu treści:

7-segmentowy zegar: 4 kroki (ze zdjęciami)
7-segmentowy zegar: 4 kroki (ze zdjęciami)

Wideo: 7-segmentowy zegar: 4 kroki (ze zdjęciami)

Wideo: 7-segmentowy zegar: 4 kroki (ze zdjęciami)
Wideo: Kurs STM32 #12 Wyświetlacz 7-segmentowy LED i multipleksowanie 2024, Listopad
Anonim
Image
Image
7-segmentowy zegar
7-segmentowy zegar
7-segmentowy zegar
7-segmentowy zegar

Po kilku latach użytkowania mój zegar analogowy jest definitywnie martwy.

W międzyczasie szukałem projektu zegara 3D do wydrukowania za pomocą mojej Prusy, więc znalazłem 7-segmentowy zegar sterowany diodami ws2812 i Arduino.

Myślałem, że moc tych ledów polega na pokazywaniu dużej gamy kolorów, wtedy pojawiło się pytanie, jak połączyć wiele kolorów na zegarze cyfrowym?

Następnie pomysł na dostosowanie zegara za pomocą następujących funkcji:

- 7 różnych przejść do zmiany minut

- 3 wstępnie ustawione kolory dla przedziałów czasowych

- automatyczne przyciemnianie natężenia światła otoczenia

- automatyczne wyłączanie/uruchamianie, gdy nie ma potrzeby pokazywania czasu

- automatyczna regulacja czasu letniego

Kieszonkowe dzieci

Projekt można wykonać za pomocą drukarki 3D lub googla dla projektów zegarów 7-segmentowych. Ktoś zrobił je też z tektury.

Potrzebne są również:

  • Arduino nano
  • fotochell
  • przycisk chwilowy
  • Przełącznik włącz / wyłącz
  • Wtyczka prądu stałego
  • Transformator 5V
  • 30 diod WS2812 (model 30 diod/metr)
  • PCB
  • Moduł DS3231
  • cienkie kable do połączeń led
  • rezystory 10K, 550
  • lutować
  • klej
  • zworki
  • nagłówki męskie/żeńskie

Krok 1: Drukowanie i okablowanie…

Drukowanie i okablowanie…
Drukowanie i okablowanie…
Drukowanie i okablowanie…
Drukowanie i okablowanie…
Drukowanie i okablowanie…
Drukowanie i okablowanie…

Oryginalny projekt na Thingverse został nieco zmodyfikowany. (Dzięki użytkownikowi random1101)

Dwie kropki zostały powiększone, aby pasowały do wersji ledowej użytej w tym projekcie. Jedna z trzech tylnych okładek została również zmodyfikowana, aby pasowała do płytki drukowanej. Zmieniono także podstawę zegara.

Główna praca polega na przylutowaniu ledów. Najpierw przystąpiłem do lutowania diod LED poza tylną okładką cyfry 3d, a następnie włożyłem do niej.

Siódma dioda pierwszej cyfry zaczynając od lewej będzie połączona z pierwszą diodą następnej cyfry. Na końcu czwartej cyfry połącz dwie diody w postaci kropek, będą one ponumerowane w sekwencji 28 i 29.

Sekwencję led można modyfikować, zmieniając niektóre parametry w bibliotekę Arduino, jak wyjaśniono poniżej.

Po połączeniu większość pracy została wykonana.

Krok 2: Montaż PCB

Montaż PCB
Montaż PCB
Montaż PCB
Montaż PCB
Montaż PCB
Montaż PCB
Montaż PCB
Montaż PCB

Teraz czas na zmontowanie płytki, na której przylutuj rezystory, nagłówki itp. Komponenty do podłączenia Arduino to:

Przycisk podłączany pomiędzy pin 3 Arduino a GND z wewnętrznym rezystorem podciągającym.

Czujnik światła podłączony jako dzielnik napięcia, pomiędzy pin A7 Arduino a GND. Dodaj również rezystor 10K między A7 a +5V ………WIELKI BŁĄD

czujnik światła pomiędzy pinem +5V i A7 oraz rezystor 10K pomiędzy pinem A/ i GND

Moduł DS3231 podłączony przez pin i2c i SQW do pinu przerwania Arduino 2

Diody podłączone do pinu 5 przez rezystor 550Ohm.

Krok 3: Szkic

Wewnątrz szkicu można dokonać wielu dostosowań.

Zapisywanie biblioteki czasu letniego jest obsługiwane przez parametry TimeChangeRule, zobacz bibliotekę JChristensen na Github, aby uzyskać więcej informacji.

Automatyczne wyłączanie wewnątrz pętli jest obsługiwane przez zmienną int gotosleep. W moim przypadku o godzinie 0:00 Arduino przechodzi w tryb uśpienia, po czym zegar się wyłącza.

Ustawienie ALARM na module DS3231 poprzez zmienną int gotosleep, pozwala Arduino wybudzić się z trybu uśpienia. W moim przypadku o 7:00 rano.

Kolejną funkcją jest zmiana koloru zegara w ciągu dnia w funkcji wewnętrznej:

void printDateTime(time_t t, const char *tz)

W moich ustawieniach od godz. 0:00 do 12:00 czas jest wyświetlany na czerwono, od 12:00 do 17:00 na zielono, a od 17:00 do 0:00 głównie na niebiesko. Jest to najlepszy do tej pory balans kolorów, zapewniający dobry kontrast z białą ścianą z tyłu.

Funkcja przejść pozwala na uzyskanie animowanego przejścia kolorów w przypadku zmiany minutowej. Jest 6 różnych, które można wybrać naciskając przycisk chwilowy, siódma opcja jest bez przejść. Ten, który mi się podoba, nazywa się newrandom(), który jest wstępnie ustawiony (tryb int = 1;).

Wprowadziłem kilka zmian w bibliotece dla kompatybilności z sekwencją led. Wewnątrz pliku segment_display.cpp, na końcu przełącznika (i) możesz zmodyfikować sekwencję diod. Po zakończeniu zastąp plik w środku

/Arduino/biblioteki/7segment_NeoPixel-master

Wymagane biblioteki:

  • avr.sleep
  • segment_wyświetlacz
  • DS3231
  • TimeLib
  • Drut
  • Adafruit NeoPixel
  • Strefa czasowa

Krok 4: Czas się pożegnać

Podoba mi się ten zegar, aktualny czas jest dobrze widoczny z daleka i wyłącza się, gdy nie potrzebuję.

Jak można prosić o więcej od zegara?

Zalecana: