pid with encoder as its feedback

Dependencies:   Motor PID mbed millis

Fork of Tes_Encoder_Bawaan by KRAI 2017

PID using PID library of mbed

depedencies = Library : {PID, mbed, motor, milis}

main.cpp

Committer:
Fathoni17
Date:
2016-09-23
Revision:
2:7565fb31357d
Parent:
1:8d4fab4e069c
Child:
3:545fb5899097

File content as of revision 2:7565fb31357d:

#include "mbed.h"
#include "millis.h"
#include "Motor.h"

int val; 

 int encoder0Pos = 0;
 int encoder0PinALast = 0;
 int n = 0;
 float rpm;
 int start = 1;
 unsigned long int previousMillis = 0;
 //float pwmRead=0.00;
 
 Motor motor1(D11,D13,D12);
 AnalogIn pwmIn(A0);
 
 int main(void) { 

   DigitalIn encoder0PinA(D3);
   DigitalIn encoder0PinB(D4);
   Serial pc(USBTX,USBRX);

    startMillis();
    
    while(1){
    
//    pwmRead = pwmIn.read();
    motor1.speed(pwmIn.read());
    pc.printf("pwm = %.02f",pwmIn.read());
    
    unsigned long int currentMillis = millis();
//    int counter;
//    counter=currentMillis/100;
    
    if (currentMillis-previousMillis>=500)
    {
       previousMillis = currentMillis;
       rpm = 120.0/7.0*encoder0Pos;
       pc.printf ("Dalam 500 ms = %d        ",encoder0Pos);
       pc.printf ("rpm = %.0f \n",rpm);
       encoder0Pos = 0;
    }

    else
    { 
       n = encoder0PinA;
       if ((!encoder0PinALast) && (n))
       {
         if (!encoder0PinB)
         {
           encoder0Pos--;
         } else {
           encoder0Pos++;
         }
         //pc.printf ("%d \n",encoder0Pos);
        }
        encoder0PinALast = n;
    }
 }
 }