Pic16f628a ve uln2004 ile spindle motor sürme

Başlatan VoLTaRY, 02 Aralık 2015, 19:19:23

VoLTaRY

Merhaba, hem elektronikte ve hem forumda yeniyim. ben harddiskten çıkardığım 3 faz 1 toprak toplamda 4 çıkışı bulunan spindle motorumu sürmeye çalışıyorum.



#include <16F628A.h>
#FUSES NOWDT
#FUSES HS
#FUSES NOPUT
#FUSES NOPROTECT
#FUSES NOBROWNOUT
#FUSES MCLR
#FUSES NOLVP
#FUSES NOCPD
#use delay(clock=4000000)

void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_ccp1(CCP_OFF);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
int i;
set_tris_a(0x00);
output_a(0x00);
for(i=200;i<2001;i=i-10)
{
output_high(pin_a0);
delay_ms(i);
output_low(pin_a2);
delay_ms(4*i);
output_high(pin_a1);
delay_ms(i);
output_low(pin_a0);
delay_ms(4*i);
output_high(pin_a2);
delay_ms(i);
output_low(pin_a1);
delay_ms(4*i);
if (i=10)
{
while(1)
{

output_high(pin_a0);
delay_ms(i);
output_low(pin_a2);
delay_ms(4*i);
output_high(pin_a1);
delay_ms(i);
output_low(pin_a0);
delay_ms(4*i);
output_high(pin_a2);
delay_ms(i);
output_low(pin_a1);
delay_ms(4*i);
}
}
}
}


Pic besleme voltaj: 5v
uln2004 besleme voltajı: 12v
olarak kullandım

yukarıdaki kodu kullanarak sürmeyi denedim fakat motor ,kaba tabirle, birkaç kez tekliyo sonra sabit kalıyo. bildiklerimi kullanarak ancak bukadarını yapabildim. yardımcı olabilirseniz çok sevinirim.
teşekkürler

VoLTaRY


VoLTaRY

kimse mi bilmiyor yoksa ilk mesajım diye kimse takmıyor mu? eğer öyleyse hoş bir davranış değil bu.

ete

Spindle motor tabiri bir çok kişiye bende dahil yabancı bir terim. Bildiğim o motorlara brushles yani fırçasız motor deniliyor. Fırçasız motor sürmek benim için bile çok zor bir iş. Zira sadece yazılımla iş bitmiyor. İşin donanım kısmıda işin püf noktasını oluşturuyor. Zira bildiğim kadarı ile bu motorların içinde hall sensör veya sensörler olması gerekir. Rotor döndükçe hangi hall sensörü tetiklerse bu tespit edilmeli o sensöre ait sargıya gerilim verilmelidir. Basitçe işin prensibi böyle. Senin yaptığın şekilde sıralı bobinleri sürem ile motorun dönebileceğini sanmıyorum.
Bu gibi işlere girişmeden önce epeyce bir araştırma yapılmalı motor tipleri iç yapıları öğrenilmeli ve ona göre sürme mekanizması geliştirilmelidir.
Anlayacağın konu çok basit değil ve bu yüzden cevap alamadın. Kendi kendine senaryo yazmaman daha doğru olurdu. Kimse ilk mesaj mı yok bilmeme kaçıncı mesajmı diye bakmaz. Konuya bakar.
Sonuçta herkes bildiği şeyleri yanıtlar öyle değilmi. yanıt garantiside vermiyoruz bu sitede.

Ete

VoLTaRY

#4
Beklediğim sadece bir cevaptı. Buradaki çoğu üyenin bilgisi benden fazla. iyi yada kötü sadece yol gösterecek bir şeye ihtiyacım var yeni başlayan herkes gibi.

Elimden geldiği kadar araştırma yapıyorum genelde assembly kullanıldığı için ve ingilizcemin yeterli düzeyde olmadığı için edinebileceğim bilgi sınırlı oluyor.

bir sitede  hall sensörü olmadan da sürülebildiğini okumuştum tabiki sensörle çalıştığı kadar stabil ve verimli çalışmasada.

http://home.clear.net.nz/pages/joecolquitt/0hdd.html

Bulduğum sayfa burada. dediğim gibi assembly bilgim olmadığı için çözümleyemiyorum.



;hddmotor.asm - driver for 3-coil HDD motor
;13/12/2000

;Look for external clock on a3 and change FET-driving bit pattern

clock    equ porta.3    ;i/p clock

;EEPROM bit patterns

ee1      dbee  24h   ;100 100
ee2      dbee  36h   ;110 110
ee3      dbee  12h   ;010 010
ee4      dbee  1bh   ;011 011
ee5      dbee  09h   ;001 001
ee6      dbee  2dh   ;101 101

index    rb    ;RAM byte for counter

setup

movlw  08h
tris  porta
movlw  00h
tris  portb
movlw  80h
option
clrf  index
movlw  24h
movwf  portb

clocklo    ;main loop

btfss  clock       ;wait for ext clock to go high
goto  clocklo

change    ;

movf  index,w    ;get next bit pattern from EE
movwf  eeadr
call  readee
movwf  portb

incf  index,f
movlw  06          ;loop for 6 EE locations
xorwf  index,w
btfss  zero
goto  clockhi
clrf  index

clockhi    ;

btfsc  clock       ;wait for clock low
goto  clockhi
goto  clocklo     ;next clock, next pattern

readee    ;get next pattern

bsf  rp0
bsf  rd
bcf  rp0
movf  eedata,w
return


Teşekkür ederim yorumunuz için.

ete

Asm yi çözmen pek gerekmiyor. Sayfadında pit pattern verilmiş zaten. Yalnız o devrenin epeyce karmaşık bir sürücüsü var. Ayrıca PortA.3 den de bir Clk palsi girildiği belirtilmiş. Bu clk sanırım zamanlamayı ayarlamak için kullanılıyor.
Devreyi yaptınmı diye sorayım ? Clk palsi veriyormusun?.

Ete

VoLTaRY

ben o pulse ı pic ile kendim yapmayı düşünmüştüm. belirli bir gecikme ile yapmayı düşünmüştüm. peki 555 ile kursam vereceği,m pulse yeterli olur mu?
dediğim şekilde breadboard üzerinde kurdum motor birkaç kez tekliyo belirli bir konumda sabit kalıyor.

dediğiniz şekilde pulse verip sonuçlarını tekrar sizinle paylaşacağım.
teşekkürler yorumunuz için

ete

Puls vermek yeterli değil. Adam puls vermiş ama bir yandan bobinleri sürmek için puls in high olduğu anı kollamış.
Seninde aynı şeyleri yapman gerek. Puls verdin ama programda palsi takip eden bir kod yazmaz isen bir sonuç alamazsın.

Ete

elektromanyaq

eğer cok istiyosan çalıştırmak bldc motoru  arızalı elektrıklı bısıkletlerın sürücü kartından bul onda olan ır21 serisi sürücüleri sen kendın yazdıgın kodlarla çalıstırırsın sahşen  ben hem sensörlü hemde sensörsüz motorları sürdüm  en basiit yolu bu....

Powered by EzPortal