Spisu treści:
- Krok 1: Wydrukuj w 3D plastikowe elementy
- Krok 2: Przygotuj swoje tablice kontrolne i okablowanie
- Krok 3: Złóż serwa
- Krok 4: Konfiguracja i testowanie
- Krok 5: Przesyłanie kodu
- Krok 6: Montaż zegara na tylnej płycie
- Krok 7: Końcowa konfiguracja i działanie
Wideo: Mechaniczny zegar z siedmiosegmentowym wyświetlaczem: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Kilka miesięcy temu zbudowałem dwucyfrowy mechaniczny 7-segmentowy wyświetlacz, który zmieniłem w minutnik. Wyszło całkiem nieźle i wiele osób zasugerowało podwojenie wyświetlacza, aby zrobić zegar. Problem polegał na tym, że już kończyło mi się PWM IO na moim Arduino Mega i nie miałem wystarczającej ilości dostępnej dla drugiej lub trzeciej cyfry. Następnie skierowano mnie w stronę tych 16-kanałowych sterowników PWM PCA9685, które działają przez interfejs I2C. Umożliwiły one napędzanie 28 serw, których potrzebowałem, za pomocą dwóch pinów I2C na Arduino. Zabrałem się więc do budowy zegara, który teraz używa modułu zegara czasu rzeczywistego DS1302 do utrzymywania czasu i dwóch 16-kanałowych serwonapędów do sterowania 28 serwami używanymi do tworzenia wyświetlacza, wszystkie zasilane przez Arduino Uno.
Jeśli podoba Ci się ten Instruktaż, rozważ zagłosowanie na niego w Konkursie Zegarów
Kieszonkowe dzieci:
Aby zbudować swój zegar, będziesz potrzebować następujących materiałów eksploatacyjnych oprócz kilku podstawowych narzędzi:
- Arduino Uno - Kup tutaj
- Moduł zegara DS1302 - Kup tutaj
- 2 x PCA9685 16-kanałowe serwosterowniki - Kup tutaj
- 28 x Micro Servos - Kup tutaj
- Kabel taśmowy - kup tutaj
- Męskie paski nagłówka pinów - kup tutaj
- Żeńskie paski nagłówka pinów - kup tutaj
- 3mm MDF - Kup tutaj
- Czarna farba w sprayu - kup tutaj
- Obwód eliminacji akumulatora 5 V 5 A - kup tutaj
- Zasilacz 12V - Kup tutaj
Do tego projektu będziesz potrzebować również części wydrukowanych w 3D. Jeśli nie masz jeszcze drukarki 3D i lubisz robić rzeczy, zdecydowanie powinieneś rozważyć jej zakup. Zastosowany tutaj Creality Ender 3 Pro jest przystępny cenowo i produkuje całkiem dobrej jakości wydruki za swoją cenę.
- Używana drukarka 3D - kup tutaj
- Filament - Kup tutaj
Krok 1: Wydrukuj w 3D plastikowe elementy
Zaprojektowałem wyświetlacze 7-segmentowe tak, aby były jak najprostsze. Serwo jest również wspornikiem podtrzymującym do podtrzymywania segmentu nad nim. Dla każdego segmentu wymagane są dwa elementy drukowane w 3D, blok dystansowy do podtrzymywania dolnej strony serwomechanizmu oraz segment wyświetlacza, który przykleja się bezpośrednio do ramienia serwomechanizmu.
Pobierz pliki do druku 3D - Mechaniczny 7-segmentowy zegar z zegarem Pliki do druku 3D
Wydrukuj segmenty i kropki serwomechanizmu za pomocą jasnego PLA. Użyłem półprzezroczystej zieleni, ale czerwone, pomarańczowe lub żółte też powinny działać. Użyłem czarnego PLA do bloków dystansowych i podpórek punktowych, aby nie były widoczne, gdy segmenty są wyłączone.
Jeśli nie masz dostępu do drukarki 3D, wypróbuj jedną z usług drukowania online. Dostępnych jest wiele niedrogich usług, które wydrukują komponenty i dostarczą je do Twoich drzwi w ciągu kilku dni.
Krok 2: Przygotuj swoje tablice kontrolne i okablowanie
Będziesz potrzebował dwóch 16-kanałowych sterowników PWM PCA9685, aby sterować serwami z 28 zegarami. Rozdzieliłem serwa na cyfry godziny i minuty, przy czym każda para cyfr jest napędzana przez jedną tablicę. Więc mam jedną płytkę kontrolującą serwa dla dwóch cyfr godzinowych, a drugą kontrolującą serwa dla dwóch cyfr minutowych.
Aby połączyć je ze sobą, musisz wykonać 6-żyłowe złącze kabla taśmowego i przylutować drugi pasek nagłówka do drugiego końca pierwszej płyty sterującej serwomechanizmu. Będziesz także musiał zmienić adres I2C na drugiej płycie tak, aby różnił się od pierwszej i był jednoznacznie identyfikowalny.
Będziesz także musiał przygotować wiązkę przewodów, aby podłączyć trzy płytki (dwie płytki serwo i moduł zegara) do Arduino. Będziesz potrzebować 5V i GND do każdej płyty, a także połączeń I2C do pinów Arduino A4 i A5 (I2C na Arduino Uno) oraz pinów modułu zegara CLK, DAT i RST do pinów 6, 7 i 8 na twoim Arduino odpowiednio.
Zasilanie jest dostarczane do Arduino bezpośrednio z zasilacza 12V i do serw za pomocą 5V 5A BEC, który jest następnie podłączony do dwóch zacisków na górze sterownika PWM. Wystarczy podłączyć jeden serwonapęd do zasilania, który będzie zasilał drugi przez 6-żyłowy kabel taśmowy.
Krok 3: Złóż serwa
Po wydrukowaniu segmentów należy spryskać tył i boki na czarno, aby były mniej widoczne, gdy są obrócone o 90 stopni do pozycji wyłączonej.
Następnie należy przykleić segmenty do ramion serwa za pomocą kleju topliwego. Pomaga przykleić je do serwa z ramieniem już na serwo, w ten sposób możesz sprawdzić, czy przyklejasz je prosto i poziomo.
Będziesz także musiał przykleić blok dystansowy na spodzie każdego serwomechanizmu.
Połącz kropki, przyklejając mały kołek lub patyczek do kebaba z tyłu kropek, a następnie do bloków podstawy. Spryskałem te patyki również na czarno, aby były mniej widoczne, gdy patrzy się na nie pod kątem.
Krok 4: Konfiguracja i testowanie
Ponumerowałem wszystkie serwa i zapisałem numer na każdym odprowadzeniu, aby łatwiej było je śledzić. Zacząłem od górnego segmentu cyfry jednostek i pracowałem do środkowego segmentu cyfry dziesiątek. Taka też jest kolejność, w jakiej je wpinałem do płytek serwomechanizmu, pamiętając, że identyfikatory na płytkach liczą się od 0 do 13, a nie od 1 do 14.
Następnie ustawiłem segmenty na stole z wystarczającą ilością miejsca między nimi do testowania, aby nie przesuwały się w jeden i drugi podczas ustawiania limitów ruchu i kierunków. Jeśli spróbujesz ustawić je blisko siebie, prawdopodobnie będziesz mieć jedną lub dwie próby poruszania się w złym kierunku lub na pewnym etapie i uderzenie w inny, co może uszkodzić segment, ramię serwomechanizmu lub zdjąć koła zębate serwomechanizmu.
Krok 5: Przesyłanie kodu
Kod na pierwszy rzut oka wygląda na skomplikowany, ale w rzeczywistości jest stosunkowo prosty dzięki dwóm użytym bibliotekom. Istnieje również wiele powtórzeń, ponieważ istnieją cztery różne wyświetlacze 7-segmentowe, które wymagają aktualizacji.
Oto skrócony opis kodu, spójrz na pełny przewodnik, aby uzyskać bardziej szczegółowe wyjaśnienie i link do pobrania kodu - Mechaniczny 7-segmentowy zegar z wyświetlaczem
Zaczynamy od zaimportowania dwóch bibliotek, virtuabotixRTC.h dla modułu zegara oraz Adafruit_PWMServoDriver.h dla sterowników serwo. Bibliotekę Adafruit można pobrać i zainstalować bezpośrednio przez menedżera bibliotek w IDE.
Następnie tworzymy obiekt dla każdej tablicy sterowniczej z odpowiednim adresem, jeden dla cyfr godziny i jeden dla cyfr minut.
Następnie mamy cztery tablice do przechowywania pozycji włączenia i wyłączenia każdego serwomechanizmu. W kolejnych krokach będziesz musiał wprowadzić poprawki do tych wartości, aby upewnić się, że serwa są ustawione pionowo, gdy są włączone, obrócone o 90 stopni, gdy są wyłączone i nie przesuną się.
Tablica cyfr przechowuje pozycje każdego segmentu dla każdej wyświetlanej cyfry.
Następnie konfigurujemy moduł zegara i tworzymy zmienne do przechowywania bieżących i przeszłych pojedynczych cyfr.
W funkcji konfiguracji uruchamiamy i konfigurujemy płyty sterujące PWM, a także w razie potrzeby aktualizujemy zegar. Następnie wykonujemy pętlę, aby ustawić wyświetlacz na 8 8: 8 8, abyśmy znali pozycję początkową wszystkich serw. Jest to również używane do ustawienia serw, aby wszystkie były poprawnie skierowane do góry.
W głównej pętli otrzymujemy zaktualizowany czas z modułu zegara, rozsypujemy go na cztery cyfry, a następnie sprawdzamy, czy czas zmienił się od ostatniego sprawdzenia. Jeśli czas się zmienił, aktualizujemy wyświetlacz, a następnie aktualizujemy poprzednie cyfry.
W funkcji wyświetlania aktualizacji najpierw przesuwamy środkowe segmenty. Odbywa się to najpierw, ponieważ wymagana jest pewna logika, aby nieco przesunąć dwa górne segmenty sąsiadujące ze środkowym segmentem przed przesunięciem środkowego segmentu, w przeciwnym razie wpadnie na nie. Gdy środkowe segmenty zostaną przesunięte, pozostałe segmenty zostaną przesunięte we właściwe pozycje.
Krok 6: Montaż zegara na tylnej płycie
Po zakończeniu testów zmontowałem serwa na tylnej płycie, używając powyższego układu jako przewodnika.
Biały obszar to całkowity rozmiar płytki, jaśniejszy szary to obszar otaczający każdą cyfrę, w którą wchodzą segmenty serwa, a kontur na ciemnoszarym obszarze jest linią środkową dla 6 zewnętrznych segmentów dla każdej cyfry.
Wyciąłem płytkę, zaznaczyłem układ, a następnie przykleiłem cyfry, aby stworzyć tarczę zegara.
Następnie wywierciłem otwory w pobliżu każdego serwomechanizmu i poprowadziłem przewody z tyłu płyty, aby były mniej widoczne.
Zamontowałem elektronikę z tyłu zegara taśmą dwustronną.
Krok 7: Końcowa konfiguracja i działanie
Gdy wszystkie serwa były gotowe, usunąłem wszystkie ramiona serwa w celu ostatecznej regulacji pozycji segmentów. Powinieneś zasilić Arduino w tym stanie, aby wyświetlało się 8 8: 8 8, a następnie odłączyć zasilanie, co spowoduje ponowne wyśrodkowanie wszystkich serw, dzięki czemu można ponownie założyć ramiona serw z segmentami skierowanymi tak blisko pionu jak to możliwe.
Następnie musisz kolejno włączać Arduino i dostosowywać pozycje włączania i wyłączania segmentu w czterech macierzach, tak aby serwa były idealnie pionowe po włączeniu i obracały się o 90 stopni po wyłączeniu bez nadmiernego przemieszczania się. Ten krok jest dość czasochłonny i wymaga odrobiny cierpliwości, ale efekt końcowy jest tego wart!
Zegar można pozostawić zasilany za pomocą zasilacza 12V i podłączonego do niego 5V BEC. Jeśli zasilanie spadnie, bateria w module RTC będzie podtrzymywała czas, dzięki czemu po przywróceniu zasilania zegar automatycznie zresetuje się do prawidłowego czasu.
Jeśli podobał Ci się ten Instruktaż, zagłosuj na niego w konkursie Zegar i daj mi znać o wszelkich ulepszeniach lub sugestiach, które możesz wymyślić w sekcji komentarzy poniżej.
II Nagroda w Konkursie Zegarów
Zalecana:
Mechaniczny nóż do żywności Arduino: 6 kroków
Arduino Mechaniczny krajalnica do żywności: Ta krajalnica do żywności z napędem Arduino została zaprojektowana, aby pomóc Ci w krojeniu i siekaniu w kuchni. Początkowo wierzyłem, że będzie w stanie przeciąć wszystkie produkty spożywcze, ale dowiedziałem się, że ze względu na mniejszy serwomotor nie był w stanie przeciąć
Sterowanie wyświetlaczem siedmiosegmentowym za pomocą Arduino i rejestru przesuwnego 74HC595: 6 kroków
Sterowanie wyświetlaczem siedmiosegmentowym za pomocą Arduino i rejestru przesuwnego 74HC595: Hej, co słychać, chłopaki! Akarsh tutaj z CETech. Wyświetlacze siedmiosegmentowe są dobre do obejrzenia i są zawsze poręcznym narzędziem do wyświetlania danych w postaci cyfr, ale jest w nich wada polegająca na tym, że gdy sterujemy wyświetlaczem siedmiosegmentowym w reali
ESP8266 Zegar sieciowy bez zegara RTC - Nodemcu NTP Zegar bez RTC - PROJEKT ZEGAR INTERNETOWY: 4 kroki
ESP8266 Zegar sieciowy bez zegara RTC | Nodemcu NTP Zegar bez RTC | PROJEKT ZEGARA INTERNETOWEGO: W projekcie będzie wykonywany projekt zegara bez RTC, będzie pobierał czas z internetu za pomocą wifi i wyświetli go na wyświetlaczu st7735
Homunkulus - Mechaniczny Mistyczny Wróżka Wyroczni: 15 Kroków (ze Zdjęciami)
Homunkulus - Mechaniczna Wyrocznia Wróżki Mechanicznej: Ok - więc co to ma być… opowiadam ludziom, że czaszka pochodzi z XIX-wiecznego mistyka, którego grób został okradziony i że jego czaszka, która znalazła się na jakiejś karnawałowej stronie, jest pokazana na początku XX wieku. ja
Pozycja przekładni motocyklowej z wyświetlaczem siedmiosegmentowym: 4 kroki
Pozycja przekładni motocykla z siedmiosegmentowym wyświetlaczem: Ten projekt obejmuje dekodowanie wielu wejść (w tym przypadku 7) w celu wyświetlenia jako wartości liczbowych na wyświetlaczu siedmiosegmentowym (SSD) przy użyciu czegoś zwanego Binary Coded Decimal (BCD), matryca diodowa i mikrochip o nazwie BCD4511 (lub CD4511). Miałem