Spisu treści:
- Krok 1: Zestawienie materiałów
- Krok 2: Grawerowanie i rzeźbienie
- Krok 3: Szlifowanie i nakładanie lakieru
- Krok 4: Tworzenie obwodu
- Krok 5: Wgranie programu
- Krok 6: Umieszczenie diod LED
- Krok 7: Podłączanie diod LED
- Krok 8: Podłączanie płytki drukowanej za pomocą diod LED
- Krok 9: Umieszczanie kulek
Wideo: Binarny zegar na biurko: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Zegary binarne są niesamowite i przeznaczone wyłącznie dla osób znających binarny (język urządzeń cyfrowych). Jeśli jesteś technikiem, ten dziwny zegar jest dla Ciebie. Więc zrób to sam i zachowaj swój czas w tajemnicy!
W Internecie znajdziesz wiele zegarów binarnych różnych typów. Nawet możesz kupić zegar binarny w sklepie internetowym, takim jak amazon.com. Ale ten zegar jest inny niż wszystkie i tutaj użyłem marmuru, aby nadać mu elegancki wygląd.
Przed zejściem na dół obejrzyj film demonstracyjny.
Krok 1: Zestawienie materiałów
Komponenty sprzętowe
1. Arduino Pro Micro (kup na aliexpress.com): Jest to główne serce zegara i odczytuje czas z RTC i wydaje instrukcje, aby odpowiednio sterować diodami LED. Możesz użyć Arduino Nano, a nawet Arduino Uno zamiast Pro Micro, jeśli rozmiar nie ma dla Ciebie znaczenia.
2. Moduł DS3231 RTC (kup na aliexpress.com): DS3231 RTC śledzi czas nawet po wyłączeniu zasilania. Chociaż można użyć innych RTC, takich jak DS1307, DS3231 jest dokładniejszy.
3. MAX7219CNG LED Driver IC (kup na aliexpress.com): Arduino ma ograniczoną liczbę pinów. Tak więc, jeśli chcesz napędzać mnóstwo diod LED bez marnowania pinów Arduino, MAX7219 jest ratunkiem. Pobiera dane szeregowe i może niezależnie sterować 64 diodami LED.
4. 20 SZTUK Niebieska dioda LED, 5mm (kup z aliexpress.com): Niebieski dał mi najlepszy wynik. Możesz spróbować z innymi kolorami.
5. 20 szt. marmuru do gry (kup na aliexpress.com): Użyto marmuru do gry o standardowym rozmiarze. Marmur musi być przezroczysty, aby przepuszczał światło.
6. Rezystor 10K: Służy do sterowania prądem segmentu układu scalonego MAX7219. Zobacz arkusz danych, aby poznać dokładną wartość dla różnych prądów segmentu.
7. Przewody
8. Prototypowa płytka PCB (kup na aliexpress.com): Użyłem prototypowej płytki PCB do układu MAX7219 IC z podstawą IC. Możesz także zaprojektować niestandardową płytkę PCB.
Narzędzia sprzętowe
1. CNC 3018 PRO Laser Engraver Wood CNC Router Machine (kup od aliexpress.com): Maszyna DIY CNG została użyta do rzeźbienia w drewnie na marmur i diody LED. To doskonała maszyna w niskiej cenie dla każdego producenta i hobbysty.
2. Stacja lutownicza (kup na aliexpress.com): Niektóre lutowanie jest wymagane do projektu, a dobra lutownica jest niezbędnym narzędziem dla producenta. 60W to dobry wybór do lutowania DIY.
3. Przecinak do drutu (kup od aliexpress.com)
4. Frez z węglików spiekanych z powłoką tytanową do CNC (kup na aliexpress.com): Możesz również spróbować z bitem dostarczonym z maszyną. W takim przypadku powinieneś wprowadzić pewne zmiany w projekcie.
Krok 2: Grawerowanie i rzeźbienie
Wziąłem kawałek miękkiego drewna klonowego 165X145X18,8 mm do umieszczenia diod LED zegara. Na górze każdej diody umieszczę kulkę, a rozmiar standardowej kulki do gry ma średnicę 15,5 mm. Wykonałem więc otwory 15,7 mm o głębokości 7 mm. Na środku otworu wykonałem wiertło 5mm do umieszczenia diody LED. Cały tekst został wykonany z głębokością 2mm. Możesz zwiększyć lub zmniejszyć wybraną głębokość. Możesz również spróbować grawerowania laserowego tekstu.
Całość projektu wykonała firma Easel z firmy Inventables. Easel to internetowa platforma oprogramowania, która pozwala projektować i rzeźbić za pomocą jednego, prostego programu, a większość funkcji jest bezpłatna. Wystarczyło zalogować się do systemu, zakładając konto lub korzystając z Gmaila.
Easel Pro to oprogramowanie chmurowe oparte na członkostwie, które opiera się na bezpłatnym oprogramowaniu Easel firmy Inventables. Easel i Easel Pro minimalizują bariery związane ze skomplikowanym oprogramowaniem CAD i CAM do wytwarzania produktów, ułatwiając użytkownikom wytwarzanie fizycznych produktów.
Za pomocą sztalugi możesz wyeksportować plik projektu w formacie kodu G lub bezpośrednio skonfigurować CNC ze środowiska sztalugi i wysłać polecenie do CNC. W takim przypadku należy zainstalować sterownik sztalugi. Możesz także zaimportować wcześniej utworzony kod G do Easel IDE i zmodyfikować. Dołączyłem plik projektu do niniejszego dokumentu. Możesz łatwo modyfikować projekt według własnego wyboru za pomocą sztalugi.
Krok 3: Szlifowanie i nakładanie lakieru
Lakier może zapewnić piękne wykończenie projektów drewnianych i obrazów. Przed nałożeniem lakieru na drewno oszlifuj swój kawałek i wyczyść miejsce pracy. Szlifowanie nadaje gładki wygląd i przygotowuje drewno do lakierowania. Nałóż lakier kilkoma cienkimi warstwami, pozwalając każdej dokładnie wyschnąć przed przejściem do następnej. Aby werniksować obraz, należy go całkowicie wyschnąć, a następnie delikatnie nałożyć werniks. Jedna warstwa wystarcza na wiele obrazów, ale możesz dodać kolejną warstwę, o ile poprzednia dobrze wyschnie.
Przed nałożeniem lakieru należy usunąć wszelkie niedoskonałości i przebarwienia przed nałożeniem lakieru. Aby to zrobić Użyj papieru ściernego o ziarnistości 100 do niedokończonych kawałków i pracuj z słojami drewna. Delikatnie szlifuj, aż kawałek będzie gładki. Po oczyszczeniu kawałka drewna nałożyć lakier w przewiewnym miejscu.
Lakier chroni drewno przed kurzem i wilgocią z otoczenia, ale może wpływać na kolor drewna.
Krok 4: Tworzenie obwodu
Głównym elementem zegara jest płytka mikrokontrolera Arduino Pro Mini oraz moduł DS3231 RTC. Połączenie Arduino Pro Mini z modułem RTC jest bardzo proste. Należy podłączyć pin SDA modułu RTC do pinu SDA Arduino i pin SCL modułu RTC do pinu SCL Arduino. Piny SDA i SCL to w rzeczywistości odpowiednio pin A4 i A5 Arduino. Konieczne jest również wykonanie wspólnego połączenia masowego między modułami Arduino i RTC. Do wykonania połączeń użyłem przewodów połączeniowych.
Połączenie Arduino z DS3231 RTC:
Arduino | DS3231 |
---|---|
SCL (A5) | SCL |
SDA (A4) | SDA |
5V | VCC |
GND | GND |
Do pokazywania godziny, minuty i sekundy zegar binarny wymagał 20 diod LED. Jeśli chcesz pokazać datę, wymaga to więcej. Płytka Arduino posiada ograniczenie pinów GPIO. Tak więc użyłem układu scalonego sterownika LED MAX7219CNG do napędzania ton diod LED za pomocą tylko trzech pinów płyty Arduino.
Układ scalony sterownika MAX7219 jest w stanie sterować 64 pojedynczymi diodami LED, używając tylko 3 przewodów do komunikacji z Arduino, a co więcej, możemy połączyć szeregowo wiele sterowników i matryc i nadal używać tych samych 3 przewodów.
64 diody LED są sterowane przez 16 pinów wyjściowych układu scalonego. Teraz pytanie brzmi, jak to możliwe. Cóż, maksymalna liczba diod LED zapalających się w tym samym czasie to tak naprawdę osiem. Diody LED są ułożone jako zestaw rzędów i kolumn 8×8. Tak więc MAX7219 aktywuje każdą kolumnę na bardzo krótki czas i jednocześnie steruje każdym rzędem. Tak więc przez szybkie przełączanie się między kolumnami i rzędami ludzkie oko zauważy tylko ciągłe światło.
VCC i GND MAX7219 idą do pinów 5V i GND Arduino, a trzy inne piny, DIN, CLK i CS, idą do dowolnego pinu cyfrowego na płycie Arduino. Jeśli chcemy podłączyć więcej niż jeden moduł, po prostu podłączamy piny wyjściowe poprzedniej płytki zaciskowej do pinów wejściowych nowego modułu. Właściwie te piny są takie same, z wyjątkiem tego, że pin DOUT poprzedniej płyty łączy się z pinem DIN nowej płyty.
Połączenie Arduino z MAX7219CNG:
Arduino | MAX7219 |
---|---|
D12 | HAŁAS |
D11 | CLK |
D10 | ZAŁADUJ |
GND | GND |
Krok 5: Wgranie programu
Cały program napisany jest w środowisku Arduino. Do szkicu użyto dwóch zewnętrznych bibliotek. Jeden jest dla modułu RTC, a drugi dla układu scalonego MAX7219. Pobierz biblioteki z linku i dodaj do Arduino IED przed kompilacją programu.
Wgrywanie programu w Arduino Pro Mini jest nieco skomplikowane. Zajrzyj do samouczka, jeśli nigdy wcześniej nie korzystałeś z Arduino Pro Mini:
/*
GIT: https://github.com/jarzebski/Arduino-DS3231 > GIT: https://github.com/jarzebski/Arduino-DS3231 > */ #include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Teraz potrzebujemy LedControl do pracy. ***** Te numery pinów prawdopodobnie nie będą działać z twoim sprzętem ***** pin 12 jest podłączony do DataIn pin 11 jest podłączony do CLK pin 10 jest podłączony do LOAD Mamy tylko jeden MAX72XX. */ zegar DS3231; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekundy, minuty, godziny; numer bajtu[10]={B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup() { //Serial.begin(9600); /* MAX72XX jest w trybie oszczędzania energii podczas uruchamiania, musimy wykonać budzenie */ lc.shutdown(0, false); /* Ustaw jasność na średnie wartości */ lc.setIntensity(0, 15); /* i wyczyść wyświetlacz */ lc.clearDisplay(0); //lc.setLed(0, wiersz, kolumna, prawda); // lc.setRow(0, 0, B11111111); // lc.setRow(0, 1, B11111111); // lc.setRow(0, 2, B11111111); // lc.setRow(0, 3, B11111111); // lc.setRow(0, 4, B11111111); // lc.setRow(0, 5, B11111111); // lc.setColumn(0, 2, B11111111); // lc.setColumn(0, 3, B11111111); // lc.setColumn(0, 4, B11111111); // lc.setColumn(0, 5, B11111111); // Zainicjuj zegar DS3231.begin(); // Ustaw czas kompilacji szkicu //clock.setDateTime(_DATE_, _TIME_); pinMode(5, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(7, INPUT_PULLUP); } int menu = 0, góra, dół; int hours_one; int godzin_dziesięć; int minutes_one; int minut_dziesięć; int sekund_jeden; int sekund_dziesięć; void loop() { if(digitalRead(5)==0){opóźnienie(300); menu++; jeśli(menu>3) menu = 0; } if(menu==0){ dt = clock.getDateTime(); godziny = dt.godzina; minuty = dt.minuta; sekundy = dt.sekunda; if(godziny>12) godziny = godziny - 12; if(godziny==0) godziny = 1; hours_one = godziny%10; godziny_dziesięć = godziny/10; minuty_jeden = minuty%10; minuty_dziesięć = minuty/10; sekund_jeden = sekundy%10; sekundy_dziesięć = sekundy/10; lc.setRow(0, 0, liczba[sekundy_jeden]); lc.setRow(0, 1, liczba[sekundy_dziesięć]); lc.setRow(0, 2, liczba[minuty_jeden]); lc.setRow(0, 3, liczba[minuty_dziesięć]); lc.setRow(0, 4, liczba[jedna_godzina]); lc.setRow(0, 5, liczba[godziny_dziesięć]); } jeśli (menu = = 1) { jeśli (odczyt cyfrowy (6) = = 0) { opóźnienie (300); godziny++; if(godziny>=24)godziny = 0; } if(digitalRead(7)==0){opóźnienie(300); godziny--; jeśli (godziny=60) minuty = 0; } if(digitalRead(7)==0){opóźnienie(300); minuty--; jeśli(minuty<0) minuty = 0; } minut_jeden = minuty%10; minuty_dziesięć = minuty/10; lc.setRow (0, 4, B00000000); lc.setRow (0, 5, B00000000); lc.setRow (0, 1, B00000000); lc.setRow (0, 0, B00000000); lc.setRow(0, 2, liczba[minuty_jeden]); lc.setRow(0, 3, liczba[minuty_dziesięć]); } if(menu==3){ clock.setDateTime(2020, 4, 13, godziny, minuty, 01); menu = 0; } //lc.setLed(0, wiersz, kolumna, fałsz); //lc.setLed(0, wiersz, kolumna, prawda); //lc.setColumn(0, kolumna, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, wiersz, (bajt)0); //lc.setColumn(0, kolumna, (bajt)0); // Dla początkowego zera spójrz na przykład DS3231_dateformat // Serial.print("Surowe dane: "); // Serial.print(dt.rok); Serial.print("-"); // Serial.print(dt.miesiąc); Serial.print("-"); // Serial.print(dt.day); Serial.print(" "); // Serial.print(dt.godzina); Serial.print(":"); // Serial.print(dt.minuta); Serial.print(":"); // Serial.print(dt.sekunda); Serial.println(""); // // opóźnienie(1000); }
Krok 6: Umieszczenie diod LED
Na tym etapie wstawię wszystkie diody LED do otworów drewnianej deski. Połączenia diod LED pokazano na schemacie. Ponieważ do sterowania diodami LED użyjemy sterownika MAX7219 LED, wszystkie diody LED muszą być połączone w formie matrycy. Połączyłem więc styki anod wszystkich diod LED w każdej kolumnie i wszystkie styki katod w każdym rzędzie razem zgodnie ze schematem. Teraz nasze kołki kolumn są w rzeczywistości kołkami anodowymi diod LED, a kołki rzędowe są w rzeczywistości kołkami katodowymi diod LED.
Aby sterować diodami LED za pomocą MAX7219 należy połączyć pin katody diody z pinem cyfrowym układu scalonego oraz pin anody diody led z pinem segmentowym układu scalonego. Tak więc nasze piny kolumny powinny być połączone z pinami segmentu, a piny rzędu powinny być podłączone do pinu cyfr MAX7219.
Musisz podłączyć rezystor między pin ISET i VCC układu MAX7219 i ten rezystor kontroluje prąd pinów segmentu. Użyłem rezystora 10K, aby utrzymać 20mA w każdym pinie segmentowym.
Krok 7: Podłączanie diod LED
Na tym etapie połączyłem wszystkie diody w formacie matrycy wierszowo-kolumnowej. Musiałem użyć dodatkowych przewodów połączeniowych do podłączenia diod LED, ale można wykonać połączenie bez pomocy dodatkowych przewodów, jeśli przewody diod LED są wystarczająco długie, aby się stykały.
W tej konfiguracji nie jest wymagany rezystor, ponieważ MAX7219 zadba o prąd. Twoim obowiązkiem jest dobranie odpowiedniej wartości rezystora ISET i podciągnięcie pinu ISET za pomocą tego rezystora. Przed umieszczeniem i podłączeniem diod LED proponuję sprawdzić każdą diodę LED. Ponieważ umieszczenie złej diody LED zabije mnóstwo czasu. W następnym kroku podłączymy przewody rzędu i kolumny do MAX ic.
Krok 8: Podłączanie płytki drukowanej za pomocą diod LED
Nasza płytka drukowana zawierająca RTC, Arduino i MAX7219 jest gotowa od dawna, a w poprzednim etapie przygotowaliśmy również matrycę LED. Teraz musimy połączyć wszystkie rzeczy razem zgodnie ze schematem. Najpierw musimy podłączyć przewody rzędu i kolumny do MAX7219IC. Połączenie zostało wymienione na schemacie. Aby było to bardziej zrozumiałe, postępuj zgodnie z tabelą podaną poniżej.
Matryca LED | MAX7219CNG |
---|---|
ROW0 | CYFRA0 |
WIERSZ1 | CYFRA1 |
ROW2 | CYFRA2 |
WRZ3 | CYFRA3 |
KOLUMN0 | SEGA |
KOLUMNA1 | SEGB |
KOLUMNA2 | SEGC |
KOLUMNA3 | SEGD |
KOLUMNA4 | SEGE |
KOLUMNA5 | SEGF |
ROW0-> Najwyższy rząd
COLUMN0 -> Prawa kolumna (SS COLUMN)
Po wykonaniu połączenia należy naprawić płytkę PCB i Arduino za pomocą kawałka drewna, aby uniknąć zerwania połączenia. Do mocowania wszystkich obwodów użyłem gorącego kleju. Aby uniknąć zwarcia, użyj dużej ilości kleju, aby ukryć złącze lutowane na spodniej stronie płytki drukowanej.
Aby zegar był użyteczny, musisz zachować opcję dostosowania czasu w razie potrzeby. Dodałem trzy przełączniki przyciskowe do regulacji czasu. Jeden do zmiany opcji i dwa do zwiększania i zmniejszania godziny i minuty. Przyciski są umieszczone w prawym górnym rogu, aby były łatwo dostępne.
Krok 9: Umieszczanie kulek
To ostatni etap naszego projektu. Całe połączenie obwodu zostało zakończone. Teraz musisz umieścić marmur na górnej stronie drewnianego zegara. Do nałożenia kulek użyłem kleju na gorąco. Do tego celu użyj przezroczystego białego kleju w sztyfcie. Nałożyłem gorący klej w każdy otwór od góry, a na diody LED delikatnie umieściłem marmur w każdym otworze. Równomierne dodawanie kleju zwiększy blask diody. Użyłem NIEBIESKIEJ LED do mojego zegara. Dało mi to najlepszy wynik.
Daj moc zegarowi. Jeśli pokazuje czas to Gratulacje!!!
Zrobiłeś to!
Cieszyć się!
Drugie miejsce w konkursie Make it Glow
Zalecana:
Mikro zegar binarny: 10 kroków (ze zdjęciami)
Micro Binary Clock: Po uprzednim utworzeniu Instructable (Binary DVM), który wykorzystuje ograniczony obszar wyświetlania za pomocą binarnego. To był tylko mały krok po utworzeniu głównego modułu kodu do konwersji dziesiętnej na binarną w celu utworzenia zegara binarnego, ale t
Binarny zegar LED z marmuru: 6 kroków (ze zdjęciami)
Binary LED Marble Clock: Teraz myślę, że prawie każdy ma zegar binarny, a oto moja wersja. Podobało mi się to, że ten projekt łączył trochę prac stolarskich, programowania, nauki, elektroniki i być może tylko odrobiny kreatywności artystycznej. Pokazuje czas, miesiąc, datę, dzień
„Drewniany” zegar na biurko *Wygląd nowoczesny*: 9 kroków (ze zdjęciami)
"Drewniany" zegar na biurko *Nowoczesny wygląd*: Witam wszystkich, to jest moja druga instrukcja! Tym razem zbudujemy drewniany zegar z wyświetlaczem temperatury i wilgotności. Jak pokazano na zdjęciu, nasz czas będzie wyświetlany przez „drewno”. Ponieważ światło nie wystarcza
Zegar binarny Arduino - wydruk 3D: 5 kroków (ze zdjęciami)
Zegar binarny Arduino - druk 3D: Od jakiegoś czasu przyglądam się zegarom binarnym na moim biurku, jednak są one dość drogie i / lub nie mają ogromnej liczby funkcji. Więc zdecydowałem, że zamiast tego zrobię jeden. Jeden punkt do rozważenia przy tworzeniu zegara, Arduino / Atmega328
Zegar binarny wykorzystujący Neopixels: 6 kroków (ze zdjęciami)
Zegar binarny używający Neopixels: Cześć, kocham wszystkie rzeczy związane z diodami LED, a także lubię z nich korzystać na różne ciekawe sposoby Tak, wiem, że zegar binarny został tutaj zrobiony wiele razy, a każdy z nich jest doskonałym przykładem tego, jak stwórz swój własny zegar.Naprawdę lubię