MicroC ile step motor sürücü örneği (pic16f628a)

| Mayıs 30, 2023 Tarihinde güncellendi
MicroC ile step motor sürücü örneği (pic16f628a)

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.

PCBway Türkiye PCB Manufacturer PCB Assembly

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ü.

microc-step-motor-surucu-pic16f628a

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;

}
 /********************************************/


}


microc-ile-step-motor-surucu-ornegi-pic16f628a

Şifre-Pass: 320volt.com

Yayım tarihi: 2010/03/19 Etiketler: , , , , ,



9 Yorum “MicroC ile step motor sürücü örneği (pic16f628a)

  1. DoğukanDoğukan

    gerçekten çok değişik ve çok güzel bir devre. Tebrikler.

    CEVAPLA
  2. HarunHarun

    güzel olmuş kardeşim.bilgilerini paylaştığın için teşekkürler.

    CEVAPLA
  3. mehmetmehmet

    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.

    CEVAPLA
  4. aytac dürgenaytac dürgen

    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

    CEVAPLA
  5. mehmetmehmet

    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

    CEVAPLA
  6. aytac dürgenaytac dürgen

    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.

    CEVAPLA
  7. mehmetmehmet

    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.

    CEVAPLA
  8. emrecanbjkemrecanbjk

    bu devre kaç liraya patlar… bilgi verebilir misiniz rica etsem…

    CEVAPLA

Doğukan için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir