PIC Mikrokontrolör Tabanlı Adım Motoru Kontrolu

Transkript

PIC Mikrokontrolör Tabanlı Adım Motoru Kontrolu
PIC MİKROKONTROLÖR TABANLI ADIM MOTORU KONTROLU
Prof. Dr. Doğan İbrahim
Yakın Doğu Üniversitesi, Bilgisayar Mühendisliği Bölümü, KKTC
E-mail: [email protected] Tel: (392) 2236464
ÖZET
Adım motorlarını (stepping motors)
günümüzde çok çeşitli endüstriyel ve robotik
uygulamalarda görmemiz mümkündür. Çok
hassas dönüş özellikleri olan bu motorlar
mikroişlemci ve mikrokontrolör devrelerinde
kullanılmaktadırlar.
Bu makalede, adım
motorlarının PIC mikrokontrolör tabanlı
sistemlerde C dili altında kullanımlarından
bahsedilmektedir.
1. GİRİŞ
Elektrik motorları elektrik enerjisini
mekanik enerjiye dönüştürmektedirler. Genel
olarak çok çeşitli elektrik motorları
bulunmaktadır. Elektrik motorlarını, çalışma
prensiplerini göz önünde bulundurarak doğru
akımla çalışan (DC) ve alternatif akımla
çalışan (AC) olmak üzere iki gruba ayırabiliriz.
Her iki sınıfta da şu tip motorları görmemiz
mümkündür:
DC Motorlar:
Mıknatıs kullanan motorlar
Seri sarımlı motorlar
Şönt sarımlı motorlar
Karışık sarımlı motorlar
Adım motorları
AC Motorlar:
Tek fazlı indüktans motorlar
Senkron motorlar
Çok fazlı indüktans motorlar
Seri sarımlı universal motorlar
Mıknatıs kullanan DC motorlarını1 küçük
uygulamalarda
görebiliriz.
Örneğin,
bilgisayarlarda soğutma amacıyle kullanılan
küçük serinlikler mıknatıs motorlardır. Bu tip
motorlarda manyetik alan bir mıknatıs ile elde
edilmektedir. Mıknatıs kullanan motorların en
önemli desavantajları zamanla mıknatıs
gücünün kaybolmasıdır.
Bu motorların
gerilim-hız eğrileri oldukça lineerdir. Elde
edilmiş olan tork ise motor akımı ile doğru
orantılıdır. Mıknatıs kullanan motorların bir
diğer özellikleri de gerilim değişince motor
hızının çok hızlı bir şekilde değişmesidir. Bu
motorların fiyatları genellikle oldukça düşük
olmaktadır.
Seri sarımlı DC motorların hızları motora
takılan yüke bağlı olarak değişmekte ve yük
azaldıkça hız artmaktadır. Bu tip motorlarda
gerekli olan manyetik alan motorla seri olarak
bağlanmış olan bir sarıma (bobin) verilen akım
sayesinde elde edilmektedir. Seri sarımlı
motorlar daha çok başlangıçta büyük güçleri
belirli
bir
hıza
getirmek
amacıyla
kullanılmaktadırlar. Bu tip motorlar mıknatıs
kullanan motorlardan daha güçlü olup daha
fazla akımla çalışmaktadırlar.
Şönt sarımlı DC motorlarda gerekli olan
manyetik alan motor ile bağlanmış olan bir
sarıma (bobin) verilen gerilimle elde
edilmektedir. Bu tip motorlar daha çok hassas
hız control uygulamalarında ve ayni zamanda
yüksek
tork
gerektiren
uygulamalarda
kullanılmaktadırlar.
Karışık sarımlı DC motorlar, seri sarımlı
ve şönt sarımlı motorların karışımı olarak
düşünülebilir. Bu motorlarda gerekli olan
manyetik alan hem seri sarımdan ve hem de
şönt (parallel) sarımdan elde edilmektedir.
Bu tip motorlar yüksek tork ve hassas hız
kontrolu uygulamalarında kullanılabilirler.
Adım motorları2,3 çok hassas hız ve
pozisyon kontrolunda kullanılırlar.
Bu
motorların düşük hızlarda yüksek torkları
bulunmaktadır. Adım motorları puls ile
çalışmaktadır ve her puls verildiğinde motor
belirli bir miktar dönmektedir. Örneğin, 12
derecelik bir adım motoruna her puls
verildiğinde motor 12 derece dönmektedir.
Böylece, tam bir dönüş yapmak için motora 30
puls verilmesi gerekmektedir (30x12 = 360).
Adım motorları genel olarak hız ve pozisyon
kontrolu devrelerinde geri besleme yapılmadan
kullanılmaktadırlar.
Bundan dolayı motor
hızını ölçmek için takojeneratör veya optik
enkodere gerek olmamaktadır. Adım motorları
otomatik kontrol alanında son derece önem
taşımakta olup bu motorların şu avantajları
bulunmaktadır:
•
•
Geri besleme olmadan kontrol
devrelerinde
rahatlıkla
kullanılabilirler
Mevcut hata bir adımdan diğer adıma
geçmez
•
•
•
•
•
Motor dönüşü pulslarla kontrol
edildiği için bu tip motorlar
mikrokontrolör
devrelerinde
kolaylıkla kullanılabilirler
Adım motorların yapıları basit ve
oldukça güvenilirdirler
Düşük
hızlarda
yüksek
tork
vermektedirler
Çok düşük hızlarda (örneğin dakikada
birkaç yüz defa dönüş gerektiren
uygulamalarda)
kullanımları
mümkündür
Mikro adım kontrolu kullanılarak
dönüş hassasiyeti artırılabilir
Bu avantajları yanında adım motorların şu
desavantajları bulunmaktadır:
•
•
•
•
•
Motorun dönüşü adım adım olduğu
için bazı uygulamalarda bu motorların
kullanımı mümkün değildir.
Sürtünmeden
dolayı
pozisyon
kontrolunda hatalar elde edilebilir.
Çıkış güçleri sınırlıdır
Geri beslemeli hız ve pozisyon
kontrolu
uygulamalarında
kullanımları zordur.
Adım motorları genellikle diğer
motorlardan daha pahalıdırlar.
Adım motorlarını unipolar (çok kutuplu)
ve bipolar (iki kutuplu) olmak üzere iki sınıfa
ayırabiliriz. Her iki tip adım motorunun da
özellikleri ve kontrolu daha sonraki
bölümlerde verilmiştir.
Tek fazlı AC indüktans motorlar çok fazlı
akımın bulunmadığı küçük uygulamalarda
kullanılırlar.
Senkron AC motorlar kullanılan alternatif
akım frekansına bağlı olarak sabit bir hızda
dönmektedirler. Bu tip motorlar endüstriyel
uygulamalarda
çok
yaygın
olarak
kullanılmaktadırlar.
Bu yazımızda, endüstride çok yaygın
olarak kullanılan adım motorlarının (stepping
motors) PIC mikrokontrolör kullanılarak nasıl
kontrol edilebildiklerini göreceğiz.
2.
ADIM MOTORLARI
Adım motorları hassas hareket gerektiren
birçok robotik ve endüstriyel uygulamalarda
kullanılmaktadırlar.
Puls ile çalışan bu
motorlarda, her puls uygulandığında motor
belirli bir miktar dönmektedir. Bu dönüş
miktarına adım da denilmektedir.
Bazı
motorların adımları 90 derece, daha hassas
motorların ise 1.8 ve hatta 1.72 derece
olabilmektedir. Uygun kontrolörler sayesinde
adım motorlarını yarı-adım veya daha küçük
ve mikro-adım diye bilinen oldukça küçük
adımlar şeklinde döndürmek mümkündür.
Adım motorları otomatik kontrol devrelerinde
genellikle
geri
besleme
olmadan
kullanılmaktadırlar.
Bu
motorların
hassasiyetleri bir adımın %3ü ve %5i arasında
değişmektedir. Fakat en önemlisi hatanın bir
adımdan diğer adıma geçmemesidir. Böylece,
geri besleme olmadan çok hassas motor
pozisyon
kontrol
uygulamaları
yapılabilmektedir.
Adım motorların birçok
çeşitleri bulunmakatdır, fakat en yaygın olarak
kullanılanları sabit mıknatıs içeren çeşitleridir.
Adım motorları ayni zamanda büyüklüklerine
gore de sınıflandırılmaktadırlar.
Bu
sınıflandırmada motor gövdesinin çapı göz
önüne alınmaktadır. Örneğin, size 11 bir adım
motorunun gövde çapı yaklaşık olarak 1.1
inçtir.
Ayni şekilde, size 45 bir adım
motorunun gövde çapı 4.5 inç kadardır.
Adım motorlarını ve DC motorları şu
şekilde karşılaştırabiliriz:
•
•
•
•
•
Adım
motorları
kolaylıkla
mikrokontrolörlerle
kontrol
edilebilirler. DC motorların kontrolu
ise çok daha kompleksdir.
Adım motorları geri beslemesiz
olarak kullanılmaktadırlar.
Bunun
yanında, DC motorlar geri besleme
kullanarak çalıştırılırlar.
Adım motorları fırçasız oldukları için
genel olarak DC motorlara kıyasla
daha dayanıklıdırlar.
Adım motorlarında kayma meydana
gelebilir ve bundan dolayı hız ve
pozisyon kontrolunda hata olabilir.
DC motorlar geri besleme ile kontrol
edildiklerinden dolayı genellikle daha
hızlı bir responsa sahiptirler.
Genel olarak adım motorlarının iki fazı
bulunmaktadır, fakat üç veya beş fazlı motorlar
bulmak da mümkündür. Adım motorlarını
bipolar (iki kutuplu) ve unipolar (çok kutuplu)
olmak üzere iki sınıfa ayırabiliriz. Şekil 1 de
unipolar ve bipolar adım motorların sarımları
gösterilmiştir. Unipolar adım motorlarının 4, 5
veya 6 bacak bağlantıları bulunmaktadır.
Ortak bacak genellikle +V gerilimine
bağlanmaktadır. Bu durumda, 6 bacaklı bir
unipolar motoru kontrol etmek için sadece 4
bacağını kontrol etmemiz gerekmektedir.
Bipolar motorların ise sadece 4 bacak
bağlantıları bulunmaktadır.
Genel olarak
unipolar motorları sürmek bipolar motorları
sürmekten daha kolaydır.
2.1 Unipolar Adım Motoru Sürüşü
Unipolar adım motorlarını tam adımlı ve
yarım adımlı olarak sürebiliriz. En yaygın
olarak kullanılan unipolar sürüş şekilleri: 1
fazlı tam adımlı, 2 faz tam adımlı, ve 2 faz
yarım adımlı olmak üzere üç değişik
şekildedir.
Tablo 2 2 fazlı tam adım sürüş
Adım
a
c
b
d
1
1
0
0
1
2
1
1
0
0
3
0
1
1
0
4
0
0
1
1
2 Fazlı yarım adımlı sürüş
Tablo 3 de verildiği gibi, bu sürüş şeklinde
motor sarımlarından a, b, c, ve d bazen ikişer,
bazen ise sadece bir puls almaktadırlar. Fakat
burada önemli olan nokta motor yarım adım
sürüldüğü için bir saykılı tamamlamak için 8
adım gerekmektedir. 2 fazlı yarım adımlı
sürüşlerde iki katı hassasiyet elde edilmektedir.
Fakat üretilen tork yaklaşık olarak yarıya
düşmektedir.
Unipolar adım motoru
Tablo 3 2 fazlı yarım adım sürüş
Adım
a
c
b
d
1
1
0
0
0
2
1
1
0
0
3
0
1
0
0
4
0
1
1
0
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1
2.2
Şekil 1 Bipolar adım motoru
1 Fazlı tam adımlı sürüş
Tablo 1 de verildiği gibi, bu sürüş şeklinde
motor sarımları a, b, c, ve d her adımda bir
puls almaktadırlar. Adım 4 den sonra tekrar
adım 1 e dönülmektedir. Kısacası bir saykıl 4
adımdan meydana gelmektedir.
Tablo 1 1 fazlı tam adım sürüş
Adım
a
c
b
d
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
Unipolar Adım Motoru Sürüş
Devreleri
Adım motorlarını sürmek için gerekli olan
akıma bağlı olarak normal npn veya pnp
transistör, MOSFET güç transistörü, veya
entegre devre adım motoru sürücüleri
kullanılabilir. Şekil 2 de npn transistörlü bir
sürücü devresi verilmiştir.
Burada npn
transistörler sviç olarak kullanılmış ve bu
transistörlerin modelleri gerekli olan akıma
bağlıdır. 5 Amper kadar akımlar için TIP141
modeli, daha küçük akımlar için ise BC108 tipi
transistörler kullanılabilir.
2 Fazlı tam adımlı sürüş
Tablo 2 de verildiği gibi, bu sürüş şeklinde
motor sarımlarından a, b, c, ve d nin her ikisi
her adımda birer puls almaktadırlar. Bu sürüş
şeklinde elde edilen tork daha fazla olmaktadır.
Adım sırasını ters yapmakla motor ters yönde
dönmektedir.
Şekil 2 npn transistörlü unipolar motor
sürücü devresi
Şekilde diyotlar transistörleri motorun
üretmiş olduğu geri emf den korumak için
kullanılmıştırlar. Şekil 3 de MOSFET
transistörleri kullanarak gerçekleştirilmiş olan
bir sürücü devresi verilmiştir.
2.3 Bipolar Adım Motoru Sürüşü
Bipolar motorlarda ayrı bobinler olup bu
bobinlere
verilen
gerilim
yönünün
değiştirilmesi gerekmektedir. Bipolar adım
motorların sürüşü bundan dolayı daha
karışıktır.
Bu tip motorları sürmek için
genellikle
çift
H-köprüsü
devreleri
kullanılmaktadır.
Şekil 4 Bipolar adım motoru sürüş devresi
Bipolar adım motorlarını sürmek için çift
H-köprüsü devreleri de kullanılmaktadır
(örneğin, LMD18200-2D).
Bu entegre
devrede her H-köprüsü bir sarımı kontrol
etmektedir.
3. PIC TABANLI ADIM MOTORU
KONTROLU
Bu yazımızda PIC16F844 modeli bir
mikrokontrolör kullanarak bir adım motorunun
C dili ile nasıl kontrol edilebileceği
açıklanmaktadır. Makalede adım motoru 500
devir dönecek şekilde programlanmış ve örnek
olarak, UAG2 modeli ve adım sabiti 18 derece
olan bir adım motoru kullanılmıştır.
3.1
Şekil 3 MOSFET transistörlü sürücü devresi
Şekil 1 de gösterilen bipolar adım
motorunu sürmek için Tablo 4 de verilen
adımlara gerek vardır (bipolar adım
motorlarını 2 fazlı tam adım ve 2 fazlı yarım
adım modunda sürmek de mümkündür).
Tablo 4 Bipolar adım motoru
Adım
a
c
b
1
+
2
+
3
+
4
-
d
+
Donanım
Makalede UCN5804B modeli adım motoru
sürücü entegre devresi kullanılmıştır. Şekil 5
de sistemin blok şeması gösterilmiştir.
Mikrokontrolörün PORT B çıkışı UCN5804B
modeli entegre devre adım motoru sürücüsüne
bağlanmıştır. Motorun dönüş yönü entegre
devreye bağlanan bir butonla seçilmektedir.
+V
Yön
PIC
Mikrokontrolör
5804B
sürücü
M
Tabloda + ve – işaretleri bacaklara verilecek
olan gerilimin yönünü belirtmektedir.
2.4
Bipolar Adım Motoru Sürüş
Devreleri
Şekil 5 Projenin blok şeması
Bipolar adım motoru sürüş devreleri daha
karmaşık olup Şekil 4 de gösterildiği gibi
transistör devrelerinde genellikle npn ve pnp
transistörler kullanılır. Transistörler sayesinde
motor sarımlarına giden akım yönü kolaylıkla
değiştirilmektedir.
Sistemin devresi Şekil 6 da verilmiştir.
UCN5804B entegre devresi küçük unipolar
adım motorlarını sürmek için üretilmiştir. Bu
entegre ile +35V gerilime kadar çalışan ve
1.25A akım çeken adım motorları kontrol
edilebilir. Entegre devrenin çalışması Şekil 7
de gösterilmiştir. Entegre devre çıkışları adım
motora direk olarak bağlanabilir. Buna ilaveten
entegre devrenin adım girişi, yarı-adım girişi,
ve yön girişleri de bulunmaktadır. Motorun
dönmesi için adım girişine puls (burada,
sinyalin lojik 1 den lojik 0 a geçişi) verilmesi
gerekmektedir. Yön girişi lojik 0 olunca motor
bir yöne, lojik 1 olunca ise motor diğer yöne
dönmektedir. UCN5804B entegre devresini
kullanarak herhangibir adım motorunu
mikrokontrolör ile kontrol etmek son derece
kolaydır. Makalede UAG26 modeli unipolar
bir
adım
motoru
kullanılmıştır.
Mikrokontrolörün RB0 PORT B çıkışı entegre
devrenin
adım
girişine
bağlanmıştır.
UCN5804B nin yön girişi ise bir butona ve bu
entegrenin çıkışları da Şekil 6 da gösterildiği
gibi
adım
motorunun
bobinlerine
bağlanmıştırlar. Mikrokontrolörden gelen puls
adım komutlarına göre motor istenilen yönde
dönmektedir.
Şekil 6 PIC motor kontrol devresi
adım
yarı-adım
yön
UCN
5804B
1-faz
Şekil 7 UCN5804B devresinin çalışması
UCN5804 entegre devre yarı-adım (bacak
10) ve 1-faz (bacak 9) bacaklarının lojik 0
veya lojik 1 e bağlanmalarına göre motoru
aşağıdaki
tablolara
uygun
olarak
çalıştırmaktadır:
1 fazlı tam adım sürüş
(bacak10 = lojik 0, bacak 9 = lojik 1)
Adım
a
c
b
d
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
2 fazlı tam adım sürüş
(bacak10 = lojik 0, bacak 9 = lojik 0)
Adım
a
c
b
d
1
1
0
0
1
2
1
1
0
0
3
0
1
1
0
4
0
0
1
1
2 fazlı yarım adım sürüş
(bacak10 = lojik 1, bacak 9 = lojik 0)
Adım
a
c
b
d
1
1
0
0
0
2
1
1
0
0
3
0
1
0
0
4
0
1
1
0
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1
Bu makalede bacak 9 ve bacak 10 lojik 0 a
bağlanmıştırlar ve motor 2 fazlı tam adımlı
modda çalışmaktadır. UCN5804B entegre
devresini kullanırken devre bacaklarının motor
sarımları arasındaki bağıntıdan dolayı negatif
gerilime gitmelerini önlemek için motor ve
entegre devre arasına seri diyotlar koymak,
veya entegre devrenin çıkışlarını Şekil 6 da
gösterildiği gibi diyotlar ile toprak hattına
bağlamak gerekmektedir.
3.2
Yazılım
Adım motoru kontrol devresi yazılım
listesi Şekil 8 de gösterilmiştir. Programın
başında STEP değişkeni RB0 bacağı olarak
tanımlanmıştır. Daha sonra devir_sayısı 500 e
ve adim_sabiti ise 18 dereceye eşitlenmiştirler.
500 devir yapmak için gerekli olan adım sayısı
hesaplandıktan sonra UCN5804B entegre
devreye bu kadar puls gönderilmektedir.
Pulsun her lojik 1 den lojik 0 a geçişinde
motor bir adım hareket etmektedir. Her adım
arasına ise 3ms gibi bir gecikme konmuştur.
Entegre devrenin 14 nolu bacağı motorun
yönünü tesbit etmektedir. Bu bacak lojik 0
olduğunda motor bir yönde, lojik 1 olduğunda
ise motor aksi yönde dönmektedir.
DelayMs(3);
}
/*---------------------------------------------
for(;;)
{
}
ADIM MOTORU KONTROLU
========================
Bu makalede PIC16F84 mikrokontrolor
kullanilmis ve mikrokontroller 4MHz bir
kristal ile calistirilmistir.
Mikrokontrolorun RB0 bacagina UCN5804
modeli adim motoru surucusu entegre
devresi baglanmistir.
Entegre devrenin cikisi ise UAG2 modeli 18
adim sabitli unipolar bir adim motoruna
baglanmistir. Makalede adim motoru 500
devir yapmaktadir.
Projede adim motoru 2 fazli tam adim surus
modunda calismaktadir. Entegre devrenin 9
ve 10 nolu bacaklari toprak hattina
baglanmistirlar. Her adim komutu arasinda
3ms bir gecikme konmustur. Bu durumda
adim motoru 1000 RPM (dakikada devir
sayisi) calismaktadir. Motor ise toplam 30
saniye calismaktadir
Yazan: Dogan Ibrahim
Program: MOTOR.C
Tarih:
Haziran 2004
----------------------------------------------*/
#include <pic.h>
#include <delay.c>
#define STEP RB0
const unsigned int devir_sayisi = 500;
const unsigned int adim_sabiti = 18;
main(void)
{
unsigned int
i,adim_sayisi,bir_devir_adimlari;
TRISB = 0;
bir_devir_adimlari =
360/adim_sabiti;
adim_sayisi =
devir_sayisi*bir_devir_adimlari;
STEP = 0;
for(i=0; i<adim_sayisi; i++)
{
STEP = 1;
STEP = 0;
}
Şekil 8 Projenin yazılım listesi
SONUÇ
Bu makalede bir adım motorunun PIC
mikrokontrolör ile nasıl kullanılabileceği
açıklanmıştır.
Projede
PIC16F84
mikrokontrolöe ve UCN5804B modeli adım
motoru sürücü entegre devresi kullanılmıştır.
Makalede de açıklandığı gibi, adım motorunu
sürmek oldukça kolay olup istenilen adım
miktarı mikrokontrolör tarafından netegre
devreye puls olarak verilmektedir. Tasarımı
yapılmış olan sistemde mikrokontrolör HiTech C programlama dili kullanılarak
programlanmıştır. Makaleden de görüleceği
gibi C gibi yüksek seviyeli bir dil kullanmak
programı son derece kolaylaştırmıştır.
KAYNAKÇA
1. Baldor web sitesi: www.baldor.com
2. Necel web sitesi: www.necel.com
3. Oriental motor web sitesi:
www.orientalmotor.com
4. Microchip Inc web sitesi:
www.microchip.com
5. AllegroMicro web sitesi:
www.allegromicro.com/sf/5804
6. Saia-Burgess web sitesi:
www.saia- burgess.com

Benzer belgeler