Added various bits, main reformatted. Added .get to class Servo to allow waiting for rotation before recording information.
Fork of Lab6_Basic by
main.cpp@6:a64d79286726, 2016-11-19 (annotated)
- Committer:
- Dogcatfee
- Date:
- Sat Nov 19 08:32:04 2016 +0000
- Revision:
- 6:a64d79286726
- Parent:
- 4:b3a93554fedf
- Child:
- 7:10554a04a34f
Added while/if statement to wait for rotation before recording.; Added .get() to Servo class, returns unsigned int of approximated rotation.; Added const int size to change size of arrays and loops; Added position_array with for fill.; Reformatted main.;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ziadeldebri | 0:61b18b631f94 | 1 | #include "mbed.h" |
ziadeldebri | 3:b787aa49b900 | 2 | #include "Motor.h" |
ziadeldebri | 3:b787aa49b900 | 3 | #include "Servo.h" |
Dogcatfee | 6:a64d79286726 | 4 | /************************************* Lab5 Motor to servo **********************************/ |
Dogcatfee | 6:a64d79286726 | 5 | /* */ |
Dogcatfee | 6:a64d79286726 | 6 | /* File: main.cpp */ |
Dogcatfee | 6:a64d79286726 | 7 | /* Author: Ziad Eldebri */ |
Dogcatfee | 6:a64d79286726 | 8 | /* Date Created: 9/19/2016 */ |
Dogcatfee | 6:a64d79286726 | 9 | /* Description: */ |
Dogcatfee | 6:a64d79286726 | 10 | /* Edit: Matthew Sessions */ |
Dogcatfee | 6:a64d79286726 | 11 | /* */ |
Dogcatfee | 6:a64d79286726 | 12 | /*********************************************************************************************/ |
ziadeldebri | 0:61b18b631f94 | 13 | |
ziadeldebri | 3:b787aa49b900 | 14 | Servo my_servo(PTB3,PTE19,PTE18,PTE31); |
ziadeldebri | 4:b3a93554fedf | 15 | AnalogIn Spanel(PTB2); |
Dogcatfee | 6:a64d79286726 | 16 | //uint16_t reading_array[3]; |
Dogcatfee | 6:a64d79286726 | 17 | const int size=20; |
Dogcatfee | 6:a64d79286726 | 18 | unsigned int reading_array[size]; |
Dogcatfee | 6:a64d79286726 | 19 | int position_array[size]; |
Dogcatfee | 6:a64d79286726 | 20 | //uint16_t largest = 0; |
Dogcatfee | 6:a64d79286726 | 21 | unsigned int largest = 0; |
ziadeldebri | 4:b3a93554fedf | 22 | int largesti = 0; |
ziadeldebri | 4:b3a93554fedf | 23 | int i; |
ziadeldebri | 3:b787aa49b900 | 24 | |
Dogcatfee | 6:a64d79286726 | 25 | //Serial pc(USBTX, USBRX); |
Dogcatfee | 6:a64d79286726 | 26 | |
Dogcatfee | 6:a64d79286726 | 27 | int main() |
Dogcatfee | 6:a64d79286726 | 28 | { |
Dogcatfee | 6:a64d79286726 | 29 | |
Dogcatfee | 6:a64d79286726 | 30 | for (i=0; i<size;i++) |
Dogcatfee | 6:a64d79286726 | 31 | { |
ziadeldebri | 3:b787aa49b900 | 32 | |
Dogcatfee | 6:a64d79286726 | 33 | position_array[i] = i*180/size +20 ; |
Dogcatfee | 6:a64d79286726 | 34 | |
Dogcatfee | 6:a64d79286726 | 35 | } |
Dogcatfee | 6:a64d79286726 | 36 | |
Dogcatfee | 6:a64d79286726 | 37 | while (1) |
Dogcatfee | 6:a64d79286726 | 38 | { |
Dogcatfee | 6:a64d79286726 | 39 | for (i = 0; i < size; i++) |
Dogcatfee | 6:a64d79286726 | 40 | { |
ziadeldebri | 0:61b18b631f94 | 41 | |
Dogcatfee | 6:a64d79286726 | 42 | //set position |
Dogcatfee | 6:a64d79286726 | 43 | my_servo.set(position_array[i]); |
Dogcatfee | 6:a64d79286726 | 44 | |
Dogcatfee | 6:a64d79286726 | 45 | //pc.printf(" Reading array %d %ld\n ", i , reading_array[i]); |
Dogcatfee | 6:a64d79286726 | 46 | |
Dogcatfee | 6:a64d79286726 | 47 | //check position |
Dogcatfee | 6:a64d79286726 | 48 | |
Dogcatfee | 6:a64d79286726 | 49 | while(1) |
Dogcatfee | 6:a64d79286726 | 50 | { |
Dogcatfee | 6:a64d79286726 | 51 | //one but not both, XOR |
Dogcatfee | 6:a64d79286726 | 52 | if((my_servo.get()-position_array[i] > -25 ) ^ (my_servo.get() - position_array[i] <25)) |
Dogcatfee | 6:a64d79286726 | 53 | { |
ziadeldebri | 3:b787aa49b900 | 54 | |
Dogcatfee | 6:a64d79286726 | 55 | break; |
Dogcatfee | 6:a64d79286726 | 56 | } |
Dogcatfee | 6:a64d79286726 | 57 | |
Dogcatfee | 6:a64d79286726 | 58 | else |
Dogcatfee | 6:a64d79286726 | 59 | { |
Dogcatfee | 6:a64d79286726 | 60 | my_servo.set(position_array[i]); |
Dogcatfee | 6:a64d79286726 | 61 | wait(.2); |
Dogcatfee | 6:a64d79286726 | 62 | } |
Dogcatfee | 6:a64d79286726 | 63 | |
Dogcatfee | 6:a64d79286726 | 64 | |
Dogcatfee | 6:a64d79286726 | 65 | } |
Dogcatfee | 6:a64d79286726 | 66 | |
Dogcatfee | 6:a64d79286726 | 67 | //write analog values (integers) to array |
Dogcatfee | 6:a64d79286726 | 68 | reading_array[i] = Spanel.read()*10000; |
Dogcatfee | 6:a64d79286726 | 69 | } |
ziadeldebri | 4:b3a93554fedf | 70 | |
ziadeldebri | 4:b3a93554fedf | 71 | |
ziadeldebri | 4:b3a93554fedf | 72 | |
Dogcatfee | 6:a64d79286726 | 73 | for (i = 0; i < size; i++) |
Dogcatfee | 6:a64d79286726 | 74 | { |
Dogcatfee | 6:a64d79286726 | 75 | if (reading_array[i] > largest) |
Dogcatfee | 6:a64d79286726 | 76 | { |
ziadeldebri | 3:b787aa49b900 | 77 | |
Dogcatfee | 6:a64d79286726 | 78 | largest = reading_array[i]; |
Dogcatfee | 6:a64d79286726 | 79 | largesti = i; |
Dogcatfee | 6:a64d79286726 | 80 | |
Dogcatfee | 6:a64d79286726 | 81 | } |
Dogcatfee | 6:a64d79286726 | 82 | |
ziadeldebri | 4:b3a93554fedf | 83 | } |
Dogcatfee | 6:a64d79286726 | 84 | |
Dogcatfee | 6:a64d79286726 | 85 | //pc.printf(" servo pos %d %ld\n ", 0 , my_servo.get()); |
Dogcatfee | 6:a64d79286726 | 86 | //pc.printf(" Largest degree %d %ld\n ", position_array[largesti], reading_array[largesti]); |
Dogcatfee | 6:a64d79286726 | 87 | my_servo.set(position_array[largesti]); |
Dogcatfee | 6:a64d79286726 | 88 | |
Dogcatfee | 6:a64d79286726 | 89 | wait(8); |
Dogcatfee | 6:a64d79286726 | 90 | |
ziadeldebri | 4:b3a93554fedf | 91 | } |
Dogcatfee | 6:a64d79286726 | 92 | } |