User Tools

Site Tools


minutnik

Minutnik

Do wykonywania ćwiczeń potrzebowałem minutnika, który będzie odmierzał czas wykonywania ćwiczenia i sygnalizował dźwiękiem jak czas już minął. Wpierw myślałem aby połączyć funkcjonalność takiego minutnika z zegarem i rozmyślania o tym są tutaj. Pomysł minutnika+zegara porzuciłem jednak, po tym jak doszukałem się że nawet kwarce zegarkowe nie są dość dobre aby zegar nie opóźniał/spieszył się po upływie np 6 miesięcy.

Ponieważ mikrokontroler już miałem kupiony (pic16f716) to postanowiłem zrobić sam minutnik na tym uC. Jako że nie musiał być to zegar+minutnik to zrezygnowałem z wyświetlacza LCD, bo nie było już potrzeby takiego oszczędzania energii. Użyłem wyświetlacza 7 segmentowego LED z 4 cyframi, bo akurat taki miałem w zapasach.

Problemem była ilość wejść/wyjść mikrokontrolera, ponieważ ma on ich 13, a na sam wyświetlacz potrzeba jest 12 wyjść, do tego minutnik potrzebował wejść do ustalania czasu oraz startu odliczania. Do rozwiązania tego użyłem rejestr przesuwny 74hc595, który to też miałem na stanie, niestety ten rejestr według dokumentacji nie mógł bezpośrednio z wyjść zasilać ledów wyświetlacza i musiałem użyć do tego tranzystorów.

Ogólnie prosty minutnik, zajął dużo miejsca i komponentów, ale wolałem zrobić to tak niż zamawiać kolejny mikrokontroler z większą ilością wejść/wyjść. Dziś postąpiłbym jeszcze inaczej, bo próbowałbym do tych samych pinów, które zasilałby diody wyświetlacza podłączyć wejścia i multipleksować to tak, że przy każdym obrocie pętli głównej przełączać piny jako wejścia, sprawdzać stan, znów ustawić je jako wyjścia. Tego typu działanie jest opisane w nocie aplikacyjnej AN529.

Zdjęcia

Schemat

Kod źródłowy

  • Najnowsza wersja zawsze jest w ~/projekty/minutnik.git
  • Wersja z 2015-11-10 Komentarze w kodzie są po ang. bo kiedy zaczynałem pisać kod, myślałem że ten opis też napisze po ang, ale potem o tym zapomniałem…
minutnik.txt · Last modified: 2015/11/22 13:06 by dominik