hode pid broertje

Dependencies:   HIDScope QEI biquadFilter mbed

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?

UserRevisionLine numberNew 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 }