Ana Sayfa PIC Assembly - PIC C PIC16F84A ile Step Motor Kontrolü

PIC16F84A ile Step Motor Kontrolü

7 min read
6
0
15,121

Step motorlar, diğer motorlardan farklı olarak motor bobinlerine uygulanan elektrik palsi (pulse) ile döndürülürler. Her bir pals, rotoru bir adım döndürmektedir. (Adımın derece değeri, motorun adım sayısına bağlıdır) bu palsler, “adım” olarak adlandırıldıklarından bu motor türüne adım (step)motor denir. Adım motorları (Step Motors), girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yapan fırçasız, sabit mıknatıs kutuplu DC motorlardır. Sabit mıknatıslı kutuplar hareketli kısımda yer alır. DC gerilimin uygulandığı sargıların bulunduğu kısım “stator”, dönen kısım ise “rotor” olarak isimlendirilir. Step motorlar, bir turdaki adım sayısı ile anılırlar. Örneğin 300 adımlık bir step motorun bir tam dönüşünde (tur) 300 adım bulunur. Zaten ismini de buradan alır. Buna göre bir adımın açısı; 360 / 300 = 1,2 derecedir. Bu değer, step motorun hassasiyetinin bir ölçüsüdür. Her bir adımda motorun döneceği açı derecesi motorun üzerinde yazar. Örneğin 7.5 derecelik (360º/48) step motor, bir tam turda 48 adım atar. Bir devirdeki adım sayısı yükseldikçe step motorun hassasiyeti yükselmektedir ancak buna paralel olarak maliyeti de artmaktadır. Step motorlar yarım adım modunda çalıştırıldıklarında hassasiyetleri daha da artar. Örneğin 300 adım / tur değerindeki bir step motor, yarım adım modunda çalıştırıldığında tur başına 600 adım yapacaktır. Bu da 1,2 dereceye oranla daha hassas olan 0,6 derecelik bir adım açısı anlamına gelir.

ÇALIŞMA PRENSİBİ                                

Step motora giriş palsi 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 uygulanınca pals adedi kadar adım hareket eder. Bütün step motorlarının çalışma prensibi bu şekildedir.

STEP MOTORLARIN SÜRÜLMESİ

Bir step motor, tek fazlı, 2 faz tam adımlı ve 2 faz yarım adımlı olmak üzere farklı şekillerde sürülebilir. Bazı kaynaklarda unipolar step motorlar tek fazlı, bipolar motorlar ise 2 fazlı olarak adlandırılabilir. Bipolar iki yönlü beslenen anlamına gelir ve Bipolar step motor, iki yönde de akım akabilen motor demektir.

bmodel       unipolarstepmotormodel

DEVRE ŞEMASI

İLK

ULN 2003

ULN2003 fiekil 5’den görüldü¤ü gibi ULN2003 entegresinin iç yapısında darlington bağlı transistörler bulunuyor. Transistörlerin iletime girebilmesi için entegrenin giriş uçlarına 5V’luk gerilim uygulamak yeterli. Giriş uçlarına seri bağlı dâhili dirençler bulunduğundan giriş akımını  sınırlamak üzere harici dirençler kullanmaya gerek yok.Bundan dolayı, ULN2003 entegresi mikro denetleyici çıkışına doğrudan bağlanabiliyor. Her bir kanalın çıkış akımı 500mA.


                                                                                                                                  

DEVRENİN C KODU

[php]

#include "htc.h"
#include "delay.h" // Gecikme kütüphanesi
const unsigned char yarim[]={0b00000001,0b00000011,0b00000010,0b00000110,0b00000100,0b00001100,0b00001000,0b00001001};
const unsigned char tam[]={0b00000011,0b00000110,0b00001100,0b00001001};
void main(void) // Ana fonksiyon alanı
{
int i=0; // Herhangi bir değişken tanımlanıyor
TRISB=0x00; // PORTB çıkıs olarak yönlendiriliyor
TRISA=0XFF;
PORTB=0x00; // PORTB’nin tüm çıkışları sıfırlanıyor
while(1)
{
if(RA0==1)// TAM TUR SAĞA
{
for(i=0;i<4;i++)
{
PORTB=tam[i];
DelayMs(100); // 250ms bekleniyor
}
}
if(RA1==1)// TAM TUR SOLA
{
for(i=4;i>0;i–)
{
PORTB=tam[i-1];
DelayMs(100); // 250ms bekleniyor
}
}
if(RA2==1)// YARIM TUR SAĞA
{
for(i=0;i<8;i++)
{
PORTB=yarim[i];
DelayMs(100); // 250ms bekleniyor
}
}
if(RA3==1)// YARIM TUR SOLA
{
for(i=8;i>0;i–)
{
PORTB=yarim[i-1];
DelayMs(100); // 250ms bekleniyor
}}}}
[/php]

Hex dosyasına buradan ulaşabilirsiniz..

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Burak Ablay
Daha Fazla Göster -  PIC Assembly - PIC C

6 Yorumlar

  1. ismet

    ismet

    11 Şubat 2015 at 13:14

    gerçekten güzel bi çalışma olmuş ve yeni öğrenciler için çok yararlı olacağına inanıyorum..
    iyi çalışmalar:))

    Reply

    • Burak Ablay

      Burak Ablay

      11 Şubat 2015 at 13:17

      İlginiz için teşekkürler..

      Reply

  2. haydar

    14 Şubat 2015 at 19:37

    ben dev c++ kullanıyorum ve c kodunda hata verdi

    Reply

    • Yücel Yılmaz

      Yücel Yılmaz

      14 Şubat 2015 at 19:59

      kullanmanız gereken IDE dev c++ değil, HI-TECH PICC LITE Compiler olmalıdır.

      Reply

  3. […] PIC16F84A ile Step Motor Kontrolü […]

    Reply

  4. yusuf

    27 Mayıs 2020 at 14:26

    12 Voltluk DC Motor Mosfetle kontrol edilecektir. Devreye enerji verilince Motor 30 saniye tam devirde , 30 saniye yarı devrinde çalıştırılacaktır. Bunun arduino yazılımı nasıl olur bana yardımcı olursanız çok sevinirim

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Modbus POLL ile Allen Bradley Motor Sürücüsünün Haberleşmesi

Merhabalar arkadaşlar , Bu yazımızda RS485 yada Modbus haberleşmesi ile ilgilenen arkadaşl…