Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: HIDScope MODSERIAL mbed
Fork of EMG_Motor_LED by
Diff: main.cpp
- Revision:
- 2:735ca8577f31
- Parent:
- 1:aa505856416d
- Child:
- 3:f00ddd66fe39
--- a/main.cpp Tue Sep 25 14:50:26 2018 +0000
+++ b/main.cpp Fri Sep 28 10:53:57 2018 +0000
@@ -10,9 +10,12 @@
HIDScope scope(2);
Ticker ticker;
+enum states{forward, stop, backwards};
+states CurrentState;
volatile float x;
volatile float y;
+volatile float p = potmeter;
void sendData() {
scope.set(0,potmeter); //set the potmeter data to the first scope
@@ -20,18 +23,41 @@
scope.send(); //send the datapoints of the 2 motors
}
-int main() {
- float u = -0.3f; //determineusefulvalue, -0.3f is justanexample
- directionpin = u > 0.0f; //if bigger than 0, gives true, otherwise gives false
+int main() {
+
+// float u = -0.3f; //determineusefulvalue, -0.3f is justanexample
+// directionpin = u > 0; //if bigger than 0, gives true, otherwise gives false
x = 1; //placeholder value for potmeter of second motor
+ float scaled_potmeter = (p*2)-1; //scale potmeter from 0-1 to (-1 to 1)
+ float c; //value to be used in negative scaled potmeter value
+ bool forward = scaled_potmeter > 0;
+ bool stop = scaled_potmeter == 0;
+ bool backwards = scaled_potmeter < 0;
+
pwmpin.period_us(60); //60 microseconds PWM period, 16.7 kHz
led.period_us(60); //60 microseconds
ticker.attach(&sendData, 0.005f); //send data to hidscope at 200Hz
- while (true) {
- pwmpin.write(potmeter); //pwm of motor is potmeter value
- led.write(potmeter); //led is potmeter value
- wait(0.2f);
+ while (true) {
+ switch (CurrentState){
+ case forward:
+ directionpin = true;
+ pwmpin.write(scaled_potmeter); //pwm of motor is potmeter value
+ led.write(scaled_potmeter); //led is potmeter value
+ break;
+ case stop:
+ // do nothing
+ break;
+ case backwards:
+ directionpin = false;
+ c = scaled_potmeter*-1;
+ pwmpin.write(c); //pwm of motor is potmeter value
+ led.write(c); //led is potmeter value
+ break;
+ }
+ wait(1.0f);
}
-}
\ No newline at end of file
+}
+
+
