mag niet van hendrik D:
Dependencies: mbed MatrixMath QEI HIDScope Matrix biquadFilter MODSERIAL FastPWM
main.cpp
- Committer:
- Hendrikvg
- Date:
- 2019-09-23
- Revision:
- 15:80b3ac2b8448
- Parent:
- 14:20f11bb58244
- Child:
- 16:40183eeadb6d
File content as of revision 15:80b3ac2b8448:
#include "mbed.h" #include "MODSERIAL.h" #include "FastPWM.h" // Motor 1 aan zetten en uit zetten dmv button 1 en 2 werkt. // Snelheid aansturen nog niet. MODSERIAL pc(USBTX, USBRX); DigitalOut ledr(LED_RED); DigitalOut ledg(LED_GREEN); DigitalOut ledb(LED_BLUE); Ticker RE; Timer R; Timer G; Timer B; InterruptIn BUT1(D1); InterruptIn BUT2(D0); FastPWM lichtje(D3); AnalogIn ain(A0); DigitalOut direction(D6); DigitalOut speed(D7); // variables volatile char command = 'r'; enum states {red, green, blue}; states CurrentState = red; bool StateChanged = true; double numerator; double denominator; double brightness; int n=5; float speedy; // functions void ES() { command = 'r'; } void CheckCommandFromTerminal(void) { command = pc.getcNb(); } void StateMachine(void) { switch(CurrentState) { case red: if (StateChanged) { pc.printf("Initiating turning LED red\n\r"); StateChanged= false; ledr = 0; ledg = 1; ledb = 1; R.start(); direction = 0; pc.printf("LED is now red!\n\r"); } if (command == 'g') { R.stop(); pc.printf("The LED has been red for %f seconds!\n\r", R.read()); CurrentState= green; 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; } break; case green: if (StateChanged) { pc.printf("Initiating turning LED green\n\r"); StateChanged= false; ledr = 1; ledg = 0; ledb = 1; G.start(); direction = 1; pc.printf("LED is now green!\n\r"); } if (command == 'r') { G.stop(); pc.printf("The LED has been green for %f seconds!\n\r", G.read()); CurrentState= red; 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; } break; case blue: if (StateChanged) { pc.printf("Initiating turning LED blue\n\r"); StateChanged= false; ledr = 1; ledg = 1; ledb = 0; B.start(); //direction = 1; speed = 255; pc.printf("LED is now blue!\n\r"); } if (command == 'r') { B.stop(); pc.printf("The LED has been blue for %f seconds!\n\r", B.read()); CurrentState= red; 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; } break; default: pc.printf("Unknown or unimplemented state reached!\n\r"); } } void plus() { n++; // n=n+1 if (n>10) { n=10; } } void min() { n--; if (n<0) { n=0; } } // main int main() { pc.baud(115200); RE.attach(ES,3); BUT1.fall(plus); BUT2.fall(min); //lichtje.period_ms(20); // Wat is hier het praktisch nu van? while(true) { CheckCommandFromTerminal(); StateMachine(); lichtje.write(ain.read()); // duty cycle } }