Project

Dependencies:   Motor Servo mbed

Committer:
corwinstites
Date:
Wed Oct 24 19:57:52 2018 +0000
Revision:
4:b3bd945920cd
Parent:
3:99852d2be11d
Child:
5:429bbb7077e9
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 4:b3bd945920cd 18 DigitalOut lights[5] = {p5,p6,p7,p8,p11}; // 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 }