CNC KONTROL KARTI

Başlatan onur, 03 Eylül 2011, 00:31:39

onur

Hocam öncelikle yeni sitemiz hayırlı osun diğer sitede kalan bi proje hakkında yardım istemiştim ama değişince konuda kayboldu.
Şimdi uniplar step motor için dışarıdan alcağım clok sinyali ile motoru bir adım döndermek istiyorum bu konuda yardımızı istemiştim umarım konuyu hatırlamışsınızdır. Saygılarımla.

ONUR
Küfür şeytana mahsustur, tövbe insana.. Aşk kadına yakışır, sevmek adama

ete

Konu aslında kaybolmadı ama eski konuları aktarmanın yolunu henüz bulamadık. Ya bir dosya halinde koyacağız isteyen açıp bakacak yada her mesejı sanki ben yazmışım gibi konu başlığı açıp bütün mesajları kayıt edeceğim. Buna karar veremedim henüz.

Her neyse konuya devam edebiliriz.

Dışarıdan gelen CLK palsi ile motoru 1 adım döndürmek istediğini yazıyorsun. Peki dışarıdan tek puls almayı nasıl başaracaksın?

Şayet clk sinyallerinide pic ile üretirsen o zaman puls lerine hakim olabilirsin. Aksi halde adımlamayı unut gitsin derim.

Aslında sana verdiğim programda bu konuda her türlü bilgi var idi.
Programa biraz bakarak anlayabilirdin.
Ben dışarıdan gelecek pulslere hakim olurum diyorsan ve arada sürücüde kullanmayacağım dersen yapman gerekenlerde şunlar;
Unipolar motor 6 adet kabloya sahiptir. Önce bunların sıralamasını bulman gerekiyor. Aslında iki bağımsız sargı gibi düşünmen gerek. Her sargının ortasından ayrıca bir uç çıkarılmıştır.
Motor uçlarına A-B-C-D-E-F şeklinde isim verelim. Bunlar A-B-C ve D-E-F şeklinde ayrı sargılar olsunlar.
Bu uçları PortB.0 ile PortB.5 arasındaki pinlerin sürdüğü ULN serisi entegreye bağladığımızı yada arada transistör kullandığımızı düşünelim.
Kim nereye bağlı tam olarak anlamak için;
A = PORTB.0
B = PORTB.1
C = PORTB.2
D = PORTB.3
E = PORTB.4
F = PORTB.5
şeklinde bağlı olsun.
Bu uçlara önce sıfır verip  (PORTB= %00000000) ardından PORTB=%00000001 şeklinde değer verirsen motor 1 adım bir yöne döner
Motoru bir adım daha döndürmek için PORTB=%00000010 değerini vermek lazım.
Bir adım daha döndürmek için PORTB=%00000100 değerini bir adım daha döndürmek için  PORTB=%00001000
döndürmeye devam etmek için aynı değerleri sırası ile yeniden vermek gerekiyor.
Bu değerleri tersinden verirsen motor ters yöne dönecektir.
Şimdi motoru döndürmek için portB ye değer vermek gerekiyor iken dışarıdan gelen pulslar ile bunu nasıl başaracağız?.
BU işi pic in kendisi kolaylıkla yapabilir. Sırası ile portB ye değer verir , yeteri kadar bekler ve yeni değeri ardından vererek motoru çevirmek kolayca halledilebilir. Ama dışarıdan gelen puls ile bunu yapmaya kalkarsan işin gerçekten zor olacaktır.
Peki nasıl yaparım dersen, harici Puls bir giriş pinine bağlanmalı. Üstelik bu pin kesme oluşturabilmeli. Kesme oluşunca motorun bağlı olduğu porta gerekli değeri vermek ve kesmeden çıkmak şeklinde halledilebilir. Kısaca her kesme oluştuğunda sırası ile porta verilmesi gereken değerleri verir ve kesmeden çıkarız. Burada dönme hızını gelen pulsların sıklığı belirler.
Benim bildiğim kadarı ile bu iş ancak bu şekilde olur ve bana kalırsa biraz gecikmeli çalışır gibime geliyor.
Halbuki L297-298 çiftinden oluşan bir motor sürücüsü kullanırsan orada zaten bir CLK girişi olacaktır. Pulsi oraya girersin ve motor isitediğin şekilde döner.
İşin nasıl yapılacağını anlattım. Anlamadığın yer var ise yeniden sorarsın.

Ete

onur

hocam aslında benim de yapmak istediğim L297-298 çiftinin aynısı fakat ben bu uygulamaya ayriyeten sınır swiçleri, acil stop, lcd ekran ve keypad koymayı düşünüyorum. kafamdaki proje şöyleki ben keypadten belirli bir acı değeri girip orda durdurmak ayrıca L297-298 çiftini bir türlü doru dürüst çalıştıramıyorum :( genede verdiğiniz bilgiler için teşekkürler.
ONUR
Küfür şeytana mahsustur, tövbe insana.. Aşk kadına yakışır, sevmek adama

ete

Onur,
Kafanda bir proje var biliyorum. Detaylarıda oluşmuş kafanda ama ortada ne bir şema nede başlanmış bir proje var.
Başlamak bitirmenin yarısıdır derler. Önce devre şemanı bir çiz takıldığın yer varsa sor sonra program kısmına geçelim.
Ama işin çoğunu senin yapman gerekiyor. Kendine güveniyorsan başlayalım. Değilse bilgini biraz geliştirmen gerekecek.

Ete

onur

Ben böyle program yazdım girişe deneme amaclı bir buton bağladım proteusta da pulse jeneratörü kullandım. Pause sürelerim çok uzun biliyorum ama kısaltıncada motor sapıtıyor titreyip kalıyor. Pulse girişlerini wend-while döngüsüne almam gerekiyor bunu biliyorum ama daha eklemedim. motoruda IFRZ44 ile sürdüm. Bu program için muhakkak eksiklerim yada yanlışım vardır sizden ricam programa bir göz atmanız. Saygılarımla. hacam şemayıda hemen çizip ekliyorum
ONUR
Küfür şeytana mahsustur, tövbe insana.. Aşk kadına yakışır, sevmek adama

ete

Onur,
L297+298 çiftinden bahsediyoruz ama senin verdiğin program bu sisteme ait değil.
Ayrıca program çok basit mantıkla yazılmış.
Bu konuyu yeniden keşfetmeye gerek yok. Benim verdiğim program denenmiş çalışan bir program ve istediğinizi yapacak düzeydedir.

Ete


onur

Alıntı YapBenim verdiğim program denenmiş çalışan bir program ve istediğinizi yapacak düzeydedir.
demişsiniz ama klasör içinde php kodları yoktu sadece hex var. Ayrıca bi arkadaşım ekteki devreyi paylaşmıştı benimde istediğim tam anlamyıla bu ama php kodalrı ondada yok yinede yardımınız için teşekkür ederim devreyi buraya ekledimki başka arkadaşların belki işine yarar içinde isis similasyonuda var
Küfür şeytana mahsustur, tövbe insana.. Aşk kadına yakışır, sevmek adama

KAZIMUGUR

PHP kodları nedir bilmiyorum.
Doğrudan asm ile yazılmış ve kodlarda içerisinde , gizli saklı değil yani.
TurboCNC olarak bilinen ,  Mach3 ya da KCam gibi , bilgisayardan 3 eksen kumanda için kullanılan bir programın sitesinde , örnek olarak paylaşılmış kodlardır.

http://www.dakeng.com/

Ayrıca pminmo da farklı projeler inceleyebilirsin.

onur

kazımuğur verdiğin bilgi için çok teşekkür ederim zaten ben programı ve devreyi forum değişmeden almıştım orda sana yanıt olarakta ben asm bilmiyorum demiştim yanlış anlaşılma olmasın emeğine sağlık çok teşekkür ederim program için çok işime yarıyacak
ONUR
Küfür şeytana mahsustur, tövbe insana.. Aşk kadına yakışır, sevmek adama

Powered by EzPortal