work but not jet as..

Dependencies:   MODSERIAL mbed QEI

Fork of AllMoter_test by Timo de Vries

it works for motor 1

main.cpp

Committer:
Frostworks
Date:
2016-10-14
Revision:
3:dfb4b8d37bab
Parent:
2:4fb733fffd1f
Child:
4:7b8bf798bb72

File content as of revision 3:dfb4b8d37bab:

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

DigitalOut M1_rotate(D2); // voltage only base rotation
PwmOut M1_Speed(D3);      // voltage only base rotation

DigitalOut M2_rotate(D4);   // encoder side pot 2 translation
PwmOut M2_Speed(D5);        // encoder side pot 2 translation

DigitalOut M3_rotate(D7);   // encoder side pot 1 spatel rotation
PwmOut M3_Speed(D6);        // encoder side pot 1 spatel rotation

DigitalIn links(SW3);
DigitalIn rechts(SW2);
//DigitalOut M2_rotate(D6);
//PwmOut M2_Speed(D7);

AnalogIn pot1(A4); // pot 1 motor 1
AnalogIn pot2(A3); // pot 2 motor 3

MODSERIAL pc(USBTX, USBRX);
bool draairechts;
bool draailinks;

void GetDirections()
{
    if (rechts == 1) {
        draairechts = !draairechts;
        draailinks = 0;
    } else if (rechts == 0) {
        draairechts = 0;
    } 
    
    if (links == 1) {
        draailinks = !draailinks;
        draairechts = 0;
    } else if (links == 0) {
        draailinks = 0;
    }

    /*if ((rechts == 0) && (links == 0)) {
        draairechts = false;
        draailinks = false;
    } else if ((rechts == 1) && (draairechts ==false)) { //Als je rechts aanspant en hij draait nog niet naar rechts
        draairechts = true;
        draailinks = false;
    } else if ((rechts == 1) && (draairechts == true)) { //Als je rechts aanspant en hij draait al naar rechts
        draairechts = false;
        draailinks = false;
    } else if ((links == 1) && (draailinks == false)) { //Als je links aanspant en hij draait nog niet naar links
        draailinks = true;
        draairechts = false;
    } else if ((links == 1) && (draailinks == true)) { // Als je links aanspant en hij draait al naar links
        draailinks = false;
        draairechts = false;
    }

    else if ((links == 1 && draairechts == true)) { // Als je links aanspant en hij draait nog naar rechts
        draailinks = true;
        draairechts = false;
    } else if ((rechts == 1 && draailinks == true)) { // Als je rechts aanspant en hij draait nog naar links
        draairechts = true;
        draailinks = false;

    } else {
        draairechts = false;
        draailinks = false;
    }
    */
}
int main()
{
    pc.baud(115200);
    pc.printf("hoi\n");
    M1_rotate = 1;
    M2_rotate = 1;
    M3_rotate = 1;

    /*
        float GetReferenceVelocity() {
            // Returns reference velocity in rad/s.
            // Positive value means clockwise rotation.
            const float maxVelocity=8.4; // in rad/s of course!    float referenceVelocity;  // in rad/s
            if (a)   {
                // Clockwise rotation
                referenceVelocity = potMeterIn * maxVelocity;
                
            } else {
                // Counterclockwise rotation
                referenceVelocity = -1*potMeterIn * maxVelocity;
                
            }
            return referenceVelocity;
        }

        void SetMotor1(float motorValue) {
            // Given -1<=motorValue<=1, this sets the PWM and direction
            // bits for motor 1. Positive value makes motor rotating
            // clockwise. motorValues outside range are truncated to
            // within range
            if (motorValue >=0) {
                motor1DirectionPin=1;
            } else {
                motor1DirectionPin=0;
            }
            if (fabs(motorValue)>1) {
                motor1MagnitudePin = 1;
            } else {
                motor1MagnitudePin = fabs(motorValue);
            }
        }

        void SetMotor2(float motorValue) {
            // Given -1<=motorValue<=1, this sets the PWM and direction
            // bits for motor 1. Positive value makes motor rotating
            // clockwise. motorValues outside range are truncated to
            // within range
            if (motorValue >=0) {
                motor2DirectionPin=1;
            } else {
                motor2DirectionPin=0;
            }
            if (fabs(motorValue)>1) {
                motor2MagnitudePin = 1;
            } else {
                motor2MagnitudePin = fabs(motorValue);
            }
        }

        void SetMotor3(float motorValue) {
            // Given -1<=motorValue<=1, this sets the PWM and direction
            // bits for motor 1. Positive value makes motor rotating
            // clockwise. motorValues outside range are truncated to
            // within range
            if (motorValue >=0) {
                motor3DirectionPin=1;
            } else {
                motor3DirectionPin=0;
            }
            if (fabs(motorValue)>1) {
                motor3MagnitudePin = 1;
            } else {
                motor3MagnitudePin = fabs(motorValue);
            }
        }
        */

    while (true) {
        GetDirections();
        if ((draailinks == true) && (draairechts == false)) {
            M1_Speed = 0.5;
            M1_rotate = 0;
        } else if ((draairechts == true) && (draailinks == false)) {
            M1_Speed = 0.5;
            M1_rotate = 1;
        } else {
            M1_Speed = 0;
        }




        /*
        float M2 = M2_rotate.read();
        float potje1 = pot1.read();
        float potje2 = pot2.read();
        M1_Speed.write(potje1);
        M3_Speed.write(potje2);
        wait(0.1);
        pc.printf("motor 1 %f, motor 2 %f, motor 3 %f \n \r ", potje1, M2, potje2);
        */

    }
}