wyklad 5.pdf

(141 KB) Pobierz
54842351 UNPDF
Hit roku 2000
BASCOM College
Wykład 5
Serdecznie witam Studentów i Sympatyków
BASCOM College na kolejnym wykładzie,
który zmuszony jestem rozpocząć od przepro−
sin. Jak zapowiadałem, wykład ten miał być
poświęcony tematowi obsługi magistrali I 2 C,
na który z pewnością wszyscy czekacie z nie−
cierpliwością. Niestety, z rozmaitych powo−
dów zmuszony jestem przełożyć ten temat na
następny miesiąc, a dzisiaj zajmiemy się kil−
koma innymi, równie ważnymi sprawami.
Temat główny naszego wykładu będzie
nieco nietypowy. Prawdę mówiąc, lekcja ta
jest bardziej rozszerzonym działem “Z ostat−
niej chwili”, niż typowym wykładem. Mamy
bowiem bardzo ciekawe sprawy do omówie−
nia, które pojawiły się w “rozkładzie zajęć”
dopiero w dniu dzisiejszym. Zanim jednak
przejdziemy do omawiania dzisiejszego te−
matu, jak zwykle kilka spraw porządkowych,
głównie związanych z nadchodzącą od Was
korespondencją. Otrzymałem sporą ilość li−
stów, głównie zawierających pytania i prośby
o dodatkowe informacje i rozwiązanie drę−
czących Was problemów. Chciałbym jeszcze
raz podkreślić, że KAŻDY list e−mail, który
otrzymuję, jest przeze mnie czytany i anali−
zowany. Jednak niejednokrotnie nie jestem
w stanie na wszystkie listy odpowiedzieć,
ponieważ prawdopodobnie nie mógłbym
wówczas robić już nic innego. Mam do Was
jeszcze jedną prośbę: starajcie się precyzyj−
nie formułować Wasze pytania. Podam Wam
przykład dwóch listów, oczywiście bez wy−
mieniania nazwisk Autorów:
“Nie mogę uruchomić klawiatury szesna−
stkowej KIT 2503. Nie działają SDA i SCL.
Gdzie jest "pies pogrzebany" ?”
“Szanowny Panie. Emulator, płytka testo−
wa, programator zmontowane z zestawów.
Symulacja sprzętowa nie działa. Emulator te−
stowany z wyswietl. 7−segm. I programem te−
stującym z 3/00 EdW. Bez efektu. Symulacja
programowa (na monitorze) funkcjonuje po−
prawnie. Próba z płytką testuj. i klawiaturą
szesnastk. także nieudana. PCF typu
8574P (?). Wymieniłem PCF−y z klawiatury
do emulatora. Test j.w. Bez efektu. Całym
czasem wyświetlacz 7−segm. dołączony do
emulatora minimalnie świeci (widzialne
praktycznie tylko w ciemności). Port drukar−
ki sprawny − drukarka działa normalnie.
Wszystko wskazuje na brak komunikacji
z komputerem. Program instalowany dwu−
krotnie − to samo. Skonfigurowany zgodnie
z 4/00 EdW. Programator jeszcze nie testo−
wany. Proszę o pomoc. Dziękuję.” /pisownia
i składnia jak w oryginale listów/
Moi Drodzy, co ja mam z takimi fantami
robić? Nie jestem jasnowidzem i na podsta−
wie takich dostarczonych mi danych mogę
jedynie stwierdzić, że obaj Koledzy popełni−
li jakieś błędy w montażu układów albo
w konfiguracji oprogramowania. Podobnych
listów, nie zawierających żadnych konkret−
nych informacji otrzymałem więcej. Pamię−
tajcie, że chyba najważniejszą cechą progra−
misty jest umiejętność precyzyjnego wyraża−
nia swoich myśli i dostarczania “do obróbki”
WSZYSTKICH potrzebnych danych!
Powiedzcie mi także, co mam zrobić
z nadsyłanymi mi, długimi nieraz na kilka
stron listingami, w dodatku nie opatrzonymi
komentarzami? Otrzymałem kilka takich
“wypracowań” i nawet ... ich nie przejrza−
łem, ponieważ przeanalizowanie długiego li−
stingu, napisanego przez kogoś, wymaga
znacznie więcej pracy, niż samodzielne napi−
sanie całego programu od początku.
A zatem, reasumując: bardzo Was proszę:
piszcie operując konkretami, a nie enigma−
tycznymi sformułowaniami typu “nie działa”
i przysyłajcie tylko “podejrzane” fragmenty
listingów.
specjalnie dla Czytelników EP i EdW, wersję
DEMO! Podobnie jak poprzednia edycja
BASCOM8051 SEfEP, z której korzystali−
ście do tej pory, wersja ta nie różni się ni−
czym od komercyjnego BASCOM−a. Jedy−
nym ograniczeniem jest długość kodu wyni−
kowego, wynosząca 2kB. A zatem, w przy−
padku stosowania procesorów ‘2051 nie ist−
nieją w tym programie żadne ograniczenia!
Najnowsza wersja naszego oprogramowa−
nia dostępna jest już pod adresem:
www.ep.com.pl/ftp
Jest to jedyne miejsce, z którego można
ściągnąć ten program. Powszechnie dostępna
wersja Demo ma ograniczenie kodu wyniko−
wego do 1kB, co uniemożliwia pełne wykorzy−
stanie obszaru pamięci ROM procesora ‘2051.
Drugą nowością, jaką otrzymaliśmy od
MCS Electronics, jest program do automa−
tycznego upgrade’owania BASCOM−a 8051
i AVR. Niestety, z oczywistych względów
ten bardzo wygodny w użyciu ( rysunek 1 )
program obsługuje jedynie wersję komercyj−
ną BASCOM’a. Można go ściągnąć spod na−
stępującego adresu:
Rys. 1
Nowa wersja BASCOM 8051
DEMO “Special Edition
for Elektronika Praktyczna”
Zaledwie tydzień temu ujrzała światło dzien−
ne nowa edycja profesjonalnej wersji BA−
SCOMa 8051, a już mamy, przeznaczoną
http://www.mcselec.com/download/
bascom−8051/autoupd.zip
Omówmy teraz w największym skrócie
nowości, jakie stworzył dla nas pan Mark Al−
berts z MCS Electronics. Pierwsze z nich
widoczne jest już po uruchomieniu programu.
22
Elektronika dla Wszystkich
54842351.012.png 54842351.013.png 54842351.014.png
 
BASCOM
Poniżej paska narzędziowego umieszczone
zostało nowe okienko, w którym można wy−
świetlić spis wszystkich etykiet i podprogra−
mów wywoływanych przez przerwania ze−
wnętrzne i pochodzące z timerów ( rysunek
2 ). Jest to kolejne ułatwienie, znacznie przy−
spieszające pisanie długich, skomplikowa−
nych programów. Kliknięcie na jedną z wy−
świetlonych w okienku etykiet powoduje na−
tychmiastowe przejście do interesującego nas
fragmentu programu.
Nowych poleceń i najróżniejszych dodat−
ków do już istniejących komend jest sporo i nie
sposób omówić je podczas jednej, nieco
skróconej lekcji. Chciałbym więc bardziej
szczegółowo zająć się poleceniem, które
wprawdzie istniało już w poprzedniej wersji,
ale jego sposób działania pozostawiał jeszcze
wiele do życzenia. Obecnie wszystkie “plu−
skwy” zostały usunięte i możemy przystąpić
do poznawania polecenia, którego z pewnością
nie znajdziecie w żadnym innym języku pro−
gramowania. Mam tu na myśli bezpośrednią
obsługę serwomechanizmów modelarskich.
O serwome−
chanizmach pi−
sałem już wielo−
krotnie, pozwoli−
łem sobie także
zaprezentować
kilka projektów
wykorzystują−
cych te urządze−
nia, będące zna−
komitym “prze−
łożeniem” pomiędzy elektroniką i mechaniką.
Przypomnijmy więc w największym skrócie,
że serwomechanizm sterowany jest impulsami
prostokątnymi o czasie trwania typowo od 1 do
2 ms. Częstotliwość powtarzania impulsów nie
jest krytyczna i powinna wynosić około 50Hz.
W zależności od szerokości impulsów podawa−
nych na wejście, wał serwa ustawia się pod ką−
tem proporcjonalnym do ich długości.
Kąt obrotu wału serwa wynosi typowo
90 O , ale praktyka wykazała, że stosując im−
pulsy o niestandardowej długości (od 0,5 do
3 ms.) można go zwiększyć do 180 O . Pomi−
mo małych wymiarów moment napędowy
serwomechanizmu jest bardzo duży i wynosi
w przypadku serwa standardowego aż
3,5kg/cm, a w przypadku serw wyczyno−
wych może być o rząd wielkości większy.
Wszystkie te cechy serwomechanizmów
sprawiają, że są one wręcz niezastąpione
w konstrukcjach amatorskich. Wszędzie tam,
gdzie trzeba poruszyć jakiś przedmiot ze
znaczną siłą czy obrócić jakiś element o ścisłe
określony kąt, samodzielna budowa układu
elektromechanicznego traci jakikolwiek sens.
Najprostszy przykład: budowa części elektro−
nicznej zamka szyfrowego przy obecnym sta−
nie elektroniki nie przedstawia najmniejszych
trudności. Jako element mechaniczny stoso−
wane są zwykle tzw. rygle elektromagnetycz−
ne, które można otworzyć jednym kopnię−
ciem. Natomiast sterowane z procesora serwo
może bez najmniejszych problemów poru−
szać nawet bardzo ciężką i solidną zasuwę.
przez nas procesory ‘X051 posiadają jedynie
15 aktywnych wyprowadzeń. Jednak kiedy
“przesiądziemy się” na większe procesory, ta
liczba serwomechanizmów może okazać się
przydatna, np. do budowy robota czy skom−
plikowanego modelu.
Pierwszą czynnością, jaką musimy uczy−
nić, jest poinformowanie kompilatora o licz−
bie serw, jakich zamierzamy używać, kącie,
o jaki mają obracać się wały serw przy zmia−
nie wartości przypisanej każdemu serwome−
chanizmowi zmiennej, o 1 i do których pi−
nów procesora mają zostać dołączone po−
szczególne serwomechanizmy. Czynimy to
za pomocą ciągu dyrektyw:
Rys. 2
CONFIG SERVOS = [liczba zastosowanych
serw], RELOAD [wartość określająca skok
wału serwa], SERVO1 = [pin portu], SERVO2
= [pin portu] ......., SERVO16 =[pin portu]
Na pasku narzędziowym pojawił się nowy
przycisk: “SAVE DESKTOP” ( rys. 3 ). Po je−
go naciśnięciu program zapamiętuje aktual−
nie otwarte okna, tak że po ponownym uru−
chomieniu BASCOM−a znajdziemy się od
razu w takim środowisku, jakie opuściliśmy
robiąc sobie przerwę w pracy. Funkcja bar−
dzo użyteczna, szczególnie podczas opraco−
wywania kilku programów naraz i przy kom−
pilacji jednego programu z kilku źródeł.
Realizacja obsługi serwomechanizmów
przez typowe procesory rodziny ’51 nie jest
zadaniem prostym. Powód jest oczywisty:
większość tych układów jest po prostu zbyt
wolna, aby precyzyjnie odmierzać czas
z zakresu 0,5 ... 3 ms. Dlatego też wał ser−
womechanizmu nigdy nie będzie poruszał
się idealnie płynnie, ale zawsze mniejszymi
lub większymi (skokami), których liczba,
przypadająca na pełny obrót wału napędo−
wego serwa zależna jest właśnie od często−
tliwości zegara procesora. Nie ma naj−
mniejszego sensu wdawać się w tym miej−
scu w skomplikowane obliczenia. Podczas
testowania na prośbę Marka poleceń zwią−
zanych z obsługą serwomechanizmów wy−
konałem serię prób, z których wynikły na−
stępujące wnioski:
Minimalna wartość parametru RELOAD
dla procesora ‘2051 z rezonatorem kwarco−
wym 11059200 Hz wynosi 30. Z kolei ma−
ksymalna wartość zmiennej określającej po−
łożenie wału serwa może wynosić 70, a mi−
nimalna 15. Wynika z tego, że przy wyko−
rzystywaniu pełnego kąta obrotu wału ser−
womechanizmu skok będzie wynosił dokła−
dnie 3,2 stopnia. Nie jest to być może naj−
większa precyzja, ale nic więcej z typowym
kwarcem nie osiągniemy. Przeprowadziłem
także próby z rezonatorami kwarcowymi
o większej częstotliwości. Przy częstotliwo−
ści oscylatora równej 24MHz osiągnąłem,
zgodnie z przewidywaniami, ponad dwu−
krotnie większą precyzję poruszeń wału ser−
womechanizmu, czyli skok wynoszący oko−
ło 1,5 stopnia.
Warto teraz sprawdzić działanie obsługi
serwomechanizmu w praktyce. Niestety, na
naszej płytce testowej AVT−2500 nie przewi−
działem specjalnego złącza do dołączenia
serwa. Powód tego “zaniedbania” był prosty:
kiedy projektowałem tę płytkę, nikomu
nawet nie śniło się o wbudowanych w
Rys. 3
W okienku wyświetlania informacji
o skompilowanym programie (PROGRAM
\ SHOW RESULT) dodany został także no−
wy przycisk: “COPY”. Jego kliknięcie po−
woduje przeniesienie całej zawartości pli−
ku informacyjnego do schowka i jego
późniejszą edycję za pomocą dowolnego
edytora tekstowego. Posiadacze drukarek
barwnych mogą mieć także powód do za−
dowolenia: w najnowszej wersji BA−
SCOM−a możliwe jest drukowanie listin−
gów i informacji o pracy kompilatora
w kolorze.
Jak dotąd omówiliśmy jedynie nowe do−
datkowe “fajerwerki” BASCOM−a, niesły−
chanie ułatwiające i uprzyjemniające pracę,
ale nie niezbędne do napisania poprawnego
programu. Myślę więc, że jesteście ciekawi,
jakie nowe polecenia zostały dodane do naj−
nowszej wersji naszego programu.
Sterowanie serwomechanizmami
z poziomu języka MCS BASIC
Do wyjść procesora może być dołączonych
maksymalnie 16 serwomechanizmów. W na−
szym przypadku jest to liczba gwarantowana
niejako “na zapas”, ponieważ stosowane
Elektronika dla Wszystkich
23
54842351.001.png 54842351.002.png 54842351.003.png 54842351.004.png 54842351.005.png
BASCOM
BASCOM−a poleceniach obsługi serwome−
chanizmów!
A zatem będziemy musieli dołączyć ser−
wo do istniejących już na płytce wyprowa−
dzeń. Kabelek dołączony do serwa ma trzy
przewody: przewód czarny dołączamy do
masy, czerwony do plusa zasilania (+5VDC),
a żółty do dowolnego wyjścia procesora,
z wyjątkiem pinów OPEN COLLECTOR
(P1.0 i P1.1), np. do pinu P1.7.
Musimy teraz napisać sobie króciutki pro−
gramik testowy i po skompilowaniu zapro−
gramować nim procesor. Niestety, jakiekol−
wiek próby testowania tego programu na
emulatorze sprzętowym skazane są, z oczy−
wistych przyczyn, na niepowodzenie.
Rys. 4
przerwań zosta−
nie zawieszona
na czas genero−
wania sygnału
akustycznego.
Parametr ten
musimy stoso−
wać z najwięk−
szą rozwagą, po
dokładnej anali−
zie celu stoso−
wania przerwań w pisanym programie. Jest
oczywiste, że jeżeli przerwania stosowane
są np. do generacji impulsów sekundowych
w zegarze czasu rzeczywistego, to o jakim−
kolwiek zawieszaniu ich obsługi nie może
być mowy, pomimo że po zakończeniu ge−
neracji dźwięku obsługa przerwań jest na−
tychmiast przywracana.
Przykładowo, polecenie SOUND może
mieć postać:
Polecenia związane z obsługą serwome−
chanizmów nie są jedynymi dodanymi do no−
wej wersji BASCOM−a. Jak dotąd nie oma−
wialiśmy jeszcze bardzo użytecznego polece−
nia SOUND, głównie dlatego, że napotkałem
na problemy z jego wykonywaniem w pro−
gramach wykorzystujących przerwania. Ge−
nerowany dźwięk był zniekształcony, przery−
wany i wolałem zaczekać na rozwiązanie
przez Marka tego problemu. Obecnie kłopo−
ty z generowaniem sygnałów akustycznych
zostały usunięte i możemy już zapoznać się
z poleceniem:
$crystal = 11059200
Config Servos = 1 , Reload = 30 , Servo1 = P1.7
Dim R As Byte
Do
For R = 15 To 70
Servo1 = R
Waitms 2
Next R
For R = 70 Downto 15
Servo1 = R
Waitms 2
Next R
Loop
SOUND P1.1 , 10000, 10 [NOINT]
Należy pamiętać, że po zakończeniu gene−
racji sygnału akustycznego wyjście użytego
do tego celu portu pozostaje w stanie niskim !
Jako przetwornika elektroakustycznego
można użyć “blaszki” piezo, najlepiej
w obudowie wzmacniającej siłę generowane−
go dźwięku. Na rysunku 5 pokazany jest
prosty schemat takiego układu. Możliwe jest
też zastosowanie miniaturowego głośniczka
(dołączonego tylko do pinów portu P1!)
SOUND pin, czas trwania, częstotli−
wość [,NOINT]
Po uruchomieniu programu wał napędo−
wy serwomechanizmu powinien poruszać
się, wykonując obroty o 180 O .
Tak napisany program służy jedynie celom
poznawczym i nie posiada większych warto−
ści użytkowych. Aby do końca przekonać Stu−
dentów BASCOM College o użyteczności
serwomechanizmów, podam Wam tylko jeden
przykład. Wyobraźmy sobie, że konstruujemy
układ zamka elektronicznego, np. otwierane−
go za pomocą “magicznych” tabletek DAL−
LAS, z którymi zapoznamy się w najbliższej
przyszłości. Hardware i program są sprawą
prostą, ale jak wykonać solidne zamknięcie do
drzwi domu? Przy zastosowaniu serw stero−
wanych z mikroprocesora zaprogramowanego
z wykorzystaniem BASCOM−a sprawa jest
banalnie prosta: wał napędowy serwa wyko−
rzystujemy jak mimośród, łącząc go za pomo−
cą sztywnego stalowego drutu z dowolnie
ciężką zasuwą. Natomiast w programie,
w momencie, kiedy chcemy, aby zamek się
otworzył, piszemy po prostu:
Zanim jednak przejdziemy do szczegóło−
wego opisu polecenia SOUND, musimy wy−
jaśnić sobie pewną sprawę. Polecenie to
w żadnym wypadku nie może służyć do ge−
nerowania sygnałów o precy−
zyjnie określonej częstotliwo−
ści, czy też, tym bardziej, do
tworzenia “kompozycji mu−
zycznych”. Jego przeznacze−
niem jest tworzenie “some noi−
se”, jak napisał Mark w helpie,
czyli generowania prostych sy−
gnałów akustycznych, o z grub−
sza określonej częstotliwości
i czasie trwania.
Wydając polecenie SOUND
musimy określić, do jakiego
wyprowadzenia procesora do−
łączony będzie przetwornik
elektroakustyczny, którym mo−
że być element piezo lub mi−
niaturowy głośniczek. Następ−
nie określamy liczbę impulsów, z których
ma się składać generowany dźwięk. Liczbę
impulsów, czyli wartość wpływająca na czas
trwania dźwięku, może być liczbą z zakresu,
od 1 (trochę bez sensu) do 326768. Ostat−
nim parametrem potrzebnym do wygenero−
wania dźwięku jest jego, z grubsza określo−
na częstotliwość, czyli informacja o tym, co
ile mikrosekund stan na wyjściu wybranego
pinu ma zmieniać się na przeciwny.
Parametrem opcjonalnym jest nowo do−
dane polecenie NOINT. Dołączenie go do
polecenia SOUND spowoduje, że obsługa
Rys. 5
SERVO1 = 15
Natomiast polecenie:
To wszystko na dzisiaj. Zapraszam Was
teraz do przerobienia materiału zawartego
w ćwiczeniu, a następnie na otwarcie nowe−
go działu „
SERVO1 = 70
Projekty − 3000“, który z całą
pewnoscią spotka się z Waszym zaintereso−
waniem.
spowoduje obrót wału serwa o 180 O iza−
mkniecie zamka. Przebiegi na wyjściu proce−
sora, do którego dołączone powinno być wej−
ście serwomechanizmu, zostały pokazane na
rysunku 4 . Proste i użyteczne, nieprawdaż?
Zbigniew Raabe
e−mail: zbigniew.raabe@edw.com.pl
24
Elektronika dla Wszystkich
54842351.006.png 54842351.007.png 54842351.008.png 54842351.009.png
 
BASCOM
BASCOM Forum
Witam Panie Zbigniewie.
Zainspirowany pomysłem kolegi Artura
Krajewskiego postanowiłem podzielić się
swoim spostrzeżeniem. Sprawa dotyczy − oczy−
wiście wyświetlacza LCD.
' Program wyświetlający na LCD 1*16
' numer pozycji znaku.
' zmienna KOREKTA − dodanie offsetu o 8 pozycji
'UWAGA − funkcja LOCATE na pozycji Y
'dla Y =1 Locate działa do 9 znaku
'dla Y=2 Locate działa od 9 do 16 znaku
$sim
$noinit
Dim A As Byte
Dim X As Byte
Dim Korekta As Byte
Config Lcd = 16 * 1a
Cursor Off
Cls
For X = 1 To 8
Cls
Locate 1 , X
Lcd X
For A = 1 To 30
Next A
Next X
For X = 1 To 8
Cls
Korekta = X + 8
Locate 2 , X
Lcd Korekta
For A = 1 To 30
Next A
Next X
Sprawa ujawniła się, kiedy chciałem
zapisać funkcją LOCATE zmienną na pozy−
cji 10. Nic się nie pojawiło (źródło niżej):
"Bawiąc się" parametrami LOCATE,
wydaje mi się, że znalazłem na to "łatę"
podobną do "łaty" kol. Krajewskiego.
Krótko mówiąc, pierwsze 8 znaków wystaw−
iam przez LOCATE 1 , X, gdzie x od 1 do 8; drugie
8, czyli znaki od 9 do 16 pozycji, wystawiam przez
LOCATE 2 , X gdzie x od 1 do 8 (w programiku
Korekta czyli X zwiększona o 8 powoduje, że na
LCD pojawia się faktyczna pozycja znaku − cyfra
pierwsza z lewej dla numeracji od 10 do 16).
Działanie "łaty" przedstawia programik obok.
P.S.
1 . Może pan Mark powinien napisać osob−
ne funkcje dla wyświetlaczy 1*16.
2. Coraz bardziej widzę konieczność
powstania listy dyskusyjnej, jednak nie chcę
żeby Koledzy nie mający dostępu do
Internetu czuli się dyskryminowani.
pozostaję z szacunkiem
Krzysztof Pokorski
krzysztof_pokorski@elb2.pl
'Programik ujawniający błąd
'funkcji LOCATE
'Na P3.5 zapięta LED −sygnalizacja pracy
$sim
$noinit
Dim A As Byte
Dim X As Byte
Dim Korekta As Byte
Config Lcd = 16 * 1a
Cursor Off
Cls
For X = 1 To 80
Set P3.5
Cls
Locate 1 , X
Lcd X
For A = 1 To 30
Next A
Reset P3.5
For A = 1 To 30
Next A
Next X
Wejherowo, 9.07.2000
pojazdu i napęd. Silniki krokowe okazały się
niedokładne (choć pochodzą z tego samego
modelu stacji dysków, to pracują nierówno),
a ich mała prędkość obrotowa nie pozwala
na stosowanie jakiegoś sprzężenia zwrotnego
umożliwiającego korektę obrotów. Postano−
wiłem stworzyć coś na wzór robota kolegi
Marka Lewandowskiego. Jego artykuły
w EdW bardzo sobie cenię.
Druga sprawa to pomysł stworzenia plo−
tera z EdW 7/00. Na taki sam pomysł wpa−
dłem na początku roku, z tym, że miał być
sterowany przez port równoległy i służyć
bardziej do rysowania grafiki, a nie płytek
drukowanych. Jeśli chodzi o opisywany
przez Pana ploter, to zauważyłem dwa pro−
blemy. Primo: konwersją plików HPGL na
postać przyswajalną dla sterownika plotera
powinni się zająć programiści znający do−
brze języki programowania na Peceta, mniej
Bascom (może czytelnicy EdW lub EP?). Se−
cundo: jak długo czytam Pańskie artykuły,
tak pamiętam, że zawsze był Pan stanow−
czym przeciwnikiem wszelkich prac mecha−
nicznych, a z tego, co mi się wydaje, to wy−
konanie w warunkach amatorskich takiej
konstrukcji, która by zapewniała wystarcza−
jącą dokładność do frezowania płytki druko−
wanej nie jest wcale takie proste.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
' (r) 20−06−2000 Bad Worm
'−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
' File : robot.bas
' program sterujący pojazdem
' napędzanym silnikami krokowymi
4−fazowymi
Szanowny Panie Zbigniewie!
Piszę do Pana ten list z dwóch powodów.
Po pierwsze, tak jak kiedyś obiecałem, prze−
syłam program sterujący pojazdem napę−
dzanym dwoma silnikami krokowymi (coś na
wzór AVT−2059) W obecnej wersji tor ruchu
pojazdu nie jest zbyt skomplikowany − odci−
nek do przodu (tyłu), obrót w prawo, do
przodu, obrót w lewo, do przodu, zatrzyma−
nie się i przejście do stanu uśpienia. Pro−
gram umożliwia (za pomocą przycisków do−
łączonych do wejść INT0 i INT1) wybór kie−
runku ruchu, w którym pojazd zaczyna się
przemieszczać na samym początku. Schemat
połączeń jest bardzo prosty. Port P1 steruje
silnikami krokowymi poprzez driver
ULN2803. Wyjście P3.7 jest połączone
z wejściami liczników T0 i T1. Wejścia INT0
oraz INT1 mogą być zwierane poprzez przy−
ciski do masy. Linie P1.0 − P1.3 prowadzą do
nóżek 12, 11, 10, 9 ULN2803, a linie P1.4 −
P1.7 do pinów 7, 6,5, 4 (w tej kolejności).
Do wyjść 15 − 18 drivera podpiąłem lewy sil−
nik, a 11 − 14 − prawy.
Trochę o programie. Początki sięgają ma−
ja 2000, gdy napisałem program sterujący
pracą silnika krokowego jako zadanie domo−
we z Bascomu. Właściwe prace rozpoczęły
się w czerwcu, gdy poznałem obsługę prze−
rwań i timerów. Mam zamiar dalej rozwijać
program, lecz wykorzystując inną platformę
'−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
'$sim
Dim Krok(16) As Byte 'deklaracja tablicy
Dim X As Byte 'deklaracja zmiennej
pomocniczej X (opóźnienie)
Dim R As Byte 'deklaracja zmiennej
pomocniczej R (główny licznik)
Dim A As Byte 'deklaracja zmiennej
warunku ruchu Forward
Dim C As Byte 'deklaracja zmiennej
dolnej granicy kroków
Dim D As Byte 'deklaracja zmiennej
górnej granicy kroków
Dim E As Byte 'deklaracja zmiennej
warunku obrotu Wprawo
Dim F As Byte 'deklaracja zmiennej
warunku wyłączenia Power
Config Timer0 = Counter , Gate = Internal , Mode
= 2 'konfiguracja timera0
Config Timer1 = Counter , Gate = Internal , Mode
= 2 'konfiguracja timera1
'ładowanie kroków do tablicy
Krok (1) = 129 'ładowanie do tablicy
kodu kroku 1
Krok (2) = 66 'ładowanie do tablicy
kodu kroku 2
Krok (3) = 36 'ładowanie do tablicy
kodu kroku 3
Z poważaniem
Adam Robaczewski
badworm@poczta.fm
Cały listing programu Adama oraz wszy−
stkie ciekawe propozycje przychodzące do Re−
dakcji znajdziecie na stronie internetowej
EdW.
Elektronika dla Wszystkich
25
54842351.010.png 54842351.011.png
Zgłoś jeśli naruszono regulamin