Niezbyt gówniany zegar: 4 kroki
Niezbyt gówniany zegar: 4 kroki
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.