EMG check. met knopjes en toetsenboard emg signalen simuleren om de code te testen. groepje 12
Dependencies: MODSERIAL QEI mbed
Fork of EMG_check by
Diff: main.cpp
- Revision:
- 14:4b934ac37656
- Parent:
- 12:7903c0e55cd7
- Child:
- 15:706e18b43dd6
--- a/main.cpp Mon Oct 10 13:38:59 2016 +0000 +++ b/main.cpp Mon Oct 10 14:31:10 2016 +0000 @@ -5,6 +5,8 @@ DigitalIn encoder1A(D13); DigitalIn encoder1B(D12); DigitalIn button_cw(D11); +DigitalIn encoder2A(D15); +DigitalIn encoder2B(D14); DigitalIn button_ccw(D9); DigitalOut ledcw(D10); DigitalOut ledccw(D2); @@ -13,16 +15,32 @@ PwmOut pwm_motor1(D5); DigitalOut richting_motor2(D7); PwmOut pwm_motor2(D6); + + + int n = 0; //start van de teller wordt op nul gesteld void SwitchN() { // maakt simpele functie die 1 bij n optelt n++; } +//constanten voor de encoder +const int CW = 2.5; //definitie rechtsom 'lage waarde' +const int CCW =0; //definitie linksom 'hoge waarde' +const float gearboxratio=131; // gearboxratio van encoder naar motor +const int rev_rond=32; // aantal revoluties per omgang van de encoder + int main() { pc.baud(115200); // zorgt voor de link voor putty, 115200 is snelheid + QEI Encoder(D12,D13, NC, rev_rond); // maakt een encoder aan! D12/D13 ingangen, rev_rond zijn aantal pulsen per revolutie! Bovenaan in te stellen. + QEI Encoder2(D15,D14, NC, rev_rond); + float counts_encoder1; //variabele counts aanmaken + float rev_counts_motor1; //variabele motor rondjes aanmaken in radialen!! + float counts_encoder2; + float rev_counts_motor2; + const float a=1.0; const float b=10.0; @@ -41,6 +59,9 @@ richting_motor1 = 1; pwm_motor1 = a; ledcw=1; ledccw=0; + counts_encoder1 = Encoder.getPulses(); //tellen van de pulsen in + rev_counts_motor1=counts_encoder1/(gearboxratio*rev_rond); //berekenen van het aantal rondjes van motor. Gedeeld door gearboxratio en rev rond, om naar motorrondjes te gaan in plaats van pulsen van encoder! + pc.printf("motor rondjes omhoog: %f \r\n", rev_counts_motor1); //weergeven } @@ -52,6 +73,9 @@ pwm_motor2 = b; ledcw=1; ledccw=1; + counts_encoder2 = Encoder.getPulses(); //tellen van de pulsen in + rev_counts_motor2=counts_encoder2/(gearboxratio*rev_rond); //weergeven van het aantal rondjes + pc.printf("motor rondjes omhoog: %f \r\n", rev_counts_motor2); } } @@ -64,6 +88,9 @@ richting_motor1 = 0; pwm_motor1 = a; ledccw=1; ledcw=0; + counts_encoder1 = Encoder.getPulses(); //tellen van de pulsen in + rev_counts_motor1=counts_encoder1/(gearboxratio*rev_rond); //weergeven van het aantal rondjes + pc.printf("motor rondjes omhoog: %f \r\n", rev_counts_motor1); } @@ -74,6 +101,9 @@ richting_motor2 = 0; pwm_motor2 = b; ledccw=1; ledcw=0; + counts_encoder2 = Encoder.getPulses(); //tellen van de pulsen in + rev_counts_motor2=counts_encoder2/(gearboxratio*rev_rond); //weergeven van het aantal rondjes + pc.printf("motor rondjes naar rechts: %f \r\n", rev_counts_motor2); } }