Mikrokontroleri

Autor: Tihomir Stamenković

 

MIKROKONTROLERSKI REGULATOR BRZINE I SMERA JEDNOSMERNIH (DC) MOTORA

Nakon što smo se u prethodna dva broja upoznali sa Atmelovim mikrokontrolerom AT89C2051, prikazaćemo sada jedan praktičan primer u kome se koristi ovaj procesor. Izbor je pao na regulator brzine DC motora, izveden kao kompaktan mali modul koji se može koristiti samostalno, ili u sastavu nekog složenijeg uređaja. Ova aplikacija ujedno pokazuje, koliko upotreba mikrokontrolera pojednostavljuje razvoj i izradu nekog uređaja.

3b91.jpg (17954 bytes)

Komponenta na kojoj se bazira ovaj uređaj je Atmelov mikrokontroler AT89C2051, koji obavlja sledeće funkcije:

  1. nadgleda 3 tastera
  2. opslužuje displej sa dve cifre na kome je prikazana zadata brzina motora,
  3. generiše potrebne signale za pobudu motora (signal smera i PWM signal).

Tasteri imaju sledeću funkciju: S1 - povećanje brzine S2 - smanjenje brzine S3 - promena smera. Vezivanjem kondenzatora od 100nF paralelno sa tasterima postiže se hardversko eliminisanje smetnji usled treperenja kontakata, čime se uprošćuje program za ovaj uređaj. Displeji se pogone u multipleksu, tako što su segmenti spojeni na PORT1 procesora, a selekcija displeja se vrši pinovima P3. 1 i P3. 7. Signal smera se dobija na pinu P3, 4, a PWM signal kojim se reguliše brzina motora, na pinu P3. 5. Ova dva signala se vode, direktno ili preko invertora C i D kola IC2 na izlazni drajver L298N.

3b92.jpg (21244 bytes)

Integralno kolo L298N smešteno je u 15-to pinsko MULTIWATT kućište i prvenstveno je namenjeno za pobudu koračnih motora. Sastoji se iz 4 izlazna kanala koji čine 2 puna tranzistorska mosta. U našoj aplikaciji, ovi izlazni kanali su spojeni u paralelu tako da je dobijen jedan puni tranzistorski most koji se može opteretiti strujom od 3. 5A i na koji se priključuje motor. Led diode LED1 i LED2 služe za vizuelnu indikaciju smera obrtanja motora.

Uputstvo za gradnju

Uređaj nema kritičnih delova i lako ga je sagraditi. Upotrebljene su jednoslojne štampane pločice što dodatno pojednostavljuje izradu. Za one koji se odluče za samogradnju ovog uređaja evo nekoliko saveta:

  •  Na integralno kolo L298N obavezno stavite odgovarajući hladnjak, a na stabilizator 7805 ako se ukaže potreba.
  • Maksimalno dozvoljen priključni napon za kolo L298N iznosi 36V, što uz već pomenutu maksimalnu struju ovog kola od 3. 5A, predstavlja ograničavajući faktor u odabiru motora kojeg ćete priključiti na ovaj regulator.
  • Ukoliko motor koji nameravate da priključite vuče više od 1A, zamenite diode D1 - D4 sa jačim. npr 1N5403.
  • ako napajate L298N većim naponom od 25V, obratite pažnju da i radni napon kondenzatora C4 bude odgovarajući.
  • Uređaj je moguće napajati i jednim izvorom AC napona koji se u tom slučaju priključuje na grec koji čine diode D1 - D4, s tim što (+) polove kondenzatora C1 i C4 treba prespojiti. Pri višim naponima napajanja obratite pažnju na disipaciju stabilizatora 7805 i na radni napon kondenzatora C4.

Program Program

Pisanje programa nebi trebalo da vam zada poteškoća. U cilju olakšanja ovog dela posla prilažemo tablicu izlaza za PORT P1 za pravilno pobuđivanje 7_seg. displeja.

  DP B C D E G A F  
  P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 hex.
0 1 0 0 0 0 1 0 0 84
1 1 0 0 1 1 1 1 1 9F
2 1 0 1 0 0 0 0 1 A1
3 1 0 0 0 1 0 0 1 89
4 1 0 0 1 1 0 1 0 9A
5 1 1 0 0 1 0 0 0 C8
6 1 1 0 0 0 0 0 0 C0
7 1 0 0 1 1 1 0 1 9D
8 1 0 0 0 0 0 0 0 80
9 1 0 0 0 1 0 0 0 88

Kako se regulacija brzine motora postiže impulsno-širinski modulisanim (PWM) signalom, evo predloga (Listing) kako da upotrebom raspoloživih tajmera T0 i T1 dobijete PWM signal;

Listing
 






PWM:
ORG 00BH
LJMP PWM

ORG 01BH
CLR TR1
SETB P3.5
RETI

PUSH ACC 
MOV A,R0  
CPL A
MOV TH1,A

MOV TH0,#9CH

SETB TR1
CLR P3.5
POP ACC
RETI

;prekidna rutina sa T0 postavlja
;prednju ivicu PWM signala

;prekidna rutina sa T1 postavlja
;zadnju ivicu PWM signala
;izvršenjem ove naredbe (SETB P3.5)
;izlaz iz prekidne rutine
;PWM
;sačuva akumulator
;pročita zadatu brzinu
;u ACC ostaje 0FFH-A
;reload vrednost za TH1
;to je trajanje impulsa
;reload vrednost za T0
;0FFH-9CH=63H sto je 99 decimalno
;to je perioda PWM signala
;dopusti rad T1 (mod 0)
;postavi prednju ivicu PWM signala
;vrati vrednost akumulatora
;izlaz iz prekidne rutine

Oba tajmera su u modu 0 (13-to bitni brojači), i T0 radi , a u R0se nalazi zadata brzina (0 - 99) Drugim rečima tajmer T0 broji 99 puta što odgovara periodi PWM signala, a T1 broji zadati broj puta (0-99), što odgovara dužini trajanja PWM impulsa, odnosno brzini motora. Prilikom promene smera motora ubacite obavezno rutinu za kašnjenje, kako bi umanjili strujne udare koji nastaju kada se naglo promeni smer motora. Ovo može dovesti do pregorevanja integralnog kola IC4 ili zaštitnih dioda D5 - D8. Umesto zaključka Upotrebljeni mikrokontroler AT89C2051 obavlja trostruku funkciju (tasteri, displej, motor) i njegove sve raspoložive I/0 linije su zauzete. Izgleda da su mogućnosti za dodatno upošljavanje procesora iscrpljene. Ali dali je tako?Ukoliko ne koristmo decimalnu tačku možemo osloboditi jedan pin (za npr. serijski prijem podataka). Selekciju displeja jedinice desetice možemo vršiti i jednim pinom uz dodatak samo jednog tranzistora, čime smo oslobodili još jedan pin. (neki alarm, serijska predaja podataka i t. d. ) Korišćenjem BCD na 7 segmentni dekoder oslobađamo dodatna tri pina pa se može pogoniti displej sa više cifara, ili npr. povezati procesor sa serijskim EEPROM-om, i dobiti uređjaj koji trajno pamti zadate parametre. Dali su ovo granične mogućnosti čipa u malom 20-to pinskom kućištu?

To ipak zavisi od vas i vaše konstruktorske maštovitosti!

3b93.gif (3619 bytes)
Slika 1. Napajanje

Komponenta Vrednost
R1,2,3,4,5,6,7,8 220R
R9,10 1K
R11 10K
R12,13 330R
C1 470uF/25V
C2,6,7,8,11,12 100nF
C3 100nF/16V
C4 1000uF/25
C5 10uF/16V
C9,10 33pF
D1,2,3,4 1N4003
D5,6,7,8 BYV27-100
LED1,2 LED 5mm
GR1 B80C1000
T1,2 bc327-40
DIS1,2 7-SEG 13mm displej zaj. anoda
Q1 kristal 6,9MHz
IC1 89C2051
IC2 CD4011
IC3 L298N
IC4 7805
K1,2,3,4,5,6 priključne kleme

 

3s3.jpg (4764 bytes)
kliknite na sliku da bi je uvećali

 

3b95.gif (20520 bytes)
PCB glavne pločice

 

3b97.gif (32761 bytes)
Raspored elemenata na glavnoj pločici

 

3b96.gif (19383 bytes)
PCB pomoćne pločice

 

3b98.gif (13092 bytes)
Maska na pomoćnoj pločici


Pročitajte više o ovoj temi
AT89C2051 uvod
Programiranje Atmelovog mikrokontrolera AT89C2051
Programator Atmel mikrokontrolera
ATMEL Flash RISC MCU

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji