lololololol
Dependencies: mbed QEI HIDScope biquadFilter MODSERIAL FastPWM
Diff: main.cpp
- Revision:
- 19:5ac8b7af77a3
- Parent:
- 18:50c04dd523ea
- Child:
- 20:ac1b4ffa3323
diff -r 50c04dd523ea -r 5ac8b7af77a3 main.cpp --- a/main.cpp Mon Sep 23 14:43:01 2019 +0000 +++ b/main.cpp Fri Oct 04 09:37:33 2019 +0000 @@ -20,12 +20,10 @@ Timer G; Timer B; -InterruptIn BUT1(D1); -InterruptIn BUT2(D0); FastPWM lichtje(D3); AnalogIn ain(A0); -DigitalOut direction(D6); -DigitalOut speed(D7); +DigitalOut PWM_motor_1(D6); +DigitalOut direction_motor_1(D7); HIDScope scope(2); QEI encoder(D12,D13,NC,64,QEI::X4_ENCODING); @@ -46,127 +44,83 @@ volatile double x_prev=0; volatile double y; -int n=5; - // functions -void plus() -{ - n++; // n=n+1 - if (n>10) { - n=10; - } -} - -void min() -{ - n--; - if (n<0) { - n=0; - } -} - -void TurnLedRed() -{ +void TurnLedRed(){ ledr = 0; ledg = 1; - ledb = 1; -} + ledb = 1;} -void TurnLedGreen() -{ +void TurnLedGreen(){ ledr = 1; ledg = 0; - ledb = 1; -} + ledb = 1;} -void TurnLedBlue() -{ +void TurnLedBlue(){ ledr = 1; ledg = 1; - ledb = 0; -} + ledb = 0;} void PulseWidthModulation() // Bepaalt de duty cycle gebaseerd op de potentiometer en zet de motor dan op die snelheid mbh PWM -{ - on_time_ms = (int) (ain.read()*(1.0/50)*1.0e3); - off_time_ms = (int) ((1-ain.read())*(1.0/50)*1.0e3); - direction = 1; +{ on_time_ms = (int) (ain.read()*(1/1e2)*1e3); + off_time_ms = (int) ((1-ain.read())*(1/1e2)*1e3); + PWM_motor_1 = 1; wait_ms(on_time_ms); - direction = 0; - wait_ms(off_time_ms); -} + PWM_motor_1 = 0; + wait_ms(off_time_ms);} void EnergySaving() // Functie voor de "ReduceEmissions" ticker, zet de motor uit en LED op rood -{ - command = 'r'; -} +{ command = 'r';} void CheckCommandFromTerminal(void) // Functie voor de in de main loop -{ - command = pc.getcNb(); -} +{ command = pc.getcNb();} void WhileRed() -{ - if (command == 'g') { +{ if (command == 'g') { R.stop(); pc.printf("The LED has been red for %f seconds!\n\r", R.read()); CurrentState= green; - StateChanged= true; - } + StateChanged= true; } if (command == 'b') { R.stop(); pc.printf("The LED has been red for %f seconds!\n\r", R.read()); CurrentState= blue; - StateChanged= true; - } -} + StateChanged= true; }} void WhileGreen() -{ - PulseWidthModulation(); +{ PulseWidthModulation(); if (command == 'r') { G.stop(); pc.printf("The LED has been green for %f seconds!\n\r", G.read()); CurrentState= red; - StateChanged= true; - } + StateChanged= true; } if (command == 'b') { G.stop(); pc.printf("The LED has been green for %f seconds!\n\r", G.read()); CurrentState= blue; - StateChanged= true; - } -} + StateChanged= true; }} void WhileBlue() -{ - PulseWidthModulation(); +{ PulseWidthModulation(); if (command == 'r') { B.stop(); pc.printf("The LED has been blue for %f seconds!\n\r", B.read()); CurrentState= red; - StateChanged= true; - } + StateChanged= true; } if (command == 'g') { B.stop(); pc.printf("The LED has been blue for %f seconds!\n\r", B.read()); CurrentState= green; - StateChanged= true; - } -} + StateChanged= true; }} -void ReadEncoderAndWriteScope() -{ +void ReadEncoderAndWriteScope(){ degrees = ((360/64)*encoder.getPulses())/131.25; // 360/64 voor de 64 CPR Encoder, 131.25 omdat de gear ratio 131.25:1 is. Hiermee is 1 omwenteling 360. x = degrees; scope.set(0,x); y = (x_prev + x)/2.0; scope.set(1,y); x_prev=x; - scope.send(); -} + scope.send();} void StateMachine(void) { @@ -177,7 +131,7 @@ StateChanged= false; TurnLedRed(); R.start(); - direction = 0; + PWM_motor_1 = 0; pc.printf("LED is now red!\n\r"); } WhileRed(); @@ -188,7 +142,7 @@ StateChanged= false; TurnLedGreen(); G.start(); - speed = 0; + direction_motor_1 = 0; pc.printf("LED is now green!\n\r"); } WhileGreen(); @@ -199,7 +153,7 @@ StateChanged= false; TurnLedBlue(); B.start(); - speed = 255; + direction_motor_1 = 255; pc.printf("LED is now blue!\n\r"); } WhileBlue(); @@ -217,8 +171,6 @@ pc.printf("Hello World!\n\r"); RW_scope.attach(&ReadEncoderAndWriteScope, 0.1); ReduceEmission.attach(EnergySaving,20); - BUT1.fall(plus); - BUT2.fall(min); while(true) { CheckCommandFromTerminal(); StateMachine();