PIC stand alone kontrol devresi

Katılım
30 Ara 2009
Mesajlar
13
Puanları
1
Arkadaşlar merhaba,

Bu isteği CNC kısmında yazdım ancak cevap alamadığım için burada tekrarlıyorum. Teleskop takip mekanizmasında kullanmayı düşündüğüm sistemde step motoru, hazır satılan driver ile sürmek istiyorum. Kontrolör olarakta PC kullanmayıp PIC ile kurulu bir devre ile yapmak istemekteyim. Devrede XYZ eksenlerini seçmek üzere bir anahtar, sağ ve sol için başka bir anahtar, sabit hız için (örneğin 1000 puls/s, 5000 puls/s, 10000 puls/s gibi) başka bir anahtar ve son olarakta tek adım yada sürekli dönme için buton lazım. Bu devre hazır driver'a step ve dir bilgilerini yollayacak. PC kullansaydım nasıl paralel porttan yolluyorsam o şekilde. PIC ile devre kurulduğu için bahsettiğim puls/s 'leride istediğimde PIC'i programlayıp değiştirebilmeliyim. Timer'ın hassas olması gerekecek bu uygulamada. Buna benzer devre bilen duyan varmı acaba?

Saygılarımla,
otomasyon
 
PIC ile devre kurulduğu için bahsettiğim puls/s 'leride istediğimde PIC'i programlayıp değiştirebilmeliyim. Timer'ın hassas olması gerekecek bu uygulamada. Buna benzer devre bilen duyan varmı acaba?

Devreyi ve yazılımı kendiniz mi yapmak istiyorsunuz yoksa yaptırmak mı? Bu türden hazır bir proje bulunabilir mi bilmiyorum fakat tasarlanabilir mutlaka.
 
Evet devreyi ve yazılımı kendim yapmak istiyorum. Mesela tek motor için benzer devreyi bulsam kendim geliştirebilirim. İnternette ilk aramamda bulamadım. Genelde driver devresi var ayrıca devir ayarını pot ile yapıyorlar yavaş yada hızlı misali. Ben ise bunun pic ile programlayabileceğim şeklini arıyorum.

Devreyi ve yazılımı kendiniz mi yapmak istiyorsunuz yoksa yaptırmak mı? Bu türden hazır bir proje bulunabilir mi bilmiyorum fakat tasarlanabilir mutlaka.
 
Olayı basitleştirmek adına; sadece 1 motorun saniyedeki step sayısını girsem ve sağ sol içinde bir tuş olsa , buna ait benzer uygulaması olan varmıydı?
 
555 ile yapılan pulse generator benzeri pic te nasıl yapılıyor acaba. internette 555 astable deyince örnek çok fakat hepsi pot ile frekansı değiştiriyor. dijital girişle frekansın değiştirildiği hiç bir örnek bulamadım.


Olayı basitleştirmek adına; sadece 1 motorun saniyedeki step sayısını girsem ve sağ sol içinde bir tuş olsa , buna ait benzer uygulaması olan varmıydı?
 
Merhaba , aradığınız şey tam olarak bu: http://www.marelmakina.com/cnc-kontroler.html

Tüm CNC'lerde kullanılır manuel işlem yapmayı sağlar , x-y-z seçilebilir , step miktarı da seçilebilir x1 ,x10 ,x100 ,x1000 , encoder mantığı ile çalışıyor , encoder pulslarını pice yolluyor , siz içerde katsayıya göre göre işlem yapıp motorlara yollayacaksınız. Bununla elle Hassas konumlama yapabilirsiniz.. Tabi biraz tuzlu...
 
Devreyi kendim yapmak istediğim için hazır ürün kullanmak cazip gelmiyor bana.


Merhaba , aradığınız şey tam olarak bu: http://www.marelmakina.com/cnc-kontroler.html

Tüm CNC'lerde kullanılır manuel işlem yapmayı sağlar , x-y-z seçilebilir , step miktarı da seçilebilir x1 ,x10 ,x100 ,x1000 , encoder mantığı ile çalışıyor , encoder pulslarını pice yolluyor , siz içerde katsayıya göre göre işlem yapıp motorlara yollayacaksınız. Bununla elle Hassas konumlama yapabilirsiniz.. Tabi biraz tuzlu...
 
Arkadaşlar pic 18F4520'den (5 Volt) saniyede örneğin 50,000 kare dalga yollatmak istesem örnek bir şema ve kod var mı elinizde. Zamanlamanın hassas olması gerekiyor.
 
Arkadaşlar merhaba,

Konuyla ilgili forumdan cevap alamayınca araştırmalarıma hız verdim. Aşağıda bulduklarımı sizinle paylaşmak istiyorum. Belki benzer uygulama yapmak isteyenlere yön gösterebilir. Elimde 18F4520 Pic , 20 Mhz kristal ve deneme kartı olarakta Exprog 8B var. Step motor sürücüsüne istediğim kare dalgayı göndermek üzere PWM özelliğini kullanmam gerektiğini buldum. Elimdeki Pic’in 2 adet ccp (capture, compare, pwm) bulunmakta. Aaşağıdaki basit kodla beraber deneme kartımdan istediğim frekansta sinyal üretip sonuca ulaştım. A satırında Ccp1 (veya ccp2 veya hem 1 hem 2 yi) kanalını pwm olarak seçtiniz. B satırında parantez içindeki ilk değer timer2 prescaler olarak adlandırılıyor ve 1 yada 4 yada 16 olabiliyor, bizim örnekte 16 alındı. İkinci değer olan 255 ise 0 ila 255 arasında olan bir sayı olması gerekiyor bunada PR2 sayaç değeri diyorlar. Sonuncu 1 olan değer ise heryerde 1 olarak gördüğüm için tam olarak fikrim yok. Sonuçta bu kadar sayı kabülünü frekansı saptamak için yaptık. Frekansın formülü şu şekilde.

Frekans = (kristal frekansı) /( (PR2+1)* Timer2Prescaler *4) bizim rakamlara uygularsak

Frekans = 20000000 (( 255+1) *16 *4) = 1221 Hz olarak çıkıyor.
C satırında ise kare dalga istiyorsak 255 değerinin yarısını yazıyorum. Yani %50 yük anlamına geliyor. Zamanın %50 sinde 5 volt yarısında 0 volt demek oluyor. Neticede 1221 Hz ‘de kare dalgayı elde etmiş oldum. Rakamlarla oynayarak istenen değerlere yakın frekanslar elde edilebilir. İstediğiniz her frekansı demiyorum dikkat edin çünkü nihayetinde ortada bir formül ve sabit değerler var. Elimde frekansmetre yok ama step motorun mikrosteplerine bakarak kabacada olsa frekansın doğru olduğu kanaatına vardım. Umarım yanlış aksettirdiğim bir şey olmaz . Bilen arkadaşlar yorum yaparsa sevinirim çünkü kafama takılan başka sorularda var onları sormak istiyorum. Örneğin kristalin zamanlama hassasiyeti güvenilir mi? ayrıca istenen tam frekansı yakalamak başka şekilde mümkünmü? vs. vs.


#include <18F4520.h>
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock = 20000000)

Main ()

{

Setup_ccp1(CCP_PWM); // A
Setup_timer_2(T2_DIV_BY_16,255,1); //B
Set_pwm_duty(127); //C

While(1);


}
 

Forum istatistikleri

Konular
128,238
Mesajlar
916,091
Kullanıcılar
450,048
Son üye
guney oral

Yeni konular

Geri
Üst