This version does not work on my pc however it should work if i look at all the data send to hidscope and de led which does it correct. We should tray another pc because my pc does give still some errors on the libaries

Dependencies:   HIDScope MODSERIAL mbed

Fork of Milestone_1_Motor_DualDirection_potmeter_v2 by Michel Vos

Committer:
CasperK
Date:
Fri Sep 28 11:33:57 2018 +0000
Revision:
3:f00ddd66fe39
Parent:
2:735ca8577f31
Child:
4:fe0b7e7b1de9
Changing direction by potmeter of motor (working version)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CasperK 0:9922b502cbc3 1 #include "mbed.h"
CasperK 0:9922b502cbc3 2 #include "MODSERIAL.h"
CasperK 0:9922b502cbc3 3 #include "HIDScope.h"
CasperK 0:9922b502cbc3 4
CasperK 0:9922b502cbc3 5 PwmOut pwmpin(D6);
CasperK 0:9922b502cbc3 6 PwmOut led(D10);
CasperK 0:9922b502cbc3 7 AnalogIn potmeter(A5);
CasperK 0:9922b502cbc3 8 DigitalIn button(D2);
CasperK 3:f00ddd66fe39 9 DigitalOut directionpin(D7);
CasperK 3:f00ddd66fe39 10 MODSERIAL pc(USBTX, USBRX);
CasperK 0:9922b502cbc3 11
CasperK 0:9922b502cbc3 12 HIDScope scope(2);
CasperK 0:9922b502cbc3 13 Ticker ticker;
CasperK 2:735ca8577f31 14 enum states{forward, stop, backwards};
CasperK 2:735ca8577f31 15 states CurrentState;
CasperK 0:9922b502cbc3 16
CasperK 0:9922b502cbc3 17 volatile float x;
CasperK 0:9922b502cbc3 18 volatile float y;
CasperK 3:f00ddd66fe39 19 volatile float scaled_potmeter;
CasperK 3:f00ddd66fe39 20 volatile float c;
CasperK 0:9922b502cbc3 21
CasperK 0:9922b502cbc3 22 void sendData() {
CasperK 0:9922b502cbc3 23 scope.set(0,potmeter); //set the potmeter data to the first scope
CasperK 1:aa505856416d 24 scope.set(1,x);
CasperK 1:aa505856416d 25 scope.send(); //send the datapoints of the 2 motors
CasperK 0:9922b502cbc3 26 }
CasperK 0:9922b502cbc3 27
CasperK 3:f00ddd66fe39 28 void Proces_states(void){
CasperK 3:f00ddd66fe39 29 switch (CurrentState){
CasperK 3:f00ddd66fe39 30 case forward:
CasperK 3:f00ddd66fe39 31 directionpin = 1;
CasperK 3:f00ddd66fe39 32 pwmpin.write(scaled_potmeter); //pwm of motor is potmeter value
CasperK 3:f00ddd66fe39 33 led.write(scaled_potmeter); //led is potmeter value
CasperK 3:f00ddd66fe39 34 break;
CasperK 3:f00ddd66fe39 35 case stop:
CasperK 3:f00ddd66fe39 36 // do nothing
CasperK 3:f00ddd66fe39 37 break;
CasperK 3:f00ddd66fe39 38 case backwards:
CasperK 3:f00ddd66fe39 39 directionpin = 0;
CasperK 3:f00ddd66fe39 40 c = scaled_potmeter*-1;
CasperK 3:f00ddd66fe39 41 pwmpin.write(c); //pwm of motor is potmeter value
CasperK 3:f00ddd66fe39 42 led.write(c); //led is potmeter value
CasperK 3:f00ddd66fe39 43 break;
CasperK 3:f00ddd66fe39 44 }
CasperK 3:f00ddd66fe39 45 }
CasperK 3:f00ddd66fe39 46
CasperK 2:735ca8577f31 47 int main() {
CasperK 1:aa505856416d 48 x = 1; //placeholder value for potmeter of second motor
CasperK 0:9922b502cbc3 49
CasperK 1:aa505856416d 50 pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
CasperK 1:aa505856416d 51 led.period_us(60); //60 microseconds
CasperK 1:aa505856416d 52 ticker.attach(&sendData, 0.005f); //send data to hidscope at 200Hz
CasperK 0:9922b502cbc3 53
CasperK 3:f00ddd66fe39 54 while (true) {
CasperK 3:f00ddd66fe39 55 scaled_potmeter = (potmeter*2)-1; //scale potmeter from 0-1 to (-1 to 1)
CasperK 3:f00ddd66fe39 56
CasperK 3:f00ddd66fe39 57 if (scaled_potmeter > 0) {
CasperK 3:f00ddd66fe39 58 CurrentState = forward;
CasperK 3:f00ddd66fe39 59 pc.printf("state = forward\r\n");
CasperK 3:f00ddd66fe39 60 Proces_states();
CasperK 3:f00ddd66fe39 61 }
CasperK 3:f00ddd66fe39 62 if (scaled_potmeter == 0) {
CasperK 3:f00ddd66fe39 63 CurrentState = stop;
CasperK 3:f00ddd66fe39 64 pc.printf("state = stop\r\n");
CasperK 3:f00ddd66fe39 65 Proces_states();
CasperK 3:f00ddd66fe39 66 }
CasperK 3:f00ddd66fe39 67 if (scaled_potmeter < 0) {
CasperK 3:f00ddd66fe39 68 CurrentState = backwards;
CasperK 3:f00ddd66fe39 69 pc.printf("state = backwards\r\n");
CasperK 3:f00ddd66fe39 70 Proces_states();
CasperK 3:f00ddd66fe39 71 }
CasperK 3:f00ddd66fe39 72 wait(0.2f);
CasperK 0:9922b502cbc3 73 }
CasperK 2:735ca8577f31 74 }
CasperK 2:735ca8577f31 75
CasperK 2:735ca8577f31 76