Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

sanal encoder

Başlatan enrique_iglesias, 22 Ocak 2015, 14:24:50

enrique_iglesias



arkadaşlar şemadaki bir sistem var
12v'luk bir motoru pwm ile birlikte sağa ve sola çeviren bir sistem var ve bu sistemde bir encoder takılı...
ben şemadaki gibi bir devre kurdum ve motorun ne tarafa döndüğünü tespit etmeye çalışıyorum.
Şu halde tespit edebiliyorum ancak işin içine karışık bir durum giriyor buda PWM
optoları okuyorum 0 olan taraf o yönde enerjinin varlığını gösteriyor ve o yöne döndüğünü tespit ediyorum, ancak motor pwm ile döndüğü için tabiki optolarda high low durumunu yakalayıp pwmi pice yansıtıyor. Ozamanda yazılımda aksaklık oluyor. yazılımda while portb.0=0 ....... wend döngüsü kullandığımda portb.0=1 durumları görünüyor...

Çünkü sanal bir encoder oluşturdum.
encoderi söktüm pic'den a ve b sinyalleri üreten bir yazılım ekledim...böylelikle motoru kendim istediğim devirde çalıştırabileceğim ancak pwm'i göz ardı edemiyorum....


Ayrıca; puls hızlarında deneme yaptım 4mhz kristal ile (sanırım her komut 1us)
pauseus 0 için motor yavaş dönüyor, (gecikme 1us)
pauseus 10 yaparsam çok hızlı dönüyor, (gecikme 11us)
daha yavaş döndürmem için 1us altına mı düşmeliyim?
20mhz kristal mi takmalıyım?
bu mantıkla 1us altına düşersem bu duruma göre daha mı yavaş dönecek sistem?

trisb=%00001100
portb=0

a var portb.0
b var portb.1
sag var portb.2
sol var portb.3
ledsag var portb.4
ledsol var portb.5
bekle var word
pause 1000

bekle=0
basla:
    while sag=0
       ledsag=1 
       pauseus bekle
       a=0
       pauseus bekle
       b=1
       pauseus bekle
       a=0
       pauseus bekle
       b=0
       pauseus bekle
       a=1
       pauseus bekle
       b=0
       pauseus bekle
       a=1
       pauseus bekle
       b=1
   wend
       
    while sol=0
       ledsol=1 
       pauseus bekle
       a=1
       pauseus bekle
       b=0
       pauseus bekle
       a=0
       pauseus bekle
       b=0
       pauseus bekle
       a=0
       pauseus bekle
       b=1
       pauseus bekle
       a=1
       pauseus bekle
       b=1
    wend   
ledsag=0
ledsol=0

goto basla




Salih

Proteus'da encoder'li motor var,
onu kullanabilirsin.
MOTOR-ENCODER isimli.

enrique_iglesias

Yok bu devrenin çizilmiş hali gerçeği ile denemeler yapıyorum... Ama öğrenmiş oldum teşekkürler.

enrique_iglesias

10mhZ hıza çıktım sorunum çözüldü, arayan arkadaşların dikkatine..