Kenneth Weisbeek
/
motor_calibration
V0.1
main.cpp@0:1045216da12e, 2018-10-22 (annotated)
- Committer:
- kweisbeek
- Date:
- Mon Oct 22 11:11:15 2018 +0000
- Revision:
- 0:1045216da12e
V1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kweisbeek | 0:1045216da12e | 1 | #include "mbed.h" |
kweisbeek | 0:1045216da12e | 2 | |
kweisbeek | 0:1045216da12e | 3 | |
kweisbeek | 0:1045216da12e | 4 | //initial allocations |
kweisbeek | 0:1045216da12e | 5 | DigitalOut dirpin(D4); |
kweisbeek | 0:1045216da12e | 6 | PwmOut pwmpin(D5); |
kweisbeek | 0:1045216da12e | 7 | QEI Encoder(D12,D13,NC,64,QEI::X4_ENCODING); |
kweisbeek | 0:1045216da12e | 8 | |
kweisbeek | 0:1045216da12e | 9 | //volatiles |
kweisbeek | 0:1045216da12e | 10 | volatile counts_prev=0; |
kweisbeek | 0:1045216da12e | 11 | |
kweisbeek | 0:1045216da12e | 12 | //functions |
kweisbeek | 0:1045216da12e | 13 | int counts(){ |
kweisbeek | 0:1045216da12e | 14 | int counts=Encoder.getPulses(); //MAAK NOG AF MET PREVIOUS COUNTS ONTHOUDEN. |
kweisbeek | 0:1045216da12e | 15 | return counts |
kweisbeek | 0:1045216da12e | 16 | |
kweisbeek | 0:1045216da12e | 17 | |
kweisbeek | 0:1045216da12e | 18 | int main(){ |
kweisbeek | 0:1045216da12e | 19 | pwmpin.period_us(60); |
kweisbeek | 0:1045216da12e | 20 | |
kweisbeek | 0:1045216da12e | 21 | //parameters |
kweisbeek | 0:1045216da12e | 22 | int caltime=30; //calibration time until condition has been met, caltime=(time/0.1) |
kweisbeek | 0:1045216da12e | 23 | float speed=0.50f; |
kweisbeek | 0:1045216da12e | 24 | int dir=0 |
kweisbeek | 0:1045216da12e | 25 | |
kweisbeek | 0:1045216da12e | 26 | //move towards end |
kweisbeek | 0:1045216da12e | 27 | for (m=1;2;m++){ |
kweisbeek | 0:1045216da12e | 28 | dirpin.write(dir); |
kweisbeek | 0:1045216da12e | 29 | pwmpin = speed; |
kweisbeek | 0:1045216da12e | 30 | int n=1 |
kweisbeek | 0:1045216da12e | 31 | //when motor counts do not change anymore, change direction |
kweisbeek | 0:1045216da12e | 32 | while(n<(caltime+1)){ |
kweisbeek | 0:1045216da12e | 33 | for (n=1;caltime;n++){ |
kweisbeek | 0:1045216da12e | 34 | if (counts()!=counts_prev){ |
kweisbeek | 0:1045216da12e | 35 | n=0;} |
kweisbeek | 0:1045216da12e | 36 | else {} |
kweisbeek | 0:1045216da12e | 37 | wait(0.1);} |
kweisbeek | 0:1045216da12e | 38 | dir=dir+1;} |
kweisbeek | 0:1045216da12e | 39 | |
kweisbeek | 0:1045216da12e | 40 | |
kweisbeek | 0:1045216da12e | 41 | |
kweisbeek | 0:1045216da12e | 42 |