Engbert Miedema / Mbed 2 deprecated daniel

Dependencies:   HCSR04 HIDScope PID mbed

Committer:
emiedema
Date:
Tue Nov 03 14:42:26 2015 +0000
Revision:
0:d3f432c5fb55
More awesomeness!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emiedema 0:d3f432c5fb55 1 #include "mbed.h"
emiedema 0:d3f432c5fb55 2 #include "PID.h"
emiedema 0:d3f432c5fb55 3 #include "hcsr04.h"
emiedema 0:d3f432c5fb55 4 //#include "HIDScope.h"
emiedema 0:d3f432c5fb55 5
emiedema 0:d3f432c5fb55 6 //HIDScope scope(2);
emiedema 0:d3f432c5fb55 7
emiedema 0:d3f432c5fb55 8 HCSR04 sensor(D2, D3);
emiedema 0:d3f432c5fb55 9 float distance = 0;
emiedema 0:d3f432c5fb55 10
emiedema 0:d3f432c5fb55 11 PwmOut speedPin(D5);
emiedema 0:d3f432c5fb55 12 DigitalOut dirPin(D4);
emiedema 0:d3f432c5fb55 13
emiedema 0:d3f432c5fb55 14 const float dt = 0.001;
emiedema 0:d3f432c5fb55 15 PID controller(-5, 0, 0.00001, dt);
emiedema 0:d3f432c5fb55 16 Ticker controlLoop;
emiedema 0:d3f432c5fb55 17 //Ticker scopeTicker;
emiedema 0:d3f432c5fb55 18
emiedema 0:d3f432c5fb55 19 void control() {
emiedema 0:d3f432c5fb55 20 // scope.set(0,distance);
emiedema 0:d3f432c5fb55 21 controller.setProcessValue(distance);
emiedema 0:d3f432c5fb55 22 controller.setSetPoint(20);
emiedema 0:d3f432c5fb55 23 double speed = controller.compute();
emiedema 0:d3f432c5fb55 24 // scope.set(1,speed);
emiedema 0:d3f432c5fb55 25 if (speed > 0) {
emiedema 0:d3f432c5fb55 26 dirPin.write(1);
emiedema 0:d3f432c5fb55 27 speedPin.write(speed);
emiedema 0:d3f432c5fb55 28 } else {
emiedema 0:d3f432c5fb55 29 dirPin.write(0);
emiedema 0:d3f432c5fb55 30 speedPin.write(speed * -1);
emiedema 0:d3f432c5fb55 31 }
emiedema 0:d3f432c5fb55 32 }
emiedema 0:d3f432c5fb55 33
emiedema 0:d3f432c5fb55 34 int main()
emiedema 0:d3f432c5fb55 35 {
emiedema 0:d3f432c5fb55 36 controller.setInputLimits(5, 50);
emiedema 0:d3f432c5fb55 37 controller.setOutputLimits(-1,1);
emiedema 0:d3f432c5fb55 38 controller.setBias(0);
emiedema 0:d3f432c5fb55 39 controller.setMode(AUTO_MODE);
emiedema 0:d3f432c5fb55 40
emiedema 0:d3f432c5fb55 41 // scopeTicker.attach_us(&scope, &HIDScope::send, 2e4);
emiedema 0:d3f432c5fb55 42 controlLoop.attach(&control, dt);
emiedema 0:d3f432c5fb55 43 while (true) {
emiedema 0:d3f432c5fb55 44 distance = sensor.distance();
emiedema 0:d3f432c5fb55 45 }
emiedema 0:d3f432c5fb55 46 }