Nu werkt het wel, opdracht 1 is af

Dependencies:   MODSERIAL mbed QEI feed_forward

Fork of feed_forward by Roy van Zijl

main.cpp

Committer:
DiondeGreef
Date:
2017-10-11
Revision:
2:a64e3c37b571
Parent:
1:92a60278860a

File content as of revision 2:a64e3c37b571:

#include "mbed.h"
#include "MODSERIAL.h"
#include "math.h"

DigitalOut Ledr(LED_RED);
DigitalOut Ledg(LED_GREEN);
DigitalOut Ledb(LED_BLUE);
PwmOut motorSpeed(D13);
PwmOut motorSpeed2(D12);
InterruptIn Button1(PTC6);
Ticker tick;


enum states{Close, Open};

states CurrentState = Open;

int i = 0;
int j = 0;

void Change()
{
    if(CurrentState == Close){
    CurrentState = Open;
    } 
    else{
    CurrentState = Close;
    }
}



void ProcessStateMachine(void)
{
    switch (CurrentState)
        {        
        case Close:
            if(j <= 34){
                motorSpeed.write(0);
                motorSpeed2.write(0);
                j++;
            }
            else if (j == 35){
                motorSpeed.write(1);
                motorSpeed2.write(0);
                j++;
            }
            else if (j == 36){
                motorSpeed.write(1);
                motorSpeed2.write(0);
                j++;
            }
            else if (j == 37){
                motorSpeed.write(1);
                motorSpeed2.write(0);
                j++;
            }
            else if (j == 38){
                motorSpeed.write(1);
                motorSpeed2.write(0);
                j++;
            }
            else if (j == 39){
                motorSpeed.write(1);
                motorSpeed2.write(1);
                j = 0;
            }
            Ledr = 0;
            Ledg = 1;
            Ledb = 1;
        break;
        
        case Open:
            if(j <= 34){
                motorSpeed.write(0);
                motorSpeed2.write(0);
                j++;
            }
            else if (j == 35){
                motorSpeed.write(0);
                motorSpeed2.write(1);
                j++;
            }
            else if (j == 36){
                motorSpeed.write(0);
                motorSpeed2.write(1);
                j++;
            }
            else if (j == 37){
                motorSpeed.write(0);
                motorSpeed2.write(1);
                j++;
            }
            else if (j == 38){
                motorSpeed.write(0);
                motorSpeed2.write(1);
                j++;
            }
            else if (j == 39){
                motorSpeed.write(1);
                motorSpeed2.write(1);
                j = 0;
            }
            Ledr = 1;
            Ledg = 1;
            Ledb = 0;
        break;
        
        default:
            Ledr = 1;
            Ledg = 0;
            Ledb = 1;
    }
}



int main() {
    tick.attach(ProcessStateMachine, 0.0005);
    Ledr = 1;
    Ledg = 1;
    Ledb = 1;
        
    while (true)
    {
        Button1.rise(&Change);
    }
}