fancy lampje
Dependencies: mbed QEI HIDScope biquadFilter MODSERIAL FXOS8700Q FastPWM
Diff: main.cpp
- Revision:
- 16:2d115aa2773e
- Parent:
- 15:c4799ad02cdc
- Child:
- 17:d1acb6888b82
--- a/main.cpp Fri Oct 18 09:42:36 2019 +0000 +++ b/main.cpp Fri Oct 18 10:14:17 2019 +0000 @@ -34,6 +34,7 @@ volatile float EMG_min1=1; volatile float EMG_max1=0; volatile bool ignore_peaks=false; +volatile bool ignore_turn=true; enum states{Waiting,Position_calibration,EMG_calibration,Homing,Operating,Demo,Failure}; states currentState=Waiting; @@ -115,13 +116,17 @@ { ignore_peaks=false; } +void start_ignore_turn(void) +{ + ignore_turn=true; +} void set_PWM(void) { static bool motor_on=false; float Q0; Q0=2.0f*(P0-(EMG_min0+EMG_max0)/2.0f)/(EMG_max0-EMG_min0); - if (Q0>0.5 && !ignore_peaks) + if (Q0>0.3 && !ignore_peaks) { if (!motor_on) { @@ -130,14 +135,23 @@ ignore_peaks=true; motor_on=true; } - else + else if(ignore_turn) { motor1_pwm.write(0.0f); EMG_peak.attach(unignore_peaks,1); + EMG_peak.attach(start_ignore_turn,1.5); + ignore_turn=false; ignore_peaks=true; motor_on=false; } - + else + { + motor1_pwm.write(1.0f); + dir1=!dir1; + EMG_peak.attach(unignore_peaks,1); + ignore_peaks=true; + motor_on=true; + } } motor2_pwm.write(ain1.read()); }