50 (140)

50 (140)



E


LEKTRONIKA


B000



takcie I zarówno wyjście A, jak i wyjście B znajdują się w stanie wysokim. Zaczynamy kręcić enkoderem i wyjścia przechodzą w stan 2, gdzie wyjście A jest w stanie niskim, a wyjście B pozostało w wysokim. Takich „przejść” możemy wyróżnić po cztery dla każdego kierunku. Zostało to przedstawione w tabeli Rys. 2 1. Sposobów na programo- -


, ,1 ,2,


Kręcenie w lewo

ii r i ii i i i i i i i i i

i i i i

i i i i

i i


B


i

!    i

t    i

i ■'. 4i i    i


i i i i i i i i


iiii    i    i    i    i    i    i    i    i

i i i t    i    i    i    r    i    i    i    i


i i i i

i i i i i i

i i i i i i i i i i i i i i i i i i


wą obsługę enkodera jest wiele. Ja Tak- 1 postanowiłem stablicować wszystkie osiem możliwości, a następnie porównywać w trakcie trwania programu z aktualnymi danymi. Możemy to zobaczyć na listingu 1. Funkcja ,,ktora_strona()” jest wywoływana za każdym razem, gdy nastąpi zmiana na PIND 2 lub PIND 3, czyli na pinach, do których podłączony jest enkodcr.

Zmienna nowy_stan w zerowym i pierwszym bicie przechowuje aktualny stan enkodera. natomiast zmienna stary_stan przechowuje w bicie drugim i trzecim stan poprzedni enkodera. Po „scaleniu” tych dwóch danych otrzymujemy informację, którą następnie porównujemy z danymi zapisanymi w tabelach lewo[] i prawo[].

Program jest napisany w sposób, który moim zdaniem jest najbardziej odporny na zawieszenia. Wszystko odbywa się w przerwaniu co około dwie milisekundy. Nie ma w nim żadnych poważniejszych zapętleń. W zależności od tego, w jakim stanie aktualnie znajduje się układ, wybierane są instrukcje do wykonania poprzez polecenie „switch(stan);”. Mimo wszystko nad całością czuwa pies łańcuchowy - czyli znany i łubiany watchdog ©. Stan licznika watchdoga jest zerowany w przerwaniu,


1

2

Kierunek

A

B

A

B

1

1

0

1

lewo

0

1

0

0

lewo

0

0

1

0

lewo

1

0

1

1

lewo

1

0

0

0

prawo

0

0

0

1

prawo

0

1

1

1

prawo

1

1

1

0

prawo



Rys. 3


uint8_t lewo[] = {OblOll, ObllOl, ObOlOO, ObOOlO}; uint8 t prawo[] = {ObOlll, OblllO, OblOOO, ObOOOl};

// Funkcja, która rozpoznaje w którą stronę przekręcono enkoder i odpowiednio wywołuje funkcję zwieksz__stan () lub zmniejsz stan() void która strona()

{

uint8__t nowy_jstan = (PIND » 2) & Obli;

for(uint8_t x=0; x<=3; x++)

{

if ( (nowy_stan | stary_stan) == lewo[x]) zmnie jsz_stan () ; if((nowy stan j stary stan) = prawo[x]) zwiększ stan();

}


Rys. 4


Bs-roipte Electron** AVR proyr.unmcr

rtn kJftt Ok>

O ' >l|    o c? o

Manutactor Atmel Ctup    ATtrrty?3J3

IkKS&CHkhH

rmetłftihC'

Vei*odOk

main bar*


FlfwKRÓM | EEPROM lock end Fyse Bita


_|Ć 1 DcfcusMfro Ósóblej

1 Ew*££f‘r?tlM i/i*ncrior;

13 SF1 iMubkd

0 Wfllr.h«j} IO.W łtwiys Wi or«Wc’J

hcaeoocw

l f irtęngl R ea> eratbd


czego me powinno się robić, jednak uważam, że

sposób pisania    __ _

programu to usprawiedliwia. Rezystor R16 podciąga wejście reset do stanu wysokiego, żeby układ był odporny na ewentualne zakłócenia i tym samym przypadkowy reset.

Montaż i uruchomienie

Płytka drukowana (rysunek 3) nie jest zbyt skomplikowana, więc nie powinno być problemów' z montażem elementów. Warto zacząć od najniższych, czyli zworek, a zakończyć na wiożeniu mikroprocesora do podstawki. Wcześniej oczywiście trzeba go zaprogramować programem, który możemy ściągnąć z Elportalu lub z mojej strony www.moja-elektronika.lua.pl. Gdy już zaprogramujemy mikroprocesor, nic zapomnijmy o poprawnym skonfigurowaniu fusebitów; najważniejsze - CKSEL3...0: 0100, BODLEVEL:100, WDTONrO, CKDIV8:1. Dodatkowo zamieszczam na rvsunku 4 zrzut z ekranu z BASCOM-owego programatora. Ustawienie fusebitów ma bardzo duże znaczenie dla działania programu, dlatego należy zwrócić szczególną uwagę na prawidłowe ich zaprogramowanie! Szczególnie w'ażne jest wyłączenie dzielenia taktów' kwarcu, ponieważ potrafi to przysporzyć dziwnych problemów.

Układ można zasilać napięciem 6-24VDC. Przy napięciach powyżej 10Y należy dodać


stary stan = PIND & ObllOO; }


Listing 1


radiator na stabilizator U l. Aby po poprawnym zmontowaniu móc korzystać z „Sejfowego zamka elektronicznego II”, trzeba najpierw zaprogramować swój kod. Aby to uczynić, odłączamy układ od zasilania, zakładamy jum-perck Jl i trzymając przycisk SI, włączamy zasilanie. Na wyświetlaczu powinno pojawić się „0” oraz powinny zaświecić się obydwie kropki. Teraz, kręcąc enkoderem, wybieramy nasze sześć liczb, każdą potwierdzając przyciskiem SI. Po wpisaniu wszystkich, zgasną kropki na wyświetlaczach i zamek przejdzie w normalny tryb. Oczywiście kod zapisywany jest w pamięci nieulotnej EEPROM, dzięki czemu nawet po odłączeniu zasilania będzie on zapamiętany. Teraz możemy, w ramach testu, wpisać nasz kod, analogicznie jak w trybie programowania, potwierdzając każdą liczbę przyciskiem SI. Jeżeli kod będzie nieprawidłowy, zgaśnie aktualnie wyświetlana liczba i zaświeci się lewa kropka. Taki stan będzie trwał około 12 sekund. Jeśli kod będzie poprawny, to także zgaśnie liczba, ale zaświeci się prawa kropka oraz zostanie podane napięcie 5V na wyjście OUT. To, na jak długo zostanie podane to napięcie, zależy od stanu jumperka Jl. Jeśli będzie on założony, będzie to trwało około 4s. Natomiast jeżeli Jl będzie ściągnięty, napięcie będzie


Konwerter USB <->RS232


§


www.sklep.avt.pl

■:

IVT-KófpomiFSp. z o.o., 03-197 Warszawa, ul. Leszczynowa 11 el. 022 257 84 50. fax 022 257 84 55, e-mail: handlowv@avt.pl




Wyszukiwarka

Podobne podstrony:
SNB14115 Uważam, że zarówno psychologia jak i pedagogika muszą się wznieść na wyższy poziom wiedzy m
Zarówno „autorytaryzm" jak i „totalitaryzm" kojarzą się w głównej mierze z brakiem swobód
Wstęp Działalność gospodarcza, w skali zarówno makroekonomicznej, jak i mikroekonomicznej, składa si
img069 48 Rozdział III. Źródła prawa W państwie rzymskim lud (zarówno patrycjusze, jak i plebejusze)
528 Rośliny ze stanowisk naturalnych Zarówno kwiaty jak i ziele suszy się w warunkach suszami natura
Jeśli EXT jest połączone z Vdd> wyjście oscylatora jest w stanie wysokiej impedancji, co pozwala
Zarówno w piśmiennictwie jak i w praktyce uznaje się, że ustawodawcy przy określaniu wysokości odszk
IMAG1190 - zarowno tradycyjną, jak i współczesną - zbhza się natomiast do strategii narracyjnej stos
346,347 zarówno narracyjnych, jak i dramatycznych. Zdarza się mianowicie — współcześnie nawet bardzo
do wysokości oraz szerokości ramion pacjenta, jak również znajdują się tutaj ważne elementy sterowan
140 projektów małych ogrodów (61) tralnym punkcie znajduje się swego rodzaju „sofa" z podobnego
2012 10 07 45 50 Środki pieniężne to określone w ustawie aktywa pieniężne, znajdujące się w

więcej podobnych podstron