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}

Committer:
Fathoni17
Date:
Fri Sep 23 12:56:22 2016 +0000
Revision:
2:7565fb31357d
Parent:
1:8d4fab4e069c
Child:
3:545fb5899097
addition in using pwmIn for controlling motor speed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gustavaditya 0:24cb158c4064 1 #include "mbed.h"
gustavaditya 0:24cb158c4064 2 #include "millis.h"
Fathoni17 1:8d4fab4e069c 3 #include "Motor.h"
gustavaditya 0:24cb158c4064 4
gustavaditya 0:24cb158c4064 5 int val;
gustavaditya 0:24cb158c4064 6
gustavaditya 0:24cb158c4064 7 int encoder0Pos = 0;
gustavaditya 0:24cb158c4064 8 int encoder0PinALast = 0;
gustavaditya 0:24cb158c4064 9 int n = 0;
gustavaditya 0:24cb158c4064 10 float rpm;
gustavaditya 0:24cb158c4064 11 int start = 1;
gustavaditya 0:24cb158c4064 12 unsigned long int previousMillis = 0;
Fathoni17 2:7565fb31357d 13 //float pwmRead=0.00;
Fathoni17 1:8d4fab4e069c 14
Fathoni17 1:8d4fab4e069c 15 Motor motor1(D11,D13,D12);
Fathoni17 1:8d4fab4e069c 16 AnalogIn pwmIn(A0);
Fathoni17 1:8d4fab4e069c 17
gustavaditya 0:24cb158c4064 18 int main(void) {
Fathoni17 1:8d4fab4e069c 19
gustavaditya 0:24cb158c4064 20 DigitalIn encoder0PinA(D3);
gustavaditya 0:24cb158c4064 21 DigitalIn encoder0PinB(D4);
gustavaditya 0:24cb158c4064 22 Serial pc(USBTX,USBRX);
Fathoni17 1:8d4fab4e069c 23
gustavaditya 0:24cb158c4064 24 startMillis();
Fathoni17 1:8d4fab4e069c 25
gustavaditya 0:24cb158c4064 26 while(1){
gustavaditya 0:24cb158c4064 27
Fathoni17 2:7565fb31357d 28 // pwmRead = pwmIn.read();
Fathoni17 2:7565fb31357d 29 motor1.speed(pwmIn.read());
Fathoni17 2:7565fb31357d 30 pc.printf("pwm = %.02f",pwmIn.read());
gustavaditya 0:24cb158c4064 31
gustavaditya 0:24cb158c4064 32 unsigned long int currentMillis = millis();
gustavaditya 0:24cb158c4064 33 // int counter;
gustavaditya 0:24cb158c4064 34 // counter=currentMillis/100;
gustavaditya 0:24cb158c4064 35
Fathoni17 1:8d4fab4e069c 36 if (currentMillis-previousMillis>=500)
gustavaditya 0:24cb158c4064 37 {
gustavaditya 0:24cb158c4064 38 previousMillis = currentMillis;
gustavaditya 0:24cb158c4064 39 rpm = 120.0/7.0*encoder0Pos;
gustavaditya 0:24cb158c4064 40 pc.printf ("Dalam 500 ms = %d ",encoder0Pos);
gustavaditya 0:24cb158c4064 41 pc.printf ("rpm = %.0f \n",rpm);
gustavaditya 0:24cb158c4064 42 encoder0Pos = 0;
gustavaditya 0:24cb158c4064 43 }
gustavaditya 0:24cb158c4064 44
gustavaditya 0:24cb158c4064 45 else
gustavaditya 0:24cb158c4064 46 {
gustavaditya 0:24cb158c4064 47 n = encoder0PinA;
gustavaditya 0:24cb158c4064 48 if ((!encoder0PinALast) && (n))
gustavaditya 0:24cb158c4064 49 {
gustavaditya 0:24cb158c4064 50 if (!encoder0PinB)
gustavaditya 0:24cb158c4064 51 {
gustavaditya 0:24cb158c4064 52 encoder0Pos--;
gustavaditya 0:24cb158c4064 53 } else {
gustavaditya 0:24cb158c4064 54 encoder0Pos++;
gustavaditya 0:24cb158c4064 55 }
gustavaditya 0:24cb158c4064 56 //pc.printf ("%d \n",encoder0Pos);
gustavaditya 0:24cb158c4064 57 }
gustavaditya 0:24cb158c4064 58 encoder0PinALast = n;
gustavaditya 0:24cb158c4064 59 }
gustavaditya 0:24cb158c4064 60 }
gustavaditya 0:24cb158c4064 61 }