Spisu treści:
- Krok 1: Zbieranie części i obróbka drewna
- Krok 2: Kręgi akrylowe
- Krok 3: Lutowanie
- Krok 4: Kodeks
- Krok 5: Duński Olej
Wideo: Zegar Ish: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Często przyłapuję się na tym, że kupuję rzeczy, z którymi nie mam pojęcia, co zamierzam zrobić. Ten projekt jest wynikiem zakupu pierścienia, który posiada 12x diody WS2812b. Nie miałem żadnych planów, ale wyglądało fajnie w Internecie, więc włożyłem jeden do koszyka, bawiłem się nim przez chwilę, gdy dotarł, a potem zapomniałem o nim.
Chwilę później myślałem o zrobieniu zegara i przypomniałem sobie, że siedział tam i nic nie robił. Myślałem o zakupie drugiego pierścienia z 60 diodami LED, aby nadrobić minuty, ale potem zacząłem myśleć, jak my/ja patrzymy na czas i zaokrąglamy go do najbliższych 5 minut.
Mając to w swoim, postanowiłem z moim 12-diodowym pierścieniem zrobić zegar. Wyświetla 1 diodę na raz przez 1 sekundę, aby wskazać godzinę (niebieska dioda), a następnie minuty (czerwona dioda) zaokrąglone w dół
Krok 1: Zbieranie części i obróbka drewna
Miałem szczęście, że pewnego dnia przyjechałem do pracy i zauważyłem paletę. Ta paleta utkwiła mi w pamięci, ponieważ nie wyglądała jak twój standardowy, bieg z palety młyna. Był to czysty, poddany obróbce cieplnej i niezwykle lity dąb.
Ten projekt jest wykonany z jednego z kawałków tej palety. (Zapytałem szefa, zanim zabrałem go do domu)
Także używany:
- 12-pikselowy pierścień LED ws2812b
- Moduł zegara czasu rzeczywistego (RTC) (używam DS3231 z I2C)
- Kompatybilny z Arduino Nano v3.0
- Arkusz akrylowy (5mm)
- Kolorowy drut
Narzędzia
- Wiertarka elektryczna
- Router
- Regulowany płaski bit do drewna
- Szlifierka elektryczna
- Piła ręczna
- Lutownica
- Pistolet na gorący klej
- Papier ścierny
- Duński olej
Szlifowanie
Zacząłem od użycia szlifierki mechanicznej do wyprostowania i oczyszczenia bloku drewna, aż wszystkie boki będą czyste i gładkie. Zostawiłem niektóre niedoskonałości widoczne i nie jest idealnie proste ani kwadratowe, ponieważ lubię móc zobaczyć trochę historii w drewnie.
Znakowanie i wycinanie otworów
Po szlifowaniu wybrałem stronę, na której chciałem tarczę zegara i zaznaczyłem środek, rysując linie z każdego rogu. Ustawiłem regulowany kawałek drewna nieco większy niż pierścień LED, aby była półka na akryl, na której można by usiąść i wyciąć około 5 mm, a następnie ustawić nóż nieco ponad rozmiar pierścienia LED i przyciąć kolejne 5 mm.
Otwory trasowania i kabli
Używając mojego routera z bitem 12 mm, wyprowadziłem wgłębienie w dolnej części bloku, aby ukryć RTC i Arduino. Ma około 15 mm głębokości i nie mniej niż 5 mm od każdej krawędzi. Zaznaczyłem środek (ish) od dołu i wywierciłem wiertłem 10 mm tuż za pół drogi, aby umożliwić przewody LED. Następnie za pomocą wiertła 5 mm wywierciłem od środka wnęki LED, aby zrównać się z otworem 10 mm od dołu.
Jeszcze jeden otwór o średnicy 4 mm z tyłu, aby włączyć zasilanie, i za pomocą mniejszego frezu do wykonania kanału na przewody z tyłu pierścienia LED i praca z drewnem jest zakończona.
Krok 2: Kręgi akrylowe
Aby zrobić akryl na front zegara, stwierdziłem, że wycinam kwadratowy kawałek, który był tylko większy niż otwór, który musiał wypełnić. Następnie za pomocą szlifierki mechanicznej zacząłem usuwać rogi, aż uzyskałem odpowiedni kształt i rozmiar. Następnie przeszedłem do ręcznego szlifowania, więc nie przesadzałem i musiałem zaczynać od nowa.
To był powolny i żmudny proces prób i błędów, dopóki nie pasował idealnie, ale myślę, że efekt końcowy był tego wart. Skończyłem używając bardzo drobnego papieru ściernego, aby nadać frontowi akrylu matowy wygląd.
Krok 3: Lutowanie
Przy tej okazji lubię stosować system kolorów dla moich przewodów wybieram:
- Czerwony dla zasilania (5v)
- Biały na ziemię
- Żółty dla danych
- Zielony dla zegara
Zacząłem od przylutowania 3 niezbędnych przewodów do pierścienia LED za pomocą powyższego systemu i wepchnięcia przewodów w otwór. Ponieważ nie powinien być narażony na żadne przemoc, użyłem odrobiny gorącego kleju, aby utrzymać pierścionek na miejscu. (Być może będę musiał to kiedyś zmienić) i przymocuj akryl tylko odrobiną gorącego kleju wokół krawędzi.
Następnie przylutowałem 4 przewody do RTC za pomocą powyższego systemu. Aby wszystko było trochę ładniejsze, postanowiłem pobierać energię do RTC z Arduino. Następnie podłączyłem wszystko do Arduino i przylutowałem 1 przewód do zasilania i drugi do masy do Arduino.
RTC
- SCL (zegar) do styku analogowego 5
- SDA (dane) do styku analogowego 4
- VCC do 5V
- GND do dowolnego GND na Arduino
Pierścień LED
Din na cyfrowy pin 6
Miałem stary kabel USB, więc postanowiłem użyć go do zasilania zegara. Odciąłem koniec, który normalnie by się z czymś łączył i wsunąłem przez otwór z tyłu. Następnie zdejmij i pokryj końce przed przylutowaniem VCC do Arduino i pierścienia LED po stronie dodatniej oraz uziemienia z Arduino i diody LED do uziemienia. Trochę się termokurczyłem później i wyglądało dobrze, Pistolet do gorącego kleju wrócił, aby utrzymać wszystko w dół. Postanowiłem zostawić Arduino z na tyle luzem, że będę mógł w przyszłości uzyskać dostęp do portu USB, aby go zaprogramować, ale nie na tyle, żebym mógł wypaść.
Krok 4: Kodeks
Teraz powinieneś być w stanie przesłać ten kod do Arduino.
Jeśli RTC nie działa, ten kod ustawi czas na podstawie tego, kiedy kod został skompilowany, więc pamiętaj, aby po prostu nacisnąć przycisk przesyłania i nie weryfikować.
na przemian działa to również bardzo dobrze przy ustawianiu czasu.
www.instructables.com/id/Setting-the-DS130…
Wiele z tego kodu pożyczyłem z biblioteki Adafruit NeoPixel, część z biblioteki RTC, którą znalazłem, a część sam wymyśliłem.
// dołącz kod biblioteki: #include
#włączać
#włączać
// zdefiniuj szpilki
#zdefiniuj PIN 6
#define BRIGHTNESS 20 // ustaw maksymalną jasność
#zdefiniuj r 5
#zdefiniuj g 5
#definiuj b 5
RTC_DS3231 RTC; // Ustaw obiekt zegara
Pasek Adafruit_NeoPixel = Adafruit_NeoPixel(12, PIN, NEO_GRB + NEO_KHZ800); // usuń obiekt
pusta konfiguracja () {
Wire.początek(); // Rozpocznij I2C
rtc.początek(); // rozpocznij zegar
Serial.początek(9600);
// ustaw tryby pinów
pinMode(PIN, WYJŚCIE);
if (rtc.lostPower()) {
Serial.println("RTC stracił zasilanie, ustawmy czas!");
// kolejna linia ustawia RTC na datę i godzinę skompilowania tego szkicu
rtc.adjust(DataCzas(F(_DATA_), F(_CZAS_)));
// Ta linia ustawia RTC z wyraźną datą i godziną, na przykład, aby ustawić
// 21 stycznia 2014 o 3 nad ranem zadzwoniłbyś:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
strip.początek();
strip.pokaż(); // Zainicjuj wszystkie piksele na „wyłączone”
DateTime theTime = rtc.now(); // uwzględnia czas letni
bajt sekundwartość = czas.sekunda(); // zdobądź sekundy
bajt minuta = czas.minuta(); // zdobądź minuty
int hourval = godzina.godzina();
kropka(pasek. Kolor(0, g, 0), 50);
}
pusta pętla () {
// uzyskać czas
DateTime theTime = rtc.now(); // uwzględnia czas letni
int minuteval = czas.minuta(); // zdobądź minuty
int hourval = godzina.godzina(); // zdobądź godziny
int sekunda = czas.sekunda();
jeśli (minuta 0) {
strip.setPixelColor(0, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 9) {
strip.setPixelColor(1, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 14) {
strip.setPixelColor(2, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 19) {
strip.setPixelColor(3, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 24) {
strip.setPixelColor(4, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 29) {
strip.setPixelColor(5, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 34) {
strip.setPixelColor(6, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 39) {
strip.setPixelColor(7, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 44) {
strip.setPixelColor(8, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 49) {
strip.setPixelColor(9, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <= 54) {
strip.setPixelColor(10, r, 0, 0);
strip.show();}
inaczej, jeśli (minuta <=59) {
strip.setPixelColor(11, r, 0, 0);
strip.show();}
opóźnienie (1000);
dla (int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.pokaż();
}
jeśli (godzina == 0) {
strip.setPixelColor(0, 0, 0, b);
strip.show();}
inaczej if (godzina == 1) {
strip.setPixelColor(1, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 2) {
strip.setPixelColor(2, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 3) {
strip.setPixelColor(3, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 4) {
strip.setPixelColor(4, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 5) {
strip.setPixelColor(5, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 6) {
strip.setPixelColor(6, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 7) {
strip.setPixelColor(7, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 8) {
strip.setPixelColor(8, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 9) {
strip.setPixelColor(9, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 10) {
strip.setPixelColor(10, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 11) {
strip.setPixelColor(11, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 12) {
strip.setPixelColor(0, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 13) {
strip.setPixelColor(1, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 14) {
strip.setPixelColor(2, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 15) {
strip.setPixelColor(3, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 16) {
strip.setPixelColor(4, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 17) {
strip.setPixelColor(5, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 18) {
strip.setPixelColor(6, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 19) {
strip.setPixelColor(7, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 20) {
strip.setPixelColor(8, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 21) {
strip.setPixelColor(9, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 22) {
strip.setPixelColor(10, 0, 0, b);
strip.show();}
inaczej, jeśli (godzina == 23) {
strip.setPixelColor(11, 0, 0, b);
strip.show();}
opóźnienie (1000);
dla (int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.pokaż();
}
// do debugowania szeregowego
Serial.print(godzina, DEC);
Serial.print(':');
Serial.print(minuta, DEC);
Serial.print(':');
Serial.println(sekunda, grudzień);
}
nieważna kropka (uint32_t c, uint8_t czekaj) {
for (int j=0; j<3; j++) {
for(int i=0; i<12; i++){
strip.setPixelColor(i, c);
strip.pokaż();
opóźnienie (czekaj);
for(int i=0; i<12; i++){
strip.setPixelColor(i, 0, 0, 0);
strip.show();}
}
}
}
Krok 5: Duński Olej
Ostatnim i opcjonalnym krokiem jest nałożenie na drewno odrobiny duńskiego oleju. Bardzo podoba mi się to, jak wydobywa słoje i zapewnia pewną ochronę przed plamami i wilgocią. Więc bardzo go polecam.
Możesz go wyczesać lub po prostu wytrzeć starą szmatką.
Teraz pozostaje tylko podłączyć i cieszyć się.
Zalecana:
Zegar WiFi, zegar i stacja pogodowa, sterowanie Blynk: 5 kroków (ze zdjęciami)
Zegar WiFi, timer i stacja pogodowa, sterowanie Blynk: jest to zegar cyfrowy Morphing (dzięki Hari Wiguna za koncepcję i kod morfingu), jest to również zegar analogowy, stacja raportowania pogody i minutnik kuchenny. Jest kontrolowany w całości przez Aplikacja Blynk na smartfonie przez Wi-Fi.Aplikacja umożliwia
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
Zegar elektroniczny C51 4 bity - Drewniany zegar: 15 kroków (ze zdjęciami)
C51 4-bitowy zegar elektroniczny - drewniany zegar: W ten weekend miałem trochę wolnego czasu, więc poszedłem dalej i zmontowałem ten 4-bitowy elektroniczny zegar cyfrowy DIY o wartości 2,40 USD, który kupiłem jakiś czas temu od AliExpress
Konwertuj zwykły zegar domowy na samoświecący zegar: 8 kroków (ze zdjęciami)
Konwertuj zwykły zegar domowy na świecący zegar: NAJPIERW SERDECZNIE DZIĘKUJĘ ZESPÓŁ INSTRUKCJI, ABY MOJE DNI ODZYSKANIA ZDROWIA BARDZIEJ ODPOWIEDZIALNE ….. W tej instrukcji chcę podzielić się z wami, jak przekonwertować zwykły zegar w domu w samoświecący się zegar.>> Za to
Zbuduj prawdziwy zegar uderzający w dzwon dla swojego komputera i zegar uderzający w gaśnicę.: 3 kroki (ze zdjęciami)
Zbuduj prawdziwy zegar uderzający w dzwon dla swojego komputera i zegar uderzający w gaśnicę.: mosiężny dzwonek, mały przekaźnik kilku innych rzeczy i prawdziwy dzwonek może wybijać godziny na twoim pulpicie. Chociaż ten projekt działa na Windows i Mac OS X też, postanowiłem zainstalować Ubuntu Linux na komputerze, który znalazłem w koszu i nad tym pracować: nigdy