servo motor izolasyon

Başlatan burak450, 30 Eylül 2008, 00:23:56

burak450

Öncelikle şunu söyliyim sağolsun Ete hoca önceki başlıkta soruma yanıt verdi fakat bundan önce olduğu gibi servo motor ve proteus'un gerçek hayatla alakası yok.Daha önceki gibi kurduğum devre yine çalışmadı defalarca bc558 transistör  ile denedim ama olmuyor.Sadece tık tık diye bi ses duyuyorum o kadar motor kımıldamıyor.Elimde 4n35 war(optoisolator kendisi) servoyu pic ten ayırmak istiyorum sebebi de şu servoyu kullanırken pic sürekli reset atıyor.Yani servo yüksek akım çektiğinden pic'i resetliyor.Ne dersiniz ne yapmalıyım nasıl bir devre kurmalıyım?İnternette gezmediğim yerli,yabancı sayfa kalmadı  :(

tacettin

picle kaç tane rc servo sürüyorsun?biz 8 taneye kadar sürdük ve sizin yaptığınız gibi picle servoyu izole etmedik. acaba sisteminizde gözden kaçırdığınız bir şey olmasın.yada yazılımsal olarak. bizim yaptı8ğımız uygulamalar ise :
http://www.youtube.com/results?search_query=k%C3%B6rfez+eml&search_type=&aq=f
iyi çalışmalar...

burak450

Projem bitirme projesi.Renk bulup bunu lcd ye yansıtıp sonrada  fototransistör aracılığı ile  servo motorlarla cisim takibi yapmak istiyorum.Az önce tekrar denedim bazen servo reset attırıyor bazen kitleniyor bazense sağa sola sapıtık hareketler yapıyor.Servo sağa sola dönerken lcd parlaklığı değişiyor.Bazende düzgün çalışıyor ama lcd deki parlaklık değişimi her zaman war.Bende bu yüzden pic'i   servodan ayırmak istedim.Ne önerirsiniz?Kullandığım program bu.Bu kısım sadece takip etmesi için...Servo stabil değil tüm derdim bu yani...
Kullandığım servo bu http://www.rcuniverse.com/market/item.cfm?itemId=230128

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_BITS  4
DEFINE LCD_LINES 2
DEFINE OSC 4                                                                       
DEFINE ADC_BITS     8       'A/D çevirim sonucu kaç bit olacak
DEFINE ADC_CLOCK  3       'Clock kaynağı (3=rc)
DEFINE ADC_SAMPLEUS 100
SYMBOL F=PORTA.0
SYMBOL G=PORTA.1
alta var byte
usta var byte
altb var byte
ustb var byte
ADCON1=2
TRISA=3
TRISB=0
PORTB=0
TRISC=0
LCDOUT $FE,1 
pause 4000
adcin  0,ALTa
ADCin  1,usta

t var byte
i var byte
T=150

yap:




adcin  0,altb
ADCin  1,ustb






if  ((((usta+10)*100)/(ustb+10)))>135 then 
T=T+15
endif

if (((alta*100)/altb))>135 then 
T=T-15
endif


gosub motor





  

LCDOUT $fe,2,#usta," ",#ustb," ",#altA," ",#altb   

goto yap

motor:
for i=0 to 25
PULSOUT PORTC.2,T
PAUSEUS 20000-(T*10)
next
return

end

tacettin

hocam;
biz bu rc servoları sürerken şu metodu kullanıyoruz;

1. servonun çalışma frekansını timer0 a ayarla. (bu 50 Hz dir.) yani periyot olarak T=20msn

2. picin timerini öyle bir kuralımki 0 dan 255'e gittiğinde 20msn olsun.(timer0 8 bitlik)

3. timer0 ın değerini bu 255 adet zamanın arasından öğle değerlerde çıkışlarını set etki bunlar, (temel olarak <-   I    ->   yönleri için 1msn, 1,5ms ve 2msn oluyor) çıkışlar buralarda (duty değerleri) olsun.

4. ve budeğerler her timer0 yenilenmesinde olsun. dolayısı ile pwm elde etmiş olduk.

5. bundan sonra pic timer kesmesi ile bunu kendi otomatik olarak yaparken ana fonksiyonda sen istersen adc okut istiyorsan adc den okuduğun bilgiye göre duty lerini değiştir.

senin kullandığın rc servo motor ile bizim kullandıklarımız aynı.
birde kullandığın güç kaynağı iyi olsun. güç kaynağı yetersizse bu dediğin problemler de olabilir.

kolay gelsin...

burak450

tacettin cevabın için sağol fakat bende senin dediğin o 5 maddeyi uygulamamış mıyım?

PULSOUT PORTC.2,T
PAUSEUS 20000-(T*10)    

bu zaten 20 ms lik pulse vermek manasına gelmiyor mu?T değerini de servo motorun yeri olarak yani senin dediğin duty manasına geliyor galiba.Güç kaynağım 5.2 volt civarı voltaj veriyor...

tacettin

senin yaptığında  PAUSEUS 20000-(T*10)   işleminde pic başka hiç bir işlem yapmaz. çünkü beklemededir. ama timer0 kesmesi ile yaptığında denetleyici otomatik olarak kendi üretmektedir. senin bu yaptığınla birden fazla servo kullanımı biraz zor gibi gözükmekte. güç kaynağında ise güç kaynağın kaç amperlik?

burak450

güç kaynağında aynen şunlar yazıyo

switching adapter
input:ac 100-240V-50hz 0.36A
output:dc 5v--2.5A