Timer, czyli programator czasowy #projekt

Posted by

Od kiedy ustawiam drukowanie 3D kiedy nie ma mnie w domu to bardzo często drukarka jest włączona niepotrzebnie przez długi czas. Mimo, iż grzałki i silniki są wyłączone to i tak zużywa to kilka W prądu. Programatory czasowe w sklepie kosztują sporo (60zł najtańszy chyba), po chwili zastanowienia postanowiłem zrobić sobie własny, gdyż jego budowa nie jest skomplikowana i od razu przetestuje moje nowe moduły.

Przygotowanie

Najpierw trzeba zacząć oczywiście od zaplanowania i przemyślenia wszystkiego, bo jest to dość złożony projekt i jest kilka wymagań, które musi spełniać:

  1. Musi zmieści się w odbudowie do 230V podobnej do tej co są sprzedawane w sklepach.
  2. Układ odmierzania czasu musi być precyzyjny i bezawaryjny, oraz aktualizacja oprogramowania musi być szybka i sprawna.

Zacząłem więc od przygotowania modułów z jakich będę korzystał, oraz przemyślenia całego układu. Naszkicowałem sobie na kartce schemat blokowy i dzięki temu mogłem w pełni świadomie i bez problemu skompletować wszystkie potrzebne elementy:

  1. Moduł wyświetlacza segmentowego LED
  2. Moduł RTC
  3. Obudowę do gniazda 230V z wyjściem na 230V [20zł]
  4. Atmege 16 i wszystkie podzespoły elektroniczne które widnieją na schemacie

Prace

Na początku połączyłem wszystko na płytce stykowej i zabrałem się za programowanie. Schemat logiki przycisków dostępny jest na jednym ze szkiców powyżej. Zmniejszyłem liczbę wyświetlaczy segmentowych do 4 sztuk, bo potrzebne będą tylko minuty i godziny, sekundy to już przesada, szczególnie, że całość by mi się nie zmieściła w obudowie, która stawia spore wymagania co do rozmiarów układu.

Wymagania co do uC:

  • ustawiamy w fusebite`ch JTAGEN na 1 (czyli niezaprogramowany) aby odblokować wszystkie proty C

Na schemacie już są załączone konkretne moduły i układ stanowi kompletną całość.

Teraz trzeba przenieść to na płytkę uniwersalną oraz włożyć wszystko do obudowy. Wymierzyłem wymiary płytki jakie może mieć aby zmieściła się w obudowie oraz zaznaczyłem miejsca na wyświetlacz oraz przyciski. Naniosłem wszystko na kartkę i zabrałem się za rozmieszczanie elementów. Efekty:

Po zlutowaniu całość prezentuje się następująco:

Obudowa i składanie

Teraz trzeba było wyciąć otwory w obudowie na przyciski, wyświetlacz i piny do programowania. Z okrągłymi otworami nie było problemu, wystarczyła wiertarka. Natomiast co do prostokątnych otworów to już pojawiły się komplikacje. Dalej nie znam idealnego sposobu na to. Na tą chwile radze sobie w następujący sposób. Odrysowuje skalpelem kształt do wydrążenia (w przypadku cienkich ścian możemy całość wyciąć skalpelem, albo nożykiem do tapet i problem z głowy), potem nawiercam sporo otworów wiertarką, tak oby można było kombinerkami powyłamywać całość. Dzięki temu, że krawędzie odrysowaliśmy skalpelem to wszystko się pięknie ułamywało w wyznaczonych miejscach.

Sporo problemów natomiast przysporzyło umieszczenie całości w obudowie. Wszystko musiało trzymać się sztywno, aby nie uginało się podczas wciskania przycisków. O przykręceniu płytki nie było mowy, ponieważ nie było na niej miejsca na śruby. Po przeciwnej stronie obudowy znajdowały się dziury na wkręty. Nagwintowałem je i wkręciłem długie śruby które dopychały po prostu cały układ, dzięki czemu trzymał się on pewnie. Nie chciałem go przyklejać na klej na gorąco ponieważ w razie upgrade albo awarii potrzebuje mieć możliwość szybkiego wymontowania układu. Po drugiej stronie przyczepiłem już klejem zasilacz 5V wymontowany z ładowarki do telefonu (był to jedyny który odpowiadał gabarytami i wydajnością), oraz przekaźnik. Wszystko połączyłem ze sobą i przetestowałem. Działa perfekcyjnie.

Zasada działania

Timer działa następująco: po podpięciu do kontaktu timer się automatycznie włącza i widnieje domyślny czas. Od razu jest ustawiony tryb modyfikacji. Przyciskami UP o DOWN ustawiamy godzinę, jeśli chcemy zmienić na minuty to wciskamy OK i zmieniamy minuty, po ponownym przyciśnięciu OK timer zaczyna odmierzać czas. W trybie odmierzania czasu możemy zatrzymać timer przyciskiem OK, który automatycznie wprowadza urządzenie w tryb modyfikacji czasu. Przyciskiem RESET resetujemy czas do pozycji początkowej.

Podsumowanie:

  1. Całość prezentuje się moim zdaniem wyśmienicie, design nie wyszedł zły, wszystko trzyma się kupy i spełnia swoje zadanie.
  2. Wyprowadzenie taki pinów MOSI, MISO, SCK, GND i RESET pozwala na bardzo łatwą aktualizacje oprogramowania, praktycznie kiedy mam tylko na to ochotę 😀
  3. Brak użycia kleju na gorąco do przymontowania układu do obudowy pozwala mi na szybki upgrade całości i w razie czego diagnozę.
  4. Koszt całości to ok 40zł (obudowa – 20zł; Atmega 16A – 14zł; wyświetlacze i reszta elektroniki < 10zł, zależnie od tego co mamy w domu a czego nie)
  5. Jestem mega zadowolony z projektu. Urządzenie już zaadoptowanie do drukarki 3D i rachunki za prąd powinny być o kilka złotych niższe.

Plany na przyszłość:

  1. Dodać funkcję oraz fizyczny przełącznik do zmiany trybu w cykliczny, tzn. gdy teraz po odliczeniu ustawionego czasu timer się wyłącza, i jeśli nie ustawimy wartości jeszcze raz, to urządzenie nic nie zrobi. Moim celem była by opcja aby działało to cyklicznie w trybie 24 godzinowym jak w większości programatorów czasowych. W pierwszej wersji pominąłem tą funkcje aby jak najbardziej uprościć projekt. W drugiej wersji planuje dorobienie tej funkcjonalności.
  2. Użyć pamięć EEPROM do zapamiętywania ustawionego czasu aby po resecie urządzenia nie trzeba było go wprowadzać na nowo, choć nie jest to jakoś specjalnie uciążliwe.

Źródła i linki:

Youtube, Eagle

print

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *