Spisu treści:

Niezbyt gówniany zegar: 4 kroki
Niezbyt gówniany zegar: 4 kroki

Wideo: Niezbyt gówniany zegar: 4 kroki

Wideo: Niezbyt gówniany zegar: 4 kroki
Wideo: STRANGER THINGS 4 [CAŁY SEZON] w 61 minut | Szyderczy Skrót 2024, Grudzień
Anonim
Nie tak gówniany zegar
Nie tak gówniany zegar
Nie tak gówniany zegar
Nie tak gówniany zegar
Nie tak gówniany zegar
Nie tak gówniany zegar

By davidjwattsdavidjwatts.comObserwuj Więcej autora:

PiBot: Obliczanie Pi za pomocą Arduino Uno
PiBot: Obliczanie Pi za pomocą Arduino Uno
PiBot: Obliczanie Pi za pomocą Arduino Uno
PiBot: Obliczanie Pi za pomocą Arduino Uno

Po pierwsze, dlaczego nazywać to Crap Clock? No cóż, obniża to oczekiwania z nadzieją na ich przekroczenie:-) Żartuję oczywiście, zegar reprezentuje w równym stopniu wiele moich porażek, jak i sukcesów. Fizyczna reprezentacja słabszego w elektronice.

Po drugie, tak naprawdę nie jest to sposób na uczynienie „rzeczy” bardziej refleksją na temat wyborów projektowych i wszystkich materiałów potrzebnych do budowania własnego.

Crap Clock to zegar pracujący z ATMEGA328, który steruje 82 diodami LED za pośrednictwem 74HC595 napędzającego rzędy i TLC5940 zatapiającego prąd przez kolumny. Ponieważ DS3231 utrzymuje czas i może działać dzięki zaciskom wejściowym akumulatora. Zegar ma kilka „trybów” wyświetlania godziny, daty, roku, temperatury, a następnie tryby ustawiania godziny i daty za pomocą dwóch przycisków. Diody LED można przyciemnić za pomocą TLC5940, a wyświetlacz sekund (różowe diody LED powyżej) może być używany do wyświetlania litery kontekstowej obok trybu, w którym znajduje się zegar.

Jest kilka funkcji, których nie użyłem lub wyjąłem z płytki drukowanej, takich jak ładowanie akumulatora litowo-jonowego, zrobiłem to w tej wersji, aby zmniejszyć koszt części i ponieważ DS3231 tak naprawdę pobiera tylko niewielką ilość prądu. Są jeszcze piny dla wbudowanego pinu INT/SQW alarmu DS3231 oraz pin brzęczyka z ATMEGA. Pin 10 jest wyłamany do ogólnego użytku, a także dostępny jest pin analogowy dla funkcji takiej jak LDR, która zmienia jasność w zależności od oświetlenia otoczenia.

Stworzyłem playlistę wszystkich filmów, o których pamiętam, o których rozmawiałem lub projektowałem Crap Clock.

Krok 1: Krok 1: PCB i schemat

Krok 1: PCB i schemat
Krok 1: PCB i schemat
Krok 1: PCB i schemat
Krok 1: PCB i schemat

Układ i schemat PCB został zaprojektowany w Eagle, zajęło to dłuuuuugo czasu;-), ale było też dużo zabawy i naprawdę wiele nauczyło mnie o projektowaniu. Nie martw się, wciąż jest mnóstwo błędów, jeśli w każdym innym projekcie, który wykonałem, w tym w tych wszystkich, o których nie wiem w tym.

Chciałem, aby zegar miał wyświetlacz matrycowy i aby wszystko istniało na jednej płytce, więc postanowiłem stworzyć okrągłą płytkę do emulacji zegara analogowego. Tak…. to się nie przyklejało, to był okropny kształt do trasowania i wymagał milionów (może setek) diod LED. Następnie zdecydowałem się zrobić wyświetlacz w stylu matrycy za pomocą diod LED, pierwotnie wszystkie napędzane rejestrami przesuwnymi (czcigodny 74HC595), ale ostatecznie zdecydowałem, że znajomy sterownik LED TLC5940 byłby świetny do pochłaniania prądu z tych diod LED i daje niesamowite funkcja ściemniania PWM.

Oto zestawienie materiałów:

1 x 16 MHz kryształ SM49

82 x 0603 diody LED (w prawie dowolnym kolorze)

1 x Mini USB typu B (nie jest potrzebny, służy tylko do zasilania, które i tak jest odłączone od pinów)

Kondensatory 7 x 100nf 0805

9 x 10 k rezystorów 0805

Kondensatory 2 x 10uf 0805 (nie trzeba być szczerym, a 0805 są drogie)

Rezystory 5 x 1k 0805

1 x rezystory 2k 0805

5 x 2n3906 SOT23

2x22pf 1206 rezystory

Rezystory 16 x 470 omów 0805

1x74HC595D SO16

1 x ATMEGA328P-AU

1 x DS3231 SO16W

2 x przełącznik dotykowy SMD DTSM-3

1 x TLC5940PWP

Krok 2: Krok 2: Crap Code

Krok 2: Crap Code
Krok 2: Crap Code

Kod był trochę koszmarny, okazało się, że kodowanie zegara z wyświetlaczem homebrew nie jest takie proste nawet przy korzystaniu z kilku bibliotek.

Oczywiście nie jest to świetny kod, to bzdura. Ale działa i łatwo je modyfikować, nie mam pojęcia, jak zrobić bibliotekę, więc to wszystko jest trochę wrakiem pociągu. Ha ha, ale szczerze pracuję nad ulepszaniem swojego kodu i uczeniem się tworzenia własnych bibliotek.

Został napisany w Arduino IDE i korzysta z kilku bibliotek (Shifter.h, MD_DS3231.h i Tlc5940.h) stworzonych przez ludzi znacznie sprytniejszych niż ja. Będziesz musiał to wgrać za pomocą programisty, użyłem Arduino jako ISP i podpiąłem go do resetu, 11, 12, 13 pinów na płytce.

Przyciski:

Są dwa przyciski, które mają wiele funkcji w zależności od trybu, w którym znajduje się zegar. Możesz ich użyć do zmiany trybu wyświetlania do przodu i do tyłu, poprzez czas, datę, rok, temperaturę, a następnie ustawianie czasu.

Krok 3: Krok 3: Crap Case

"loading="leniwe" mogę powiedzieć, że to trochę bzdura, ale jestem w tym trochę zakochany. Nowa wersja projektu PCB nie ma tych atrakcyjnych drutów;-) Gotowe, które mam są oparte na moje płytki prototypowe.

Możesz go rozerwać, zremiksować i użyć dowolnych części, które uznasz za przydatne. Przez cały czas trwania tego projektu pomagali mi ludzie ze społeczności YouTube, więc w końcu wszyscy.

Zalecana: