PI algorıtması yardım

Başlatan yusuf.ozyer, 23 Şubat 2015, 00:55:25

yusuf.ozyer

hocalarım hayırlı akşamlar
hocalarım ben bir çizgi izleyen robot yapmakdayım PI hesabını yapıp sonucu çıkartıyorum fakat bunları motora nasıl aktaracağımı bulamadım yaptığım çalışmalar hep başarısız oluyor
bu çıkışa pı hesabının sonucu yazılıyor fakat bunu nasıl motora aktaracağımı bulamadım motorlar sürekli ileri gidecek şekilde dönerken sadece pwm değerinimi oynayacağım  o çıkışı halledemedim yani
PID:
KP=10 : KI=10 
GOSUB ADCOKU  '//sensörleri okuyup değeri   mpos  değişkenine  kayıt ediyor
   ERROR        = MPOS        '// sensörlerden gelen bilgiyi error adlı değişkene aktarıyor
   PROPORTIONAL = TPOS-ERROR  
   P            = P*KP
   I            = (I+PROPORTIONAL )/ KI
   
   CIKIS = P+I
   LAST_ERROR = ERROR
GOTO PID


alt kısımda sensörleri okuması için olan kısım
gelen her anolog bilgi 150 nin üzerinde ise  lojik 1 150 nin altında ise lojik 0 vermekde ve bunun sonucunda portb deki ledleri yakıyor
ardından portb deki bilgilere göre mpos değişkenine değer atanıyor
ADCOKU:
oran=150
adcin 0 ,SAGSEN3
adcin 1 ,SAGSEN2
adcin 2 ,SAGSEN1
adcin 3 ,ONSEN1
adcin 4 ,ONSEN2
adcin 5 ,SOLSEN1
adcin 6 ,SOLSEN2
adcin 7 ,SOLSEN3
   
if SAGSEN3<oran THEN 
PortB.0 =1 
 else 
 PortB.0=0
ENDIF

if SAGSEN2<oran THEN 
PortB.1 =1  
else 
PortB.1=0
ENDIF

if SAGSEN1<oran THEN 
PortB.2 =1 
 else 
 PortB.2=0
ENDIF

if ONSEN1<oran  THEN 
PortB.3 =1  
else 
PortB.3=0
ENDIF

if ONSEN2<oran  THEN 
PortB.4 =1 
 else 
 PortB.4=0
 ENDIF
 
if SOLSEN1<oran THEN 
PortB.5 =1  
else 
PortB.5=0
ENDIF

If SOLSEN2<oran THEN 
PortB.6 =1  
else 
PortB.6=0
ENDIF

if SOLSEN3<oran THEN 
PortB.7 =1 
 else 
 PortB.7=0
 ENDIF


'// bu bölümde siyah zemin üzerine beyaz çizgi okumak için yazılı
IF PORTB=%00000001 THEN Mpos =  7 
IF PORTB=%00000011 THEN Mpos =  6
IF PORTB=%00000111 THEN Mpos =  5
IF PORTB=%00000110 THEN Mpos =  4
IF PORTB=%00001110 THEN Mpos =  3
IF PORTB=%00001100 THEN Mpos =  2
IF PORTB=%00011100 THEN Mpos =  1
IF PORTB=%00011000 THEN Mpos =  0
IF PORTB=%00111000 THEN Mpos = -1
IF PORTB=%00110000 THEN Mpos = -2
IF PORTB=%01110000 THEN Mpos = -3
IF PORTB=%01100000 THEN Mpos = -4
IF PORTB=%11100000 THEN Mpos = -5
IF PORTB=%11000000 THEN Mpos = -6
IF PORTB=%10000000 THEN Mpos = -7   
'//bu bölümde beyaz zemin üzerindeki siyah çizgi okumak için yazılı
IF PORTB=%11111110 THEN Mpos =  7
IF PORTB=%11111100 THEN Mpos =  6
IF PORTB=%11111000 THEN Mpos =  5
IF PORTB=%11111001 THEN Mpos =  4
IF PORTB=%11110001 THEN Mpos =  3
IF PORTB=%11110011 THEN Mpos =  2
IF PORTB=%11100011 THEN Mpos =  1
IF PORTB=%11100111 THEN Mpos =  0
IF PORTB=%11000111 THEN Mpos = -1
IF PORTB=%11001111 THEN Mpos = -2
IF PORTB=%10001111 THEN Mpos = -3
IF PORTB=%10011111 THEN Mpos = -4
IF PORTB=%00011111 THEN Mpos = -5
IF PORTB=%00111111 THEN Mpos = -6
IF PORTB=%01111111 THEN Mpos = -7 


ENDIF
RETURN

yardımlarınız için şimdiden teşekkür ederim