Project
Dependencies: Motor Servo mbed
project.cpp@3:99852d2be11d, 2018-10-24 (annotated)
- Committer:
- corwinstites
- Date:
- Wed Oct 24 19:52:10 2018 +0000
- Revision:
- 3:99852d2be11d
- Parent:
- 2:460005c21162
- Child:
- 4:b3bd945920cd
updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
corwinstites | 0:17c1875334d9 | 1 | #include "mbed.h" |
corwinstites | 0:17c1875334d9 | 2 | #include "Servo.h" |
corwinstites | 0:17c1875334d9 | 3 | #include "Motor.h" |
corwinstites | 0:17c1875334d9 | 4 | |
corwinstites | 1:ed0f48d7be99 | 5 | void mov1(void); // Defining functions |
corwinstites | 1:ed0f48d7be99 | 6 | void mov2(void); |
corwinstites | 1:ed0f48d7be99 | 7 | void mov3(void); |
corwinstites | 1:ed0f48d7be99 | 8 | void lit(void); |
corwinstites | 1:ed0f48d7be99 | 9 | |
corwinstites | 1:ed0f48d7be99 | 10 | Servo uparm(p21); // Assigns pins to servo |
corwinstites | 0:17c1875334d9 | 11 | Servo lowarm(p22); |
corwinstites | 1:ed0f48d7be99 | 12 | Motor table(p26, p29, p30); // Assigns DC pins |
corwinstites | 1:ed0f48d7be99 | 13 | |
corwinstites | 1:ed0f48d7be99 | 14 | DigitalIn base(p20); // Assigns switch pins |
corwinstites | 0:17c1875334d9 | 15 | DigitalIn s2(p19); |
corwinstites | 0:17c1875334d9 | 16 | DigitalIn s3(p18); |
corwinstites | 0:17c1875334d9 | 17 | DigitalIn s4(p17); |
corwinstites | 1:ed0f48d7be99 | 18 | DigitalOut lights[5] = {p21,p22,p23,p24,p25}; // Assigns LED pens |
corwinstites | 1:ed0f48d7be99 | 19 | |
corwinstites | 0:17c1875334d9 | 20 | |
corwinstites | 0:17c1875334d9 | 21 | int main() |
corwinstites | 0:17c1875334d9 | 22 | { |
corwinstites | 1:ed0f48d7be99 | 23 | |
corwinstites | 1:ed0f48d7be99 | 24 | uparm.calibrate(0.0009,90);// calibrates arm loaations |
corwinstites | 1:ed0f48d7be99 | 25 | lowarm.calibrate(0.0009,90); |
corwinstites | 1:ed0f48d7be99 | 26 | uparm = .5; // halfway points |
corwinstites | 1:ed0f48d7be99 | 27 | lowarm = .5; |
corwinstites | 1:ed0f48d7be99 | 28 | |
corwinstites | 1:ed0f48d7be99 | 29 | int a,b,c,d; |
corwinstites | 1:ed0f48d7be99 | 30 | |
corwinstites | 1:ed0f48d7be99 | 31 | while(1){ // continuous while statement |
corwinstites | 1:ed0f48d7be99 | 32 | |
corwinstites | 1:ed0f48d7be99 | 33 | a = base.read(); // reads in switch values |
corwinstites | 1:ed0f48d7be99 | 34 | b = s2.read(); |
corwinstites | 1:ed0f48d7be99 | 35 | c = s3.read(); |
corwinstites | 1:ed0f48d7be99 | 36 | d = s4.read(); |
corwinstites | 1:ed0f48d7be99 | 37 | |
corwinstites | 1:ed0f48d7be99 | 38 | if (a==0) { // if switch one is off, entire program does not turn on and arms calibrate |
corwinstites | 1:ed0f48d7be99 | 39 | table.speed(0); |
corwinstites | 1:ed0f48d7be99 | 40 | uparm = .5; |
corwinstites | 1:ed0f48d7be99 | 41 | lowarm = .5; |
corwinstites | 1:ed0f48d7be99 | 42 | lights[1]=0; |
corwinstites | 1:ed0f48d7be99 | 43 | lights[2]=0; |
corwinstites | 1:ed0f48d7be99 | 44 | lights[3]=0; |
corwinstites | 1:ed0f48d7be99 | 45 | lights[4]=0; |
corwinstites | 1:ed0f48d7be99 | 46 | } // end if |
corwinstites | 1:ed0f48d7be99 | 47 | |
corwinstites | 1:ed0f48d7be99 | 48 | else if (a==1 && b==0 && c==0 && d==0) |
corwinstites | 1:ed0f48d7be99 | 49 | { // if only switch one is on, lights are on and table spins. |
corwinstites | 3:99852d2be11d | 50 | table.speed(.25); |
corwinstites | 1:ed0f48d7be99 | 51 | lit(); |
corwinstites | 1:ed0f48d7be99 | 52 | } // end if |
corwinstites | 1:ed0f48d7be99 | 53 | |
corwinstites | 1:ed0f48d7be99 | 54 | else if (a==1 && b==1 && c==0 && d==0){ // if switches one and two are on, table spins, and movement 1 happens |
corwinstites | 3:99852d2be11d | 55 | table.speed(.25); |
corwinstites | 1:ed0f48d7be99 | 56 | mov1(); |
corwinstites | 1:ed0f48d7be99 | 57 | lit(); |
corwinstites | 1:ed0f48d7be99 | 58 | } // end if |
corwinstites | 1:ed0f48d7be99 | 59 | else if (a==1 && b==0 && c==1 && d==0){ // if switches one and three on, table spins, movement two happens |
corwinstites | 3:99852d2be11d | 60 | table.speed(.25); |
corwinstites | 1:ed0f48d7be99 | 61 | mov2(); |
corwinstites | 1:ed0f48d7be99 | 62 | lit(); |
corwinstites | 1:ed0f48d7be99 | 63 | } // end if |
corwinstites | 1:ed0f48d7be99 | 64 | else if (a==1 && b==0 && c==0 && d==1){ // if switches one and three are on, table speens, movement three |
corwinstites | 3:99852d2be11d | 65 | table.speed(.25); |
corwinstites | 1:ed0f48d7be99 | 66 | mov3(); |
corwinstites | 1:ed0f48d7be99 | 67 | lit(); |
corwinstites | 1:ed0f48d7be99 | 68 | } // end if |
corwinstites | 1:ed0f48d7be99 | 69 | else{ |
corwinstites | 1:ed0f48d7be99 | 70 | table.speed(0); |
corwinstites | 1:ed0f48d7be99 | 71 | uparm = .5; |
corwinstites | 1:ed0f48d7be99 | 72 | lowarm = .5; |
corwinstites | 1:ed0f48d7be99 | 73 | lights[1]=0; |
corwinstites | 1:ed0f48d7be99 | 74 | lights[2]=0; |
corwinstites | 1:ed0f48d7be99 | 75 | lights[3]=0; |
corwinstites | 1:ed0f48d7be99 | 76 | lights[4]=0; |
corwinstites | 1:ed0f48d7be99 | 77 | } // end if |
corwinstites | 3:99852d2be11d | 78 | wait(.02); |
corwinstites | 1:ed0f48d7be99 | 79 | }// end while |
corwinstites | 1:ed0f48d7be99 | 80 | } // end main |
corwinstites | 1:ed0f48d7be99 | 81 | |
corwinstites | 1:ed0f48d7be99 | 82 | void lit(void){ |
corwinstites | 1:ed0f48d7be99 | 83 | int i; |
corwinstites | 1:ed0f48d7be99 | 84 | while (1){ |
corwinstites | 1:ed0f48d7be99 | 85 | for (i=0; i<5; i++) |
corwinstites | 1:ed0f48d7be99 | 86 | { |
corwinstites | 1:ed0f48d7be99 | 87 | lights[i]=1; |
corwinstites | 1:ed0f48d7be99 | 88 | lights[i-1]=0; |
corwinstites | 1:ed0f48d7be99 | 89 | wait(.5); |
corwinstites | 1:ed0f48d7be99 | 90 | if (i == 4) { |
corwinstites | 1:ed0f48d7be99 | 91 | lights[4]=0; |
corwinstites | 1:ed0f48d7be99 | 92 | } |
corwinstites | 1:ed0f48d7be99 | 93 | } |
corwinstites | 1:ed0f48d7be99 | 94 | } |
corwinstites | 1:ed0f48d7be99 | 95 | } |
corwinstites | 1:ed0f48d7be99 | 96 | |
corwinstites | 1:ed0f48d7be99 | 97 | void mov1(void){ |
corwinstites | 1:ed0f48d7be99 | 98 | int i; |
corwinstites | 1:ed0f48d7be99 | 99 | int j; |
corwinstites | 1:ed0f48d7be99 | 100 | lowarm = .5; |
corwinstites | 1:ed0f48d7be99 | 101 | uparm = .5; |
corwinstites | 1:ed0f48d7be99 | 102 | while(1){ |
corwinstites | 1:ed0f48d7be99 | 103 | for (i=0; i<40; i++){ |
corwinstites | 1:ed0f48d7be99 | 104 | uparm = .5 + i*0.00833; |
corwinstites | 1:ed0f48d7be99 | 105 | wait(.075); |
corwinstites | 1:ed0f48d7be99 | 106 | } |
corwinstites | 1:ed0f48d7be99 | 107 | uparm = 0.833; |
corwinstites | 1:ed0f48d7be99 | 108 | for (j=0; j<40; j++){ |
corwinstites | 1:ed0f48d7be99 | 109 | uparm = 0.833-j*0.00833; |
corwinstites | 1:ed0f48d7be99 | 110 | wait(.075); |
corwinstites | 3:99852d2be11d | 111 | printf("Movement 1 \n\r"); |
corwinstites | 1:ed0f48d7be99 | 112 | } |
corwinstites | 1:ed0f48d7be99 | 113 | } |
corwinstites | 1:ed0f48d7be99 | 114 | } |
corwinstites | 1:ed0f48d7be99 | 115 | |
corwinstites | 1:ed0f48d7be99 | 116 | |
corwinstites | 1:ed0f48d7be99 | 117 | void mov2(void){ |
corwinstites | 1:ed0f48d7be99 | 118 | int i; |
corwinstites | 1:ed0f48d7be99 | 119 | int j; |
corwinstites | 1:ed0f48d7be99 | 120 | lowarm = .5; |
corwinstites | 1:ed0f48d7be99 | 121 | uparm = .5; |
corwinstites | 1:ed0f48d7be99 | 122 | while(1){ |
corwinstites | 1:ed0f48d7be99 | 123 | for (i=0; i<40; i++){ |
corwinstites | 1:ed0f48d7be99 | 124 | uparm = .5 + i*0.00833; |
corwinstites | 1:ed0f48d7be99 | 125 | lowarm = .5 + i*0.00833; |
corwinstites | 1:ed0f48d7be99 | 126 | wait(.075); |
corwinstites | 1:ed0f48d7be99 | 127 | } |
corwinstites | 1:ed0f48d7be99 | 128 | uparm = 0.833; |
corwinstites | 1:ed0f48d7be99 | 129 | lowarm= 0.833; |
corwinstites | 1:ed0f48d7be99 | 130 | for (j=0; j<40; j++){ |
corwinstites | 1:ed0f48d7be99 | 131 | uparm = 0.833-j*0.00833; |
corwinstites | 1:ed0f48d7be99 | 132 | lowarm = 0.833-j*0.00833; |
corwinstites | 1:ed0f48d7be99 | 133 | wait(.075); |
corwinstites | 3:99852d2be11d | 134 | printf("Movement 2 \n\r"); |
corwinstites | 1:ed0f48d7be99 | 135 | } |
corwinstites | 1:ed0f48d7be99 | 136 | } |
corwinstites | 1:ed0f48d7be99 | 137 | } |
corwinstites | 1:ed0f48d7be99 | 138 | |
corwinstites | 1:ed0f48d7be99 | 139 | void mov3(void) { |
corwinstites | 1:ed0f48d7be99 | 140 | int i; |
corwinstites | 1:ed0f48d7be99 | 141 | int j; |
corwinstites | 1:ed0f48d7be99 | 142 | lowarm = .5; |
corwinstites | 1:ed0f48d7be99 | 143 | uparm = .833; |
corwinstites | 1:ed0f48d7be99 | 144 | while(1){ |
corwinstites | 1:ed0f48d7be99 | 145 | for (i=0; i<40; i++){ |
corwinstites | 1:ed0f48d7be99 | 146 | uparm = 0.833 - i*0.00833; |
corwinstites | 1:ed0f48d7be99 | 147 | lowarm = .5 + i*0.00833; |
corwinstites | 1:ed0f48d7be99 | 148 | wait(.075); |
corwinstites | 1:ed0f48d7be99 | 149 | } |
corwinstites | 1:ed0f48d7be99 | 150 | uparm = 0.5; |
corwinstites | 1:ed0f48d7be99 | 151 | lowarm= .833; |
corwinstites | 1:ed0f48d7be99 | 152 | for (j=0; j<40; j++){ |
corwinstites | 1:ed0f48d7be99 | 153 | uparm = .5 + j*0.00833; |
corwinstites | 1:ed0f48d7be99 | 154 | lowarm = 0.833-j*0.00833; |
corwinstites | 1:ed0f48d7be99 | 155 | wait(.075); |
corwinstites | 3:99852d2be11d | 156 | printf("Movement 3 \n\r"); |
corwinstites | 1:ed0f48d7be99 | 157 | } |
corwinstites | 1:ed0f48d7be99 | 158 | } |
corwinstites | 1:ed0f48d7be99 | 159 | } |