pid with encoder as its feedback
Dependencies: Motor PID mbed millis
Fork of Tes_Encoder_Bawaan by
PID using PID library of mbed
depedencies = Library : {PID, mbed, motor, milis}
main.cpp
- Committer:
- Fathoni17
- Date:
- 2016-09-23
- Revision:
- 1:8d4fab4e069c
- Parent:
- 0:24cb158c4064
- Child:
- 2:7565fb31357d
File content as of revision 1:8d4fab4e069c:
#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(pwmRead/255); 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; } } }