STEP MOTOR SÜRÜCÜ: Bu çalışmada derste sunmak üzere eğitim materyali olarak hazırladığım 5 uçlu unipolar step motor sürücüyü paylaşıyorum. Proje MicroC ile hazırlanmıştır.
Adım sıraları bir dizi ile tabloda belirlenip menüde belirlenen zamanlara göre portbye aktarıldı.
Çıkış katı 220ohm direnç üzerinden BD241(3A) NPN transistörlerle güçlendirilip motor sürüldü.
STEP (ADIM) MOTORLAR
TANIM
Bir motora elektrik palsleri uygulayınca mekaniki bir hareket (dönme) yapabiliyorsa bu tip motorlara denir.
Dijital bilgileri mekanik harekete çeviren TRANSDUSER olarak görev yapan motorlara denir.
CALIŞMA PRENSİBİ
Step motora giriş pals uygulandığı zaman belli bir miktar döner ve durur. Bu dönme miktarı motorun yapısına göre belli bir açı ile sınırlandırılmıştır. Step motorda rotorun dönmesi girişe uygulanan pals adedine bağlı olarak değişir. Girişe tek bir pals verildiğinde rotor tek bir adım hareket eder ve durur daha fazla pals uygulayınca pals adedi kadar adım hareket eder.
ÇEŞİTLERİ
1. Sabit mıknatıslı s.m (PM)
2. Değişken relüktanslı s.m (VR)
3. hybrid s.m
4. Hidrolik s.m
5. Lineer s.m
KULLANILDIĞI YERLER
Bant sürücüler
Printer
Teyp sürücüler
Dikiş mak..
Taksimetre
Uzaktan kumanda göstergelerinde
Kameralarda
Uygulamanın çalışma görüntüsü;
Microc yazılım içeriği;
/* Projenim Adı: 5 uçlu unipolar stepmotor kontrolü Proje tarihi : Mart 2010 Mikro işlemci:16f628a Osilatör : 8Mhz İNTRC on I/O Kullanılan yapı:Dizi ile tablo oluşturulup hers aşamada tablodan bilgilaer farklı zaman aralıkları ile okunup portBye gönderilmiştir. Menü seçimi için INT0 kesmeesi kullanılmıştır böylece program döngüden çıkar çıkmaz yeni menüya dallanma yapar Projeyi yapan:AYTAÇ DÜRGEN KOCAELİ UNİVERSİTESİ */ short int sayac=0; void interrupt() { sayac = (sayac+1)%7; INTCON.INTF=0; } void ayarlar() { OPTION_REG = 0x00; INTCON.GIE = 1; INTCON.INTE = 1; TRISB=0x01; PORTB=0; TRISA=0; PORTA=0; } signed int a,b; unsigned char tablo[]={2,4,8,16 }; void main() { ayarlar(); /********************************************/ for(;;){ PORTB=0; /*********************************************/ if(sayac==0) { for(a=0;a<4;a++) { PORTB=tablo[a]; Delay_ms(4); // 4ms bekle PORTA=sayac; } } /********************************************/ if(sayac==1) { for(a=0;a<4;a++) { PORTB=tablo[a]; Delay_ms(80); // 80ms bekle PORTA=sayac; } } /********************************************/ if(sayac==2) { for(a=3;a>=0;a--) { PORTA=sayac; PORTB=tablo[a]; Delay_ms(80); // 80ms bekle } } /********************************************/ if(sayac==3) { for(a=0;a<4;a++) { PORTA=sayac; PORTB=tablo[a]; Delay_ms(20); // 20ms bekle } } /********************************************/ if(sayac==4) { for(a=3;a>=0;a--) { PORTA=sayac; PORTB=tablo[a]; Delay_ms(20); // 20ms bekle } } /********************************************/ if(sayac==5) { for(b=0;b<100;b++) { for(a=0;a<4;a++) { PORTA=sayac; PORTB=tablo[a]; Delay_ms(5); // 5ms bekle } } for(b=0;b<100;b++) { for(a=3;a>=0;a--) { PORTA=sayac; PORTB=tablo[a]; Delay_ms(5); // 5s bekle } } } /**********************/ if(sayac==6) PORTB=0; } /********************************************/ }
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/03/19 Etiketler: microc, microchip pic projeleri, PIC16F628 örnekleri, step motor, step motor sürücü, unipolar sürücü
gerçekten çok değişik ve çok güzel bir devre. Tebrikler.
Güzel olmuş eline sağlık
güzel olmuş kardeşim.bilgilerini paylaştığın için teşekkürler.
merhaba.
güzel bir devre elinize sağlık. ben bu devreyi pc den kontrol edebilirmiyim acaba. yani dışarıdan mahc3 gibi bir programla pals göndererek kontrol edebilirmiyim. yardımcı olursanız sevinirim.
iyi günler.
rs 232 ile seri port üzerinden PC ile Pıc i haberleşime açabilirsin.ya da paralel portlu bir bilgisayarın var ise bu sinyalleri direk olarak uln 2003 step motor sürücü ile direk olarak sürebilirsin
AYTAC hocam ilginiz için teşekkür ederim. en az 4amper olması gerekiyor sürücünün. o yüzden yukarıdaki sürücü mosfet li olduğu için uygun. ben bu sürücüyü paralel porttan hız ve yön pals i uygulayarak nasıl çalıştırabilirim. yardımcı olursanız sevinirim
Step motorun devir yönü ve hızı gönderdiğin palsin hızı ile ve pals sırası ile değişmektedir. Bu işi PC ile en kolay Visual Basic ile yapabilirsin. Fakat bu konularda hergangi bir uygulamam yok.
Aytaç hocam ben mach 3 den yön ve hız bilgisini pals olarak verebiliyorum (20-100khz olarak). benim sorduğum picin atıyorum b0’a yön bilgisini verdim(mesela 1 ise saga-0 ise sola dön gibi). b1’e hız bilgisini pals olarak (mesela 1mm si 2000 pals olarak ayarladım 5mm için paralel portdan 2000×5=10000 pals verdim) motor bu pals geldiği sürece dönecek pals durduğunda kendiside duracak. yani b1 e kaç pals gelirse anında motora aktaracak. yukarıdaki programda nasıl bir değişiklik yaparsak böle bir şeyi başarabiliriz acaba .
Yani aslında dışarıdan mesela portb1 e hazır gelen pals i sadece motora aktarmasını nasıl sağlarız.
bu devre kaç liraya patlar… bilgi verebilir misiniz rica etsem…