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:
gustavaditya
Date:
Thu Sep 22 15:14:41 2016 +0000
Revision:
0:24cb158c4064
Child:
1:8d4fab4e069c
Coba Hitung RPM...Atas Bergairah

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"
gustavaditya 0:24cb158c4064 3
gustavaditya 0:24cb158c4064 4 int val;
gustavaditya 0:24cb158c4064 5
gustavaditya 0:24cb158c4064 6 int encoder0Pos = 0;
gustavaditya 0:24cb158c4064 7 int encoder0PinALast = 0;
gustavaditya 0:24cb158c4064 8 int n = 0;
gustavaditya 0:24cb158c4064 9 float rpm;
gustavaditya 0:24cb158c4064 10 int start = 1;
gustavaditya 0:24cb158c4064 11 unsigned long int previousMillis = 0;
gustavaditya 0:24cb158c4064 12
gustavaditya 0:24cb158c4064 13 int main(void) {
gustavaditya 0:24cb158c4064 14
gustavaditya 0:24cb158c4064 15 DigitalIn encoder0PinA(D3);
gustavaditya 0:24cb158c4064 16 DigitalIn encoder0PinB(D4);
gustavaditya 0:24cb158c4064 17 Serial pc(USBTX,USBRX);
gustavaditya 0:24cb158c4064 18 pc.baud(9600);
gustavaditya 0:24cb158c4064 19 startMillis();
gustavaditya 0:24cb158c4064 20 while(1){
gustavaditya 0:24cb158c4064 21
gustavaditya 0:24cb158c4064 22 // AnalogIn(A0);
gustavaditya 0:24cb158c4064 23
gustavaditya 0:24cb158c4064 24
gustavaditya 0:24cb158c4064 25 unsigned long int currentMillis = millis();
gustavaditya 0:24cb158c4064 26 // int counter;
gustavaditya 0:24cb158c4064 27 // counter=currentMillis/100;
gustavaditya 0:24cb158c4064 28
gustavaditya 0:24cb158c4064 29 if (currentMillis-previousMillis==500)
gustavaditya 0:24cb158c4064 30 {
gustavaditya 0:24cb158c4064 31 previousMillis = currentMillis;
gustavaditya 0:24cb158c4064 32 rpm = 120.0/7.0*encoder0Pos;
gustavaditya 0:24cb158c4064 33 pc.printf ("Dalam 500 ms = %d ",encoder0Pos);
gustavaditya 0:24cb158c4064 34 pc.printf ("rpm = %.0f \n",rpm);
gustavaditya 0:24cb158c4064 35 encoder0Pos = 0;
gustavaditya 0:24cb158c4064 36 }
gustavaditya 0:24cb158c4064 37
gustavaditya 0:24cb158c4064 38 else
gustavaditya 0:24cb158c4064 39 {
gustavaditya 0:24cb158c4064 40 n = encoder0PinA;
gustavaditya 0:24cb158c4064 41 if ((!encoder0PinALast) && (n))
gustavaditya 0:24cb158c4064 42 {
gustavaditya 0:24cb158c4064 43 if (!encoder0PinB)
gustavaditya 0:24cb158c4064 44 {
gustavaditya 0:24cb158c4064 45 encoder0Pos--;
gustavaditya 0:24cb158c4064 46 } else {
gustavaditya 0:24cb158c4064 47 encoder0Pos++;
gustavaditya 0:24cb158c4064 48 }
gustavaditya 0:24cb158c4064 49 //pc.printf ("%d \n",encoder0Pos);
gustavaditya 0:24cb158c4064 50 }
gustavaditya 0:24cb158c4064 51 encoder0PinALast = n;
gustavaditya 0:24cb158c4064 52 }
gustavaditya 0:24cb158c4064 53 }
gustavaditya 0:24cb158c4064 54 }