V0.1

Dependencies:   mbed QEI

Fork of motor_calibration by Kenneth Weisbeek

main.cpp

Committer:
kweisbeek
Date:
2018-10-26
Revision:
1:53bb5928adcf
Parent:
0:1045216da12e
Child:
2:ea985bb173f6

File content as of revision 1:53bb5928adcf:

#include "mbed.h"


//initial allocations
DigitalOut dirpin(D4);
PwmOut pwmpin(D5);
QEI Encoder(D12,D13,NC,64,QEI::X4_ENCODING);



//volatiles
volatile counts_prev=0;



//functions (4 functions not finished)
int counts(){
    int counts=Encoder.getPulses();     //MAAK NOG AF MET PREVIOUS COUNTS ONTHOUDEN.
    return counts;

int pos_store(a){}                       //store position in counts to know count location of the ends of bridge
    
void rotate_start(){}                    //start rotation of disk

void rotate_stop(){}                     //stop rotation of disk



//main function
int main(){
    pwmpin.period_us(60);
    
    //parameters
    int caltime=30;             //calibration time until condition has been met, caltime=(time/0.1)  
    float speed=0.50f;
    int dir=0;
    int counts_end=;          //amount of counts for 360 degrees rotation of main disk --> many revolutions of motor
    
    //move towards end
    for (m=1;2;m++){
        dirpin.write(dir);
        pwmpin = speed;
        //when motor counts do not change anymore, change direction
        int n=1;
        while(n=1){
            for (n=1;caltime;n++){
                if (counts()!=counts_prev){
                    n=0;}
                else {}
                wait(0.1);}
            int position=counts();}
            dir=dir+1;
            pos_store(position);}   //stores position integer
    
    //Check if a full circle can be made without obstruction
        //Try adding a timer as well, you know how long it should take, how long does it actually take? Does that matter?
    rotate_start();
    while(1){
        if counts2_zero()>=counts2_end{
            break;}
        else {}
        wait(0.01);}
    rotate_stop();
    pos_store(counts2());   
    //End sequence?    
    }