16F628A ile step motor

erdmbzkrt

Üye
Katılım
24 Eki 2009
Mesajlar
74
Puanları
1
Yaş
40
-hpwm kodu ile 2 step motor çalıştırılmak istenilse nasıl bir kod yazılabilir?
-Normal high low komutları ile 4 khz de açıları değiştirebiliriz bir formulü mevcutmudur?

Motorun biri sağa 45 derece dönerken diğeride sola 45 derece dönecektir.hpwm yada başka bir yöntemle nasıl yaparız? açıyı nasıl belirleriz?
 
Moderatör tarafında düzenlendi:
-hpwm kodu ile 2 step motor çalıştırılmak istenilse nasıl bir kod yazılabilir?
-Normal high low komutları ile 4 khz de açıları değiştirebiliriz bir formulü mevcutmudur?

Motorun biri sağa 45 derece dönerken diğeride sola 45 derece dönecektir.hpwm yada başka bir yöntemle nasıl yaparız? açıyı nasıl belirleriz?

Yazılacak koddan önce, motoru sürecek devreyi belirlemek gerekir. Motor tipine ve gücüne uygun, pals girişi ile çalışan sürücü belirlendikten sonra, donanımsal pwm - değişken frekans ile motorlar istenen hızda sürülebilir.

Motor, adım derecesi ve kullanılacak sürüş şekline göre gereken sayıda pals uygulanarak istenen açı kadar döndürülebilir.
 
Servo motor sürerkem HPWM kullanmana gerek yok,direk pulsout kullanıyorsun.Servo motorun 1 den 255 e kadar açı değeri var.Eğer sen motora 128 gönderirsen motor tam ortada duruyor(90derece).yani 64 verirsen 45derece oluyor.sen bir değişken tanımla,mesela N diye.Bu değişkeni birer birer artırarak,64 defa pulsout komutunu uygula.Motorun 45 derece döneceğini görürsün.Aynı değişkeni birerbirer azalt,o zaman da 45 derece geri döner.
 
include "bs1defs.bas"
n var byte
basla:

if porta.0=0 then
for n=0 to 64
pulsout porta.2,n
next n
endif

if porta.1=0 then
for n=64 to 0 step -1
pulsout porta.3,n
next n
endif
goto basla
end

Bu kodu denediğimde her iki döngü sonucundada -90 drece dönüyor acaba yanlışlık nerede.2 motoru döndürmek istiyorum ve bunlar aynı anda ters yöe dönmeliler yani biri -45 biri + 45 derece
 
i var byte
basla:
if porta.0=0 then
for i=1 to 50
pulsout porta.2,200
pause 200
next i
endif

if porta.1=0 then
for i=1 to 50
pulsout porta.2,100
pause 200
next i
endif

goto basla
end

Bu kod ile proteusta +90 ve -90 dönüyor fakat reste basmadan diğer butona basılınca komut iletilmiyor.
Ayrıca normal devreeyi kurup denediğimizde resete basınca tepki veriyor fakat 2 butona basonca dönmüyor.reset te geç tepki verebiliyor herzaman aynı tepkiyide vermiyor
 
Servonun markası nedir.Çünkü her servo aynı çalışmıyor.Yani 0 dan 255 e kadar çalışmıyor.Benim elimde 20 liralık bir servo vardı,mesela o 25-225 arası çalşışıyordu.25den küçük ya da 225ten büyük değer gönderince sapıtıyordu.Böylece servo 180 derece değil 150 derece falan oluyordu.Birde böyle dene istersen.
 

Forum istatistikleri

Konular
129,842
Mesajlar
930,694
Kullanıcılar
452,685
Son üye
rahmandogan

Yeni konular

Geri
Üst