hode pid broertje
Dependencies: HIDScope QEI biquadFilter mbed
main.cpp@0:edcdd09960f7, 2018-10-15 (annotated)
- Committer:
- ekiliptiay
- Date:
- Mon Oct 15 10:39:56 2018 +0000
- Revision:
- 0:edcdd09960f7
- Child:
- 1:3d92e7ff3dda
Assignment 0 working, moving on to 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ekiliptiay | 0:edcdd09960f7 | 1 | #include "mbed.h" |
ekiliptiay | 0:edcdd09960f7 | 2 | |
ekiliptiay | 0:edcdd09960f7 | 3 | AnalogIn pot1(A2); // Controls potentiometer 1, which controls motor 1 |
ekiliptiay | 0:edcdd09960f7 | 4 | InterruptIn button1(D0); |
ekiliptiay | 0:edcdd09960f7 | 5 | DigitalOut directionpin(D7); |
ekiliptiay | 0:edcdd09960f7 | 6 | PwmOut pwmpin(D6); |
ekiliptiay | 0:edcdd09960f7 | 7 | |
ekiliptiay | 0:edcdd09960f7 | 8 | Serial pc(USBTX, USBRX); // tx, rx |
ekiliptiay | 0:edcdd09960f7 | 9 | |
ekiliptiay | 0:edcdd09960f7 | 10 | void SetMotorSpeed1(){ |
ekiliptiay | 0:edcdd09960f7 | 11 | float MotorSpeed1 = pot1; // Speed of the motor in rad/s |
ekiliptiay | 0:edcdd09960f7 | 12 | pc.printf("Speed of motor 1: %f rad/s. \n", MotorSpeed1); |
ekiliptiay | 0:edcdd09960f7 | 13 | if(pot1<=0.46f){ |
ekiliptiay | 0:edcdd09960f7 | 14 | pwmpin = 0; |
ekiliptiay | 0:edcdd09960f7 | 15 | } |
ekiliptiay | 0:edcdd09960f7 | 16 | else{ |
ekiliptiay | 0:edcdd09960f7 | 17 | pwmpin = fabs(pot1); // Outputs the value of potmeter 1, which is used as the velocity. |
ekiliptiay | 0:edcdd09960f7 | 18 | } |
ekiliptiay | 0:edcdd09960f7 | 19 | } |
ekiliptiay | 0:edcdd09960f7 | 20 | |
ekiliptiay | 0:edcdd09960f7 | 21 | void Motor1Direction(){ |
ekiliptiay | 0:edcdd09960f7 | 22 | directionpin = !directionpin; |
ekiliptiay | 0:edcdd09960f7 | 23 | } |
ekiliptiay | 0:edcdd09960f7 | 24 | |
ekiliptiay | 0:edcdd09960f7 | 25 | int main() { |
ekiliptiay | 0:edcdd09960f7 | 26 | pwmpin.period_us(60); // Set pwm period |
ekiliptiay | 0:edcdd09960f7 | 27 | button1.rise(&Motor1Direction); // if the button is pressed, change the direction |
ekiliptiay | 0:edcdd09960f7 | 28 | while (true) { |
ekiliptiay | 0:edcdd09960f7 | 29 | SetMotorSpeed1(); |
ekiliptiay | 0:edcdd09960f7 | 30 | } |
ekiliptiay | 0:edcdd09960f7 | 31 | } |