Vous êtes sur la page 1sur 4

PROJEKTY CZYTELNIKW

Dzia Projekty Czytelnikw zawiera opisy projektw nadesanych do redakcji EP przez Czytelnikw. Redakcja nie bierze odpowiedzialnoci za prawidowe dziaanie opisywanych ukadw, gdy nie testujemy ich laboratoryjnie, chocia sprawdzamy poprawno konstrukcji. Prosimy o nadsyanie wasnych projektw z modelami (do zwrotu). Do artykuu naley doczy podpisane owiadczenie, e artyku jest wasnym opracowaniem autora i nie by dotychczas nigdzie publikowany. Honorarium za publikacj w tym dziale wynosi 250, z (brutto) za 1 stron w EP. Przysyanych tekstw nie zwracamy. Redakcja zastrzega sobie prawo do dokonywania skrtw.

Programowany sterownik zegarowy


Urzdzenie przedstawione wartykule pozwala programowa wtrybie rocznym prac czterech urzdze. Dziki wbudowanej nieulotnej pamici nastaw, konsekwencje awarii zasilania zostay ograniczone do minimum. Rekomendacje: urzdzenie szczeglnie przydatne dla piochw lubicych celebrowa wczesnoranne wstawanie...

Projekt

111
lejnym jego atutem. Osobicie wiele razy spotkaem si zurzdzeniami, ktrych nie sposb byo obsuy bez tytuu doktora nauk technicznych. Ponadto urzdzenie jest odporne na wszelkie zaniki napicia, poniewa praca zegara jest podtrzymywana za pomoc akumulatora. Ukad dziaa niezawodnie od ponad roku. Ani razu nie spni si zzaparzeniem herbatki (tylko by sprbowa...). go urzdzenia. Wkadym bd razie zapotrzebowanie na domow automatyk istnieje inic nie wskazuje na zmian tej sytuacji. Na naszym rynku dostpnych jest wiele zegarw sterujcych, jednak wwikszoci przypadkw s to urzdzenia przystosowane do pracy zjednym odbiornikiem. Opracowany przeze mnie sterownik nie ma tej wady, umoliwia bowiem sterowanie a czterema niezalenymi urzdzeniami (kade omocy do 600 W), bazujc przy tym na jednym elektronicznym kalendarzu. Ponadto urzdzenie zapewnia niezwykle atw iprzejrzyst obsug, co jest ko-

Opis ukadu
Sercem urzdzenia jest mikrokontroler 89C4051 firmy Atmel ( rys. 1). Ma on wbudowane 4kB nieulotnej, reprogramowalnej pamici Flash. Womawianym projekcie jest ona wykorzystana prawie wcaoci - program zajmuje 4095 bajtw tej pamici. Kolejnymi wanymi ukadami s tutaj zegar PCF8583 oraz pami EEPROM 24C04, komunikujce si zprocesorem za porednictwem magistrali I2C. Do komunikacji uytkownika zurzdzeniem suy wywietlacz numeryczny (znakowy) LCD 16*2 oraz klawiatura

Zdnia na dzie staj si coraz bardziej leniwy. Takie czasy. Ot kiedy uczszczaem jeszcze do szkoy redniej, mieszkaem winternacie. Co rano wcza si szczerze znienawidzony przeze mnie budzik, ktry bezlitonie dzwonic, skaka po blacie mojego biurka. Koczyo si zawsze tak samo. Budzik obrywa wczap, aja powoli zwlekaem si zka, ubieraem ipo toalecie wlodowatej wodzie, zpaskudnym humorem, kierowaem si wstron internackiej stowki. Tak byo do czasu, kiedy to postanowiem podnie sobie komfort mczcej egzystencji. Lekarstwem na codzienne niewygody okaza si projekt prezentowany wartykule. Od momentu jego opracowania wszystko zmienio si nie do poznania. Codziennie rano najpierw wcza si zaparzacz do herbaty, po kilku minutach wcza si radio, apo chwili wpokoju robi si jasno. Po wypiciu szklanki gorcej herbaty, od razu nabierao si si iochoty do ycia... Zapewne kady Czytelnik znajdzie jeszcze wiele innych zastosowa dla prezentowane-

Prezentowany wartykule sterownik wyposaono wprogramowalny zegar czasu rzeczywistego oraz kalendarz, co daje moliwo zaprogramowania pracy urzdzenia wtrybie rocznym. Ponadto urzdzenie wyposaone jest wawaryjne rdo zasilania, co pozwala na zachowanie prawidowego czasu idaty, nawet po odczeniu sterownika od sieci. Informacje dotyczce zacze/wycze odbiornikw przechowywane s wnieulotnej pamici zewntrznej typu EEPROM. Wpodstawo wej wersji urzdzenia pozwala ona na zachowanie 25 cykli zacz/wycz. Pami ustawie wedug producenta moe by przeprogramowywana co najmniej 100000 razy, awic urzdzenie zapewnia trwao iniezawodno oraz komfortow obsug ieksploatacj.

Elektronika Praktyczna 7/2003

87

PROJEKTY CZYTELNIKW

Rys. 1. Schemat elektryczny sterownika

zbudowana ztrzech mikroprzyciskw. Program gwny (napisany wBascomie) nie jest skomplikowany. Ogranicza si on do podstawowych operacji wykonywanych wnieskoczonej ptli. Do operacji tych nale: - odczyt danych zzegara (ukadu RTC), - prezentacja danych na wywietlaczu, - sprawdzenie stanu klawiatury. Jeeli na ostatnim etapie nie wykryto wcinicia adnego zprzyciskw, to program wraca do pocztku. Wprzeciwnym wypadku bd realizowane poszczeglne podprogramy, po czym mikrokontroler wrci do ptli gwnej. Zarwno zasilanie awaryjne, jak ipodwietlanie wywietlacza mona podcza lub odcza za pomoc jumperw (odpowiednio JP2 iJP3). Ukad wyjciowy wykonano standardowo - elementami wykonawczymi s triaki BT136/600. Mikrokontroler steruje nimi poprzez optotriaki MOC3020 zapewniajce separacj galwaniczn

sterownika od sieci zasilajcej. Zasilacz rwnie nie jest zbyt oryginalny. Zastosowano wnim transformator TS2/16, mostek prostowniczy, stabilizator 7805 ikilka kondensatorkw filtrujcych.

Monta iuruchomienie
Monta ukadu jest prosty ijedyny problem, zwaszcza dla niecierpliwych wyznawcw lutownicy, moe stanowi sztywne umieszczenie nad sob dwch pytek drukowanych (schematy montaowe pokazano na rys. 2 i3), zktrych sterownik si skada oraz umieszczenie ich wobudowie. Poza tym monta nie powinien sprawi adnych kopotw. Jak zwykle zaczynamy od montowania podstawek, akoczymy na elementach wyszych. Pod wszystkie ukady scalone zalecam stosowanie podstawek, azwaszcza pod procesor, gdy jak znam ycie, uytkownicy wielokrotnie bd jeszcze modyfikowali jego program. Wywietlacz najlepiej zamontowa wtaki sposb, by mona byo pniej go wymieni. Najprociej uczyni to lutujc do wywietlacza lis-

tw goldpinw, ana pytce drukowanej sterownika odpowiednie gniazdo. Dwie pytki zastosowano wcelu zminimalizowania wymiarw urzdzenia. Ztego te powodu podjem decyzj ozastosowaniu laminatu dwustronnego. Na jednej zpytek znajduje si zasilacz iukad wykonawczy, na drugiej umieciem ca inteligencj urzdzenia, czyli mikrokontroler wraz zjego peryferiami. Pomidzy pytkami naley wkocowej fazie montau wykona kilka pocze krtkimi odcinkami dowolnego przewodu. Nastpnie

poskadane (z wlutowanymi elementami) pytki naley poczy trzema duszymi rubami, przy czym pytka zasilacza znajduje si niej, anad ni pytka procesora, do ktrej to zkolei doczamy wywietlacz. Naley zauway, e na pytce ukadu wykonawczego nie przewidziano miejsca na bezpieczniki dla sterowanych urzdze. Nie jest to jednak niedopatrzenie konstruktora (gdzieby tam znowu...), ale dziaanie celowe. Dla wygody uytkowania urzdzenia bezpieczniki te naley umieci wgniazdach, ktre powinny

Rys. 2. Schemat montaowy pytki procesora

88

Elektronika Elektronika Praktyczna Praktyczna 7/2003 2/98

PROJEKTY CZYTELNIKW
informacji dokonujemy zapisu za pomoc przycisku SET. Analogicznie postpujemy podczas wprowadzania daty. Przed dokonywaniem jakichkolwiek ustawie zalecam skasowanie pamici. Dokonujemy tego poprzez rwnoczesne wcinicie klawiszy TIME iDATE wtrybie gwnym programu (podczas prezentacji godziny idaty). Nastpnie naciskamy SET (->). Po skasowaniu zawartoci pamici urzdzenie przejdzie do trybu gwnego. Aby przej do trybu ustawiania zdarze, naley pozytywnie odpowiedzie na pytanie postawione przez sterownik po naciniciu klawisza SET (->). Kiedy na wywietlaczu pojawi si napis Nastpne..., to oznacza, e wpamici nie znajduj si dalsze/adne ustawienia. Naley wwczas nacisn klawisz SET (->), po czym urzdzenie przejdzie do trybu pobierania danych okrelonych przez nas zdarze. Naley teraz wpisa dane, oktre poprosi sterownik. Po zakoczeniu tej operacji pojawi si napis *** OK! ***. Teraz moemy przej do trybu gwnego. Od teraz nasze urzdzenie (np. AGD) bdzie obsugiwane przez nasz sterownik. Moemy rwnie dopisywa kolejne cykle zacz/wycz (po naciniciu klawisza SET (->)). Tak wyglda tryb programowania urzdzenia. Proste? Jeeli zdecydujemy si ponownie przej do trybu ustawie, nie przywita nas ju napis Nastpne.... Zamiast niego pojawi si tam godzina zaczenia pierwszego wprowadzonego przez nas cyklu zacz/wycz, aprzed ni stosowny numerek kolejnoci wprowadzenia. Teraz moemy dokona korekty wpro-

WYKAZ ELEMENTW
Rezystory R1, R15...R17: 1k R2...R6: 100 R7...R14: 220 PR1: potencjometr napytkowy miniaturowy 4,7k Kondensatory C1: 2200F/25V C2: 100nF C3...C5: 33pF C6: 2,2F/16V Pprzewodniki D1...D4, D6, D7: 1N4148 D5: mostek prostowniczy 1A/50V US1: AT89C4051 zaprogramowany US2: PCF8583 US3: AT24C04 US4: 7805 Q3...Q6: BT136 Q7...Q10: optotriak MOC3020 Rne Q1: rezonator kwarcowy 11,059 MHz Q2: rezonator kwarcowy zegarkowy 32768 Hz TR1: transformator TS2/16 FUSE 1: bezpiecznik 100 mA FUSE 2...5: bezpiecznik 3A DP1: wywietlacz LCD 16*2 JP2, JP3: goldpin 3*1 S1S3: przycisk typu microswitch Bat 1: akumulatorek 3,6V

Rys. 3. Schemat montaowy pytki zasilacza

znale si na ciance obudowy. Na triaki zalecam zaoenie radiatora. Jeeli chcemy uy wywietlacza zpodwietlaniem, konieczne jest zastosowanie radiatora rwnie przy stabilizatorze. Tak naprawd wystarczy kawaek aluminiowej bd miedzianej blaszki.

wszystkich 25 ustawie, zajmuje procesorowi troch czasu, dlatego te zaczanie/wyczanie odbywa si moe zlekkim opnieniem (kilka sekund). Niemniej jednak, moe bardziej zaawansowani ode mnie programici poradz sobie ztym winny, szybszy ibardziej wydajny sposb?

Procedura obsugi cykli zacz/wycz


Jak ju wspomniano, dane dotyczce cykli zacz/wycz przechowywane s wnieulotnej pamici EEPROM. Wykorzystano tutaj 250 bajtw tej pamici. Dzielc t liczb przez dziesi, otrzymamy wynik 25 moliwych cykli zacz/wycz. Dlaczego tak? Ot do prawidowego obsugiwania cykli (zdarze) potrzebne s nastpujce dane: 1. Godzina wczenia 2. Minuta wczenia 3. Godzina wyczenia 4. Minuta wyczenia 5. Dzie zdarzenia 6. Miesic zdarzenia 7. Numer sterowanego urzdzenia atwo wic zauway, e dane jednego cyklu zajmuj 7bajtw. Dzielc pami na 25 zdarze, otrzymamy 10 bajtw, gdzie pozostae trzy pozostaj wolne. Moe je wykorzysta dociekliwy konstruktor, rozbudowujc urzdzenie onp. obsug dni tygodnia itp. Za obsug zdarze odpowiedzialna jest ptla gwna programu, azwaszcza fragment przedstawiony na list. 1. Poniewa procedura ta wykonywana jest wptli, wszystkie dane sprawdzane s na bieco. Jeeli wszystkie warunki naszego ustawienia odpowiadaj aktualnej godzinie idacie, dochodzi do wykonania odpowiedniego zdarzenia. Niestety sprawdzenie tych wszystkich warunkw, dla

Programowanie sterownika
Teraz nadszed, zapewne wyczekiwany przez wielu konstruktorw, moment uruchomienia naszego cacka. Po podczeniu poprawnie zmontowanego ukadu na wywietlaczu pojawi si powitalny komunikat wpostaci mojego adresu email. Nastpnie ukad przejdzie do wykonywania gwnego programu. Na wywietlaczu pojawi si informacja oczasie oraz dacie ioile nie zaoylimy jeszcze odpowiedniego jumpera akumulatorka, bdzie to godzina 00:00:00 oraz data 01.01. Po tej niezwykle upojnej chwili wpatrywania si wwywietlacz dobieramy si do klawiatury! Wszelkich manipulacji dokonujemy za pomoc trzech przyciskw: TIME, DATE, SET. Po naciniciu przycisku TIME (<-) sterownik zapyta nas, czy chcemy zmodyfikowa godzin. Analogicznie po naciniciu przycisku DATE - zapyta, czy chcemy ustawi dat. Aby dokona zmiany czasu albo daty, naley na zadane pytanie odpowiedzie klawiszem SET (->). Mona rwnie odpowiedzie negatywnie iwrci do ptli gwnej programu (opcja ESC) klawiszem: <-. Przy ustawianiu zegara licznik sekund zostanie wyzerowany. Teraz moemy przej do ustawiania godzin iminut. Su do tego wtym momencie odpowiednio przyciski TIME iDATE. Po ustawieniu prawidowej

wadzonych przez nas uprzednio danych (klawisz SET (->)). Wybierajc opcj NEXT (klawisz DATE), moemy natomiast przej do trybu wprowadzania kolejnych zapisw. Teraz jeszcze jedna bardzo wana sprawa odnonie wpisywania cykli zacz/wycz. Mianowicie bardzo czsto za pomoc nieskomplikowanego triku programistycznego mo-

List. 1. Obsuga cykli zacz wycz


Licznik = Licznik + 10 X = Licznik + 1 : Call Read_eeprom(x, Value) If Minuty = Value Then X = Licznik + 2 : Call Read_eeprom(x, Value) If Godziny = Value Then X = Licznik + 3 : Call Read_eeprom(x, Value) If Dni = Value Or Value = 32 Then X = Licznik + 4 : Call Read_eeprom(x, Value) If Miesiace = Value Or Value = 13 Then X = Licznik + 9 : Call Read_eeprom(x, Value) Call Wlacz_urzadzenie End If End If End If End If X = Licznik + 5 : Call Read_eeprom(x, Value) If Minuty = Value Then X = Licznik + 6 : Call Read_eeprom(x, Value) If Godziny = Value Then X = Licznik + 9 : Call Read_eeprom(x, Value) Call Wylacz_urzadzenie End If End If If Licznik = 250 Then Licznik = 0

Elektronika Praktyczna 7/2003

89

PROJEKTY CZYTELNIKW
na wznaczny sposb rozszerzy funkcjonalno danego urzdzenia mikroprocesorowego. Tak te stao si itym razem. Tryb roczny pozwala na bardzo precyzyjne sterowanie urzdzeniami. Jednak przyznacie, e wprzypadku, gdy chcemy, aby dane zdarzenie zachodzio codziennie otakiej samej godzinie, bezcelowym izapewne bardzo mczcym byoby wprowadzanie wszystkich dni roku. Zreszt dni mamy 365, austawie tylko 25. Ponadto moe rwnie zaistnie konieczno wczania danego urzdzenia takiego samego dnia kadego miesica albo odwrotnie, kiedy chcemy, aby urzdzenie wczao si codziennie podczas wybranego miesica. Nasz sterownik umoliwia takie triki! By moe podczas wprowadzania cykli zacz/wycz natkne si, Czytelniku, na dwa plusy ++, ktre pojawiaj si po przekroczeniu dnia 31 oraz po przekroczeniu 12 miesica. Te plusy oznaczaj, e ten argument bdzie ignorowany. atwo wic zauway, e wprzypadku ignorowania dni oraz ignorowania miesicy zdarzenie odbywa si bdzie codziennie, wprzypadku ignorowania dni - cykle wykonywane bd codziennie, oraz wprzypadku ignorowania miesicy - co miesic danego dnia. gdzie zamieszczane bd kolejne wersje oprogramowania (wraz zdanymi oautorach oczywicie). Jasnym jest chyba fakt, e caa inteligencja zaley od programu procesora. Sprzt nie gra tu wicej roli, zwaszcza jeeli chodzi oprzeznaczenie ukadu. Bd wic czeka na wszelkie propozycje irozwizania programowe nowych zastosowa urzdzenia. Niestety zblem serca musz stwierdzi, e te 4kB pamici to troch mao (dla mnie iBascoma). Moe uda Wam si znacznie ograniczy dugo kodu poprzez wykorzystanie innego kompilatora (np. jzyka C, ewentualnie ASM)? Przyznaj, e program, ktry udostpniem, to nie jest artystyczne dzieo, ale wystarcza do prawidowego funkcjonowania urzdzenia. Jednak ca zabaw zwizan zsortowaniem pozostawiam Wam, drodzy Czytelnicy. Miej zabawy! Mariusz Ciszewski elemid@wp.pl

Aktualizacja oprogramowania
Jeeli zainteresowanie ukadem bdzie due, aprogramici aktywni, zao stron WWW sterownika,

Od redakcji: przygotowane przez autora projektu pytki drukowane wymagaj modyfikacji polegajcej na pogrubieniu cieek doprowadzajcych prd do obcienia, warto take pogrubi do co najmniej 20...30 milsw pozostae cieki - uatwi to wykonanie pytek wwarunkach domowych. Tak zmodyfikowane wzory pytek publikujemy na wkadce ina CD-EP7/ 2003B.

90

Elektronika Elektronika Praktyczna Praktyczna 7/2003 2/98

Vous aimerez peut-être aussi