Samenwerking Groep 12

Dependencies:   Encoder MODSERIAL HIDScope mbed

Foo

main.cpp

Committer:
ThomasBNL
Date:
2015-09-21
Revision:
15:80af7a7671d4
Parent:
13:a0113cf2fc5f
Child:
16:8975d6c900f0

File content as of revision 15:80af7a7671d4:

#include "mbed.h"
#include "HIDScope.h"
#include "encoder.h"
#include "MODSERIAL.h"

//Motor 2
DigitalOut motor2direction(D4); //D4 en D5 zijn motor 2 (op het motorshield)
PwmOut motor2speed(D5);
DigitalIn button(PTA4);
Encoder motor2(D13,D12);
MODSERIAL pc(USBTX,USBRX);
Ticker myControllerTicker;
//AnalogIn potmeter2(A0); /NIEUW

// constantes definieren
double counts_per_revolution=4200;
double degrees_per_turn=360;
double counts_per_degree=counts_per_revolution/degrees_per_turn; //11.67 counts/degree
const double motor2_Kp = 2.5; //constante motor

//functies
double P(double error, const double Kp)
{
    return Kp*error;
}



int main()
{
    pc.baud(9600);
    motor2.setPosition(0);
    while(true) {
        if (button.read() < 0.5) {   //if button pressed
            motor2direction = 0; // zero is clockwise (front view)
            motor2speed = 0.5f;
            pc.printf("positie = %d \r\n", motor2.getPosition());
        } else {                  // If button is not pressed
            motor2direction = 0;
            motor2speed = 0;
            //while (motor2_Controller /// WHILE MOTOR > ... <... HIER BEZIG
            double reference=400;
            double position=motor2.getPosition();
            double Error_position=(reference-position)*motor2_Kp;
            pc.printf("positie = %d en Error_positie =%d \r\n", motor2.getPosition(), Error_position);
            //myControllerTicker.attach(&motor2_Controller,0.01f);
            if (Error_position > 0) {
                motor2direction = 0;
                motor2speed=0.3f;}
            else {
                motor2direction = 1;
                motor2speed=0.3f;}
        }
        
        while ((motor2.getPosition()>counts_per_revolution) || (motor2.getPosition()<-counts_per_revolution)) // If value is outside -4200 and 4200 (number of counts equal to one revolution) reset to zero
        {
            motor2.setPosition(0);
            pc.printf(" HE \r\n LLO \r\n WO \r\n RLD \r\n !!! \r\n FOO! \r\n");
            break;
        } 
    }
    }