Ana Sayfa PIC|ULAK PIC|ULAK ile Bilgisayardan Step Motor Kontrolü

PIC|ULAK ile Bilgisayardan Step Motor Kontrolü

9 min read
0
0
1,050

Merhaba arkadaşlar,

Bu yazımızda, MekatronikLAB firmasının üretmiş olduğu  PIC mikrodenetleyiciler ile proje geliştirme kiti PIC|ULAK ile bilgisayar üzerinden step motoru sağ ve sol olmak üzere belirli açılarda döndürme işlemini gerçekleştireceğiz.

Bunun için ilk olarak bilgisayarımıza herhangi bir Serial Communicator yazılımını yüklememiz gerekiyor.  Bu işlemden sonra,  aşağıdaki uygulama kodunu c derleyici ile derleyip hex kodunu oluşturuyoruz..

Oluşturduğumuz hex kodunu PICKit2 yazılımı ile PIC|ULAK’a yüklüyoruz..
Yükleme işleminden sonra  PIC|ULAK’ı Programlayıcı modundan Seri-USB dönüştürücü moduna alıyoruz..

Seri-USB moduna aldığımız da artık bilgisayarımız ile PIC|ULAK’ı konuşturabiliriz..
Serial Communşcator yazılımının transmit alanına step motoru döndürmek için açı ve yön girmemiz gerekiyor ve daha sonrasında enter tuşuna basmak kalıyor. :)

Örneğin,  60° sağa→ döndürmek istiyorsak 60R veya 180° sola← döndürmek istiyorsak 180L yazmamız yeterli olacaktır.

iyi çalışmalar….

Malzemeler

  • pic|ulak
  • 7.5 step motor(5 Volt)
  • bağlantı kabloları

 

Bağlantı şeması:

step

Kod kısmı:


#include <main.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1)
// Giriş ve çıkış pinlerine isim atanıyor
char islem[20]; //max 20 char tipinde dizi tanımlaıyor.
int a;
void main()
{
PRINTF("\n\r------------------PIC|ULAK---------------"); //
printf("\n\r*-*-*-*-*-*- STEP MOTOR CONTROL -*-*-*-*-*-*-*");// RECEİVE KISMINA YAZILACAKLAR.
printf("\n\rDERECE ve YÖN GİRİNİZ:"); //
while(1)
{
output_b(0x00); // B portu sıfırlanıyor
islem="null"; // islem değişkeninin içi boş olarak ayarlanıyor.
gets(islem); // yazılan metni islem değişkenine aktar.
puts(islem); // yazılan değeri ekrana yaz

printf("\n\rDERECE ve YÖN GİRİNİZ:"); // receive kısmına yazdır.

// 360 DERECE SAĞA KOMUTU

if (islem[0]=='3' && islem[1] =='6' && islem[2]=='0'&&islem[3]=='R' )
{
for(a=0;a<=11;a++) // 3x8=24 adım atıyor 24x3.75=90 derece sağa hareket edecek
{
output_b(0b00001001);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00001100);
delay_ms(10);

}
}

// 180 DERECE SAĞA KOMUTU

if (islem[0]=='1' && islem[1] =='8' && islem[2]=='0'&&islem[3]=='R' )
{
for(a=0;a<=5;a++) // 3x8=24 adım atıyor 24x3.75=90 derece sağa hareket edecek
{
output_b(0b00001001);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00001100);
delay_ms(10);
}
}

// 90 DERECE SAĞA KOMUTU

if (islem[0]=='9' && islem[1] =='0'&&islem[2]=='R' )
{
for(a=0;a<=2;a++) // 3x8=24 adım atıyor 24x3.75=90 derece sağa hareket edecek
{
output_b(0b00001001);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00001100);
delay_ms(10);
}
}

//60 DERECE SAĞA KOMUTU

if (islem[0]=='6' && islem[1] =='0'&&islem[2]=='R')
{

for(a=0;a<=1;a++)
{
output_b(0b00001001);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00001100);
delay_ms(10);
}
}

//30 DERECE SAĞA KOMUTU

if (islem[0]=='3' && islem[1] =='0'&&islem[2]=='R')
{
for(a=0;a<=0;a++)
{
output_b(0b00001001);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00001100);
delay_ms(10);
}
}

// 360 DERECE SOLA KOMUTU

if (islem[0]=='3' && islem[1] =='6' && islem[2]=='0' && islem[3]=='L')
{
for(a=0;a<=11;a++)
{
output_b(0b00001100);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00001001);
delay_ms(10);
}
}

// 180 DERECE SOLA KOMUTU

if (islem[0]=='1' && islem[1] =='8' && islem[2]=='0' && islem[3]=='L')
{
for(a=0;a<=5;a++)
{
output_b(0b00001100);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00001001);
delay_ms(10);
}
}

// 90 DERECE SOLA KOMUTU

if (islem[0]=='9' && islem[1] =='0' && islem[2]=='L' )
{
for(a=0;a<=2;a++)
{
output_b(0b00001100);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00001001);
delay_ms(10);
}
}

// 60 DERECE SOLA KOMUTU

if (islem[0]=='6' && islem[1] =='0' && islem[2]=='L')
{
for(a=0;a<=1;a++)
{
output_b(0b00001100);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00001001);
delay_ms(10);
}
}

// 30 DERECE SOLA KOMUTU

if (islem[0]=='3' && islem[1] =='0' && islem[2]=='L')
{
for(a=0;a<=0;a++)
{
output_b(0b00001100);
delay_ms(10);
output_b(0b00000110);
delay_ms(10);
output_b(0b00000011);
delay_ms(10);
output_b(0b00001001);
delay_ms(10);
}
}
}
}

Devrenin çalışma videosu:

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Sinan Sözügüzel
Daha Fazla Göster -  PIC|ULAK

Bir Cevap Yazın

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

Bak Bakalım ?

PIC|ULAK ile Gece Lambası

Merhaba arkadaşlar, Bu yazımızda, MekatronikLAB firmasının üretmiş olduğu  PIC mikrodenetl…