Project

Dependencies:   Motor Servo mbed

Committer:
corwinstites
Date:
Wed Oct 24 01:29:53 2018 +0000
Revision:
1:ed0f48d7be99
Parent:
0:17c1875334d9
Child:
2:460005c21162
updated

Who changed what in which revision?

UserRevisionLine numberNew 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 1:ed0f48d7be99 50 table.speed(.2);
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 1:ed0f48d7be99 55 table.speed(.2);
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 1:ed0f48d7be99 60 table.speed(.2);
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 1:ed0f48d7be99 65 table.speed(.2);
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 1:ed0f48d7be99 78
corwinstites 1:ed0f48d7be99 79
corwinstites 1:ed0f48d7be99 80
corwinstites 1:ed0f48d7be99 81
corwinstites 1:ed0f48d7be99 82 }// end while
corwinstites 1:ed0f48d7be99 83 } // end main
corwinstites 1:ed0f48d7be99 84
corwinstites 1:ed0f48d7be99 85 void lit(void){
corwinstites 1:ed0f48d7be99 86 int i;
corwinstites 1:ed0f48d7be99 87 while (1){
corwinstites 1:ed0f48d7be99 88 for (i=0; i<5; i++)
corwinstites 1:ed0f48d7be99 89 {
corwinstites 1:ed0f48d7be99 90 lights[i]=1;
corwinstites 1:ed0f48d7be99 91 lights[i-1]=0;
corwinstites 1:ed0f48d7be99 92 wait(.5);
corwinstites 1:ed0f48d7be99 93 if (i == 4) {
corwinstites 1:ed0f48d7be99 94 lights[4]=0;
corwinstites 1:ed0f48d7be99 95 }
corwinstites 1:ed0f48d7be99 96 }
corwinstites 1:ed0f48d7be99 97 }
corwinstites 1:ed0f48d7be99 98 }
corwinstites 1:ed0f48d7be99 99
corwinstites 1:ed0f48d7be99 100 void mov1(void){
corwinstites 1:ed0f48d7be99 101 int i;
corwinstites 1:ed0f48d7be99 102 int j;
corwinstites 1:ed0f48d7be99 103 lowarm = .5;
corwinstites 1:ed0f48d7be99 104 uparm = .5;
corwinstites 1:ed0f48d7be99 105 while(1){
corwinstites 1:ed0f48d7be99 106 for (i=0; i<40; i++){
corwinstites 1:ed0f48d7be99 107 uparm = .5 + i*0.00833;
corwinstites 1:ed0f48d7be99 108 wait(.075);
corwinstites 1:ed0f48d7be99 109 }
corwinstites 1:ed0f48d7be99 110 uparm = 0.833;
corwinstites 1:ed0f48d7be99 111 for (j=0; j<40; j++){
corwinstites 1:ed0f48d7be99 112 uparm = 0.833-j*0.00833;
corwinstites 1:ed0f48d7be99 113 wait(.075);
corwinstites 1:ed0f48d7be99 114 printf("ahh");
corwinstites 1:ed0f48d7be99 115 }
corwinstites 1:ed0f48d7be99 116 }
corwinstites 1:ed0f48d7be99 117 }
corwinstites 1:ed0f48d7be99 118
corwinstites 1:ed0f48d7be99 119
corwinstites 1:ed0f48d7be99 120 void mov2(void){
corwinstites 1:ed0f48d7be99 121 int i;
corwinstites 1:ed0f48d7be99 122 int j;
corwinstites 1:ed0f48d7be99 123 lowarm = .5;
corwinstites 1:ed0f48d7be99 124 uparm = .5;
corwinstites 1:ed0f48d7be99 125 while(1){
corwinstites 1:ed0f48d7be99 126 for (i=0; i<40; i++){
corwinstites 1:ed0f48d7be99 127 uparm = .5 + i*0.00833;
corwinstites 1:ed0f48d7be99 128 lowarm = .5 + i*0.00833;
corwinstites 1:ed0f48d7be99 129 wait(.075);
corwinstites 1:ed0f48d7be99 130 }
corwinstites 1:ed0f48d7be99 131 uparm = 0.833;
corwinstites 1:ed0f48d7be99 132 lowarm= 0.833;
corwinstites 1:ed0f48d7be99 133 for (j=0; j<40; j++){
corwinstites 1:ed0f48d7be99 134 uparm = 0.833-j*0.00833;
corwinstites 1:ed0f48d7be99 135 lowarm = 0.833-j*0.00833;
corwinstites 1:ed0f48d7be99 136 wait(.075);
corwinstites 1:ed0f48d7be99 137 }
corwinstites 1:ed0f48d7be99 138 }
corwinstites 1:ed0f48d7be99 139 }
corwinstites 1:ed0f48d7be99 140
corwinstites 1:ed0f48d7be99 141 void mov3(void) {
corwinstites 1:ed0f48d7be99 142 int i;
corwinstites 1:ed0f48d7be99 143 int j;
corwinstites 1:ed0f48d7be99 144 lowarm = .5;
corwinstites 1:ed0f48d7be99 145 uparm = .833;
corwinstites 1:ed0f48d7be99 146 while(1){
corwinstites 1:ed0f48d7be99 147 for (i=0; i<40; i++){
corwinstites 1:ed0f48d7be99 148 uparm = 0.833 - i*0.00833;
corwinstites 1:ed0f48d7be99 149 lowarm = .5 + i*0.00833;
corwinstites 1:ed0f48d7be99 150 wait(.075);
corwinstites 1:ed0f48d7be99 151 }
corwinstites 1:ed0f48d7be99 152 uparm = 0.5;
corwinstites 1:ed0f48d7be99 153 lowarm= .833;
corwinstites 1:ed0f48d7be99 154 for (j=0; j<40; j++){
corwinstites 1:ed0f48d7be99 155 uparm = .5 + j*0.00833;
corwinstites 1:ed0f48d7be99 156 lowarm = 0.833-j*0.00833;
corwinstites 1:ed0f48d7be99 157 wait(.075);
corwinstites 1:ed0f48d7be99 158 }
corwinstites 1:ed0f48d7be99 159 }
corwinstites 1:ed0f48d7be99 160 }