Spisu treści:

Binarny zegar na biurko: 9 kroków (ze zdjęciami)
Binarny zegar na biurko: 9 kroków (ze zdjęciami)

Wideo: Binarny zegar na biurko: 9 kroków (ze zdjęciami)

Wideo: Binarny zegar na biurko: 9 kroków (ze zdjęciami)
Wideo: Ups. 2024, Listopad
Anonim
Binarny zegar na biurko
Binarny zegar na biurko
Binarny zegar na biurko
Binarny zegar na biurko
Binarny zegar na biurko
Binarny zegar na biurko

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

Zestawienie materiałów
Zestawienie materiałów
Zestawienie materiałów
Zestawienie materiałów
Zestawienie materiałów
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

Grawerowanie i rzeźbienie
Grawerowanie i rzeźbienie
Grawerowanie i rzeźbienie
Grawerowanie i rzeźbienie
Grawerowanie i rzeźbienie
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

Szlifowanie i nakładanie lakieru
Szlifowanie i nakładanie lakieru
Szlifowanie i nakładanie lakieru
Szlifowanie i nakładanie lakieru
Szlifowanie i nakładanie lakieru
Szlifowanie i nakładanie lakieru
Szlifowanie i nakładanie lakieru
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

Tworzenie obwodu
Tworzenie obwodu
Tworzenie obwodu
Tworzenie obwodu
Tworzenie obwodu
Tworzenie obwodu
Tworzenie obwodu
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

Wgrywanie programu
Wgrywanie 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

Umieszczanie diod LED
Umieszczanie diod LED
Umieszczanie diod LED
Umieszczanie diod LED
Umieszczanie diod LED
Umieszczanie diod LED
Umieszczanie diod LED
Umieszczanie 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

Podłączanie diod LED
Podłączanie diod LED
Podłączanie diod LED
Podłączanie diod LED
Podłączanie diod LED
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

Łączenie płytki drukowanej z diodami LED
Łączenie płytki drukowanej z diodami LED
Łączenie płytki drukowanej z diodami LED
Łączenie płytki drukowanej z diodami LED
Łączenie płytki drukowanej z diodami LED
Łączenie płytki drukowanej z diodami 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

Umieszczanie kulek
Umieszczanie kulek
Umieszczanie kulek
Umieszczanie kulek
Umieszczanie kulek
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ę!

Konkurs Spraw, by świecił
Konkurs Spraw, by świecił
Konkurs Spraw, by świecił
Konkurs Spraw, by świecił

Drugie miejsce w konkursie Make it Glow

Zalecana: