![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
4 directional EMG control of the XY table. Made during my bachelor end assignment.
Dependencies: C12832_lcd HIDScope mbed-dsp mbed
Diff: main.cpp
- Revision:
- 14:bbef6e8956dc
- Parent:
- 13:c4e80f6e7113
--- a/main.cpp Tue Apr 28 14:26:30 2015 +0000 +++ b/main.cpp Tue Apr 28 15:34:41 2015 +0000 @@ -1,7 +1,7 @@ #include "mbed.h" #include "C12832_lcd.h" -#define P_GAIN 0.9999 +#define P_GAIN 0.999 DigitalOut Dir(p21); PwmOut Step(p22); @@ -17,27 +17,46 @@ DigitalIn Down(p12); int main() { - float setpoint = 2000; //Frequentie - float step_freq = 1; + float setpoint = 10000; //Frequentie + float step_freq1 = 1; + float step_freq2 = 1; + MS1 = 1; MS2 = 0; MS3 = 0; - float p1; - float p2; + //float p1; + int p2; - Step.period(1./step_freq); // 1 kHz, vanaf 2,5 kHz doet de motor het niet meer. + Step.period(1.); // 1 kHz, vanaf 2,5 kHz doet de motor het niet meer. Step.write(0.5); // Duty cycle van 50% - // Dir = Pot1; // Dir 1 is naar boven, Dir 0 naar onder. + Dir = Pot2; // Dir 1 is naar boven, Dir 0 naar onder. while (1) { - p1 = Pot1.read(); - Dir = Pot1; - float new_step_freq; - new_step_freq = ((1-P_GAIN)*setpoint) + (P_GAIN*step_freq); - step_freq = new_step_freq; - Step.period(1.0/step_freq); - lcd.printf("Pot1 : %f \n", p1); - wait(1); //Hier nog ticker inbouwen + + p2 = Pot2.read(); + float new_step_freq1; + float new_step_freq2; + + if (Dir = 1){ + step_freq2 = 1; + new_step_freq1 = ((1-P_GAIN)*setpoint) + (P_GAIN*step_freq1); + step_freq1 = new_step_freq1; + Step.period(1.0/(step_freq1)); + //lcd.printf("Snelheid : %f Hz\n", p1); + lcd.printf("Richting : %d \n", p2); + wait(0.01); //Hier nog ticker inbouwen + } + if (Dir = 0) { + step_freq1 = 1; + new_step_freq2 = ((1-P_GAIN)*setpoint) + (P_GAIN*step_freq2); + step_freq2 = new_step_freq2; + Step.period(1.0/(step_freq2)); + //lcd.printf("Snelheid : %f Hz\n", p1); + lcd.printf("Richting : %d \n", p2); + wait(0.01); //Hier nog ticker inbouwen + + } + } } \ No newline at end of file