Programowalny mikroprocesorowy timer-włącznik
Do czego to służy?
Czasem zdarza się, że trzeba odmierzyć jakiś konkretny i nie długi odcinek czasu. O ile czynność ta jest do zniesienia w przypadku odmierzania stałego przedziału, o tyle może okazać się to kłopotliwe, gdy odmierzany odcinek zmienia swoją długość. Najprostrzym przykładem jest ciemnia fotograficzna, w której czasy kompieli materiałów są różne tak jak i czasy ich naświetleń.
Powyższy problem rozwiązuje opisywane urządzenie, które jest timerem mierzącym z przedziału 2-200 sekund. Po zaprogramowaniu programatorem timera wciśnięcie jego przycisku spowoduje załączenie diody LED na ustalony wcześniej czas.
Należy wspomnieć, że obwodem końcowym wcale nie musi być dioda świecąca lecz każdego typu inne urządzenie sterowane poziomem sygnału.
[do góry]
Jak to działa?
Schemat elektryczny przedstawiony jest na rysunku.
Zasadniczo urządzenie składa się z dwóch modułów: programatora i samego timera. Sposób dokonywania nastaw poprzez programator został podyktowany tym, że urządzeń typu timer może być więcej, a programator potrzebny będzie tylko jeden. Wykonanie timera jest nakładowo niskie zatem można umieścić po jednym dla każdego zadania. Jako urządzenia niezależne potrzeba będzie je jedynie odpowiednio zaprogramować i wszystko w pożądku.
Oba moduły zostały zbudowane w oparciu o nowoczesny mikroprocesor AT90S8515 rodziny AVR. Układy taktowane są kwarcem o częstotliwości 4MHz. Zarówno programator jak i timer zasilane są ze źródeł niskiego napięcia z przedziału 7-12V (np. baterie), a napięcia +5V do ich poprawnej pracy dostarczają stabilizatory U2 i U4. Programator wysterowuje z portu C wyświetlacz LCD o organizacji 2*16, zaś dwie najstarsze linie sterują pracą tranzystorów załączających podświetlenia wyświetlacza i klawiatury. Część portu A przeznaczona jest dla obsługi pięcioprzyciskowej klawiatury, a linie RXD i TXD portu D zostały wykorzystane, zgodnie z ich przeznaczeniem do komunikowania się z timerem w standardzie RS232. Przewód połączeniowy stanowi kabel trzyżyłowy, który łączy ze sobą końcówki numer 5 obu złącz RS i naprzemiennie okńcówki 2 i 3.
Timer (na schemacie u dołu) jako peryferia posiada jedynie dwie diody LED, przycisk i wyprowadzenie złącza portu RS232. Taktowanie i zasilanie mikroprocesora timera jest identyczne jak w przypadku programatora.
Do każdego z modułów dołączone jest dodatkowe złącze (PROG1 i PROG2). Są to złącza programatora ISP dzięki którym możliwa jest wymiana oprogramowania sterującego bez wyjmowania (wylutowywania) procesorów z płytki.
Jak widać elektryczna budowa jest prosta. Wspomnę tylko, że rezystory R1 - R4 służą ograniczeniu prądu płynącego przez tranzystory i diody świecące. Kondensatory C4 i C8 są dodane tylko na wszelki wypadek i nie muszą być montowane, gdyż AT90S8515 posiadają wbudowany obwód poprawnego sterowania sygnałem reset przy włączaniu zasilania.
Zasilanie timera podane na schemacie jako VCC/2 nie oznacza jakiejś tam połowy wartości zasilania. Służy odróżnieniu obwodu "plusowego" obu modułów i raczej należy traktować je jako VCC-2.
Sposób działania i komunikacji prześledzimy analizując program żródłowy.
[do góry]
Program sterujący
Oprogramowanie do użądzenia powstało w języku BASIC i zostało napisane w środowisku BASCOM-AVR.
Soft programatora posiada opcje importu nastawy czasu z timera, nastawiania nowej wartości, transmisji do timera i wyboru sposobu podświetlenia wyświetlacza i klawiatury. Opcje dostępne są poprzez tekstowe menu, po którym poruszmy się za pomocą klawiatury. Klawiatura składa się z 5 przycisków ułożonych tak, że 4 z nich (zewnętrzne) oznaczają kierunki (góra, dół, lewo i prawo), a środkowy to przycisk zatwierdzający OK. Nie w każdym momencie, przy dokonywaniu nastaw, potrzebna jest odsługa wszystkich przycisków dla tego też trzałki kierunkowe tych dostępnych w danym momencie prezentowane są na wyświetlaczu. Standardowo środkowy przycisk służy zatwierdzaniu wyborów i zmian i jego symbol nie jest wyświetlany.
Opcje wyboru podświetleń mogą przyjmować następujące wartości: podświetlenie wyświetlacza (stale wyłączone, stale włączone, czasowe 6s), podświetlenie klawiatury (stale wyłączone, stale właczone). 6 sekundowe podświetlenie wyświetlacza należy rozumieć tak, że po 6 sekundach od ostatniego naciśniętego przycisku podświetlenie jest wygaszane i włączane ponownie po wciśnięciu dowolnego z nich (nawet aktualnie nieaktywnego).
Oprogramowanie timera zajmuje się odbieraniem danych przesyłanych z programatora, odsyłaniem nastawy na rządanie programatora i sterowaniem diodami świecącymi, oraz obsługą przycisku.
Potwierdzeniem odebrania nowej nastawy przez timer jest zaświecenie na jedną sekundę zółtej diody. Fakt restartu oprogramowania sygnalizowany jest krótkim miganiem tej samej diody. Dioda czerwona świeci się gdy odmierzany jest czas i podczas tego procesu układ jest niewrażliwy na transmisję na porcie szeregowym i wciskanie przycisku. Wciśnięcie przycisku powoduje rozpoczęcie odmierzania zaprogramowanego czasu.
Cechą wspólną obu modułów jest to, że programy zabezpieczone są przed "zawiesizną" obsługą watchdoga. Dodatkowo istnieje możliwość restartu obu modułów manualnie poprze dłuższe przytrzymanie króregoś z przycisków (w timerze jest tylko jeden :] ). Gdy ułady są podłączone razem przewodem transmisyjnym restart ręczny programatora automatycznie powoduje restart oprogramowania timera co objawia się miganiem żółtej diody. Własność ta ma tą zaletę, że eliminuje się ew. błędy w obsłudze RS232 wynikające z podłączania przewodu i przypadkowego wywoływania podprogramu odbioru danych przez timer. Dla tego zalecam po spięciu modułów, celem programowania lub ściągnięcia nastawy, wykonanie restartu poprzez wciśnięcie na dłużej któregoś z przycisków przogramatora.
KY3ORR
[do góry]
Spis elementów
| Oznaczenie |
Wartość |
|
| REZYSTORY |
| R1, R2
| 10k |
| R3, R4 |
360R
|
| POT |
10-50k (brak)
|
| KONDENSATORY |
| C1, C7 |
100uF |
| C2, C3, C5, C6 |
33pF |
| C4, C8 |
1uF |
| PÓŁPRZEWODNIKI |
| LED1, LED2 |
LED |
| IC1, IC3 |
AT90S8515 |
| IC2, IC4 |
7805 |
| INNE |
| Q1, Q3 |
4MHz |
| WYSWIETLACZ |
lista goldpin 1*16 + wyświetlacz LCD 2*16 |
| KLAWIATURA |
listwa goldpin 1*7 + 5*uswitch |
| PROG1, PROG2 |
listwa goldpin 1*6 |
| RS232_1, RS232_2 |
złącze DB9F |
| ZAS, BAT |
ARK2 |
[do góry]
Pliki wynikowe *.hex w postaci spakowanego archiwum *.rar można pobrać >stąd<
Hasło: www.serwis-elektroniki.prv.pl