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 Mpos7
IF PORTB=%00000011 THEN Mpos6
IF PORTB=%00000111 THEN Mpos5
IF PORTB=%00000110 THEN Mpos4
IF PORTB=%00001110 THEN Mpos3
IF PORTB=%00001100 THEN Mpos2
IF PORTB=%00011100 THEN Mpos1
IF PORTB=%00011000 THEN Mpos0
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 Mpos7
IF PORTB=%11111100 THEN Mpos6
IF PORTB=%11111000 THEN Mpos5
IF PORTB=%11111001 THEN Mpos4
IF PORTB=%11110001 THEN Mpos3
IF PORTB=%11110011 THEN Mpos2
IF PORTB=%11100011 THEN Mpos1
IF PORTB=%11100111 THEN Mpos0
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