cool
Dependencies: Motor Servo mbed
main.cpp@1:50490d67ac7e, 2014-10-22 (annotated)
- Committer:
- m170984
- Date:
- Wed Oct 22 01:20:11 2014 +0000
- Revision:
- 1:50490d67ac7e
- Parent:
- 0:af31e48dd848
commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
m170984 | 0:af31e48dd848 | 1 | #include "mbed.h" |
m170984 | 0:af31e48dd848 | 2 | #include "Motor.h" |
m170984 | 0:af31e48dd848 | 3 | #include "Servo.h" |
m170984 | 0:af31e48dd848 | 4 | |
m170984 | 1:50490d67ac7e | 5 | // I left my code open and unguarded!! |
m170984 | 1:50490d67ac7e | 6 | // I'm a tree! |
m170984 | 1:50490d67ac7e | 7 | |
m170984 | 1:50490d67ac7e | 8 | //Digital I/O |
m170984 | 1:50490d67ac7e | 9 | Motor m(p26, p29, p30); // pins to use for pwm, fwd, rev |
m170984 | 0:af31e48dd848 | 10 | Servo myservo1(p21); //declare servos |
m170984 | 0:af31e48dd848 | 11 | Servo myservo2(p22); |
m170984 | 1:50490d67ac7e | 12 | DigitalOut led[5] = {p5,p6,p7,p8,p11}; //array for leds |
m170984 | 1:50490d67ac7e | 13 | DigitalIn num (p16); // set variable num to read from the board switches |
m170984 | 1:50490d67ac7e | 14 | DigitalIn num2 (p17); |
m170984 | 1:50490d67ac7e | 15 | DigitalIn num3 (p18); |
m170984 | 1:50490d67ac7e | 16 | |
m170984 | 1:50490d67ac7e | 17 | int fl =2; |
m170984 | 0:af31e48dd848 | 18 | |
m170984 | 1:50490d67ac7e | 19 | void flash() |
m170984 | 1:50490d67ac7e | 20 | { |
m170984 | 1:50490d67ac7e | 21 | if (led[fl] ==0) |
m170984 | 1:50490d67ac7e | 22 | { |
m170984 | 1:50490d67ac7e | 23 | led[fl] =1; |
m170984 | 1:50490d67ac7e | 24 | wait(0.1); |
m170984 | 1:50490d67ac7e | 25 | } |
m170984 | 1:50490d67ac7e | 26 | else |
m170984 | 1:50490d67ac7e | 27 | { |
m170984 | 1:50490d67ac7e | 28 | led[fl] = 0; |
m170984 | 1:50490d67ac7e | 29 | wait(0.1); |
m170984 | 1:50490d67ac7e | 30 | } |
m170984 | 1:50490d67ac7e | 31 | if (fl < 4) |
m170984 | 1:50490d67ac7e | 32 | { |
m170984 | 1:50490d67ac7e | 33 | fl++; |
m170984 | 1:50490d67ac7e | 34 | } |
m170984 | 1:50490d67ac7e | 35 | else |
m170984 | 1:50490d67ac7e | 36 | { |
m170984 | 1:50490d67ac7e | 37 | fl=2; |
m170984 | 1:50490d67ac7e | 38 | } |
m170984 | 1:50490d67ac7e | 39 | } |
m170984 | 0:af31e48dd848 | 40 | |
m170984 | 0:af31e48dd848 | 41 | void opengate() // function to open the gate |
m170984 | 0:af31e48dd848 | 42 | { |
m170984 | 0:af31e48dd848 | 43 | myservo1 = 1; |
m170984 | 1:50490d67ac7e | 44 | wait(0.01); |
m170984 | 0:af31e48dd848 | 45 | } |
m170984 | 0:af31e48dd848 | 46 | void closegate() //function to close the gate |
m170984 | 0:af31e48dd848 | 47 | { |
m170984 | 0:af31e48dd848 | 48 | myservo1 = 0; |
m170984 | 1:50490d67ac7e | 49 | wait(0.01); |
m170984 | 0:af31e48dd848 | 50 | } |
m170984 | 0:af31e48dd848 | 51 | |
m170984 | 0:af31e48dd848 | 52 | int main() |
m170984 | 0:af31e48dd848 | 53 | { |
m170984 | 1:50490d67ac7e | 54 | float wiggle =0; |
m170984 | 1:50490d67ac7e | 55 | myservo2=wiggle; |
m170984 | 1:50490d67ac7e | 56 | int tofro = 0; |
m170984 | 1:50490d67ac7e | 57 | float i=0.0; //speed var |
m170984 | 1:50490d67ac7e | 58 | while(1)// THE Loop |
m170984 | 1:50490d67ac7e | 59 | { |
m170984 | 1:50490d67ac7e | 60 | flash(); |
m170984 | 1:50490d67ac7e | 61 | if(num == 0) |
m170984 | 1:50490d67ac7e | 62 | { |
m170984 | 1:50490d67ac7e | 63 | led[0] = 0; |
m170984 | 1:50490d67ac7e | 64 | closegate(); |
m170984 | 1:50490d67ac7e | 65 | } |
m170984 | 1:50490d67ac7e | 66 | if(num == 1) |
m170984 | 1:50490d67ac7e | 67 | { |
m170984 | 1:50490d67ac7e | 68 | led[0] = 1; |
m170984 | 1:50490d67ac7e | 69 | opengate(); |
m170984 | 1:50490d67ac7e | 70 | } |
m170984 | 1:50490d67ac7e | 71 | if(num2 == 1) |
m170984 | 1:50490d67ac7e | 72 | { |
m170984 | 1:50490d67ac7e | 73 | led[1] = 1; |
m170984 | 1:50490d67ac7e | 74 | if(i<0.2) |
m170984 | 1:50490d67ac7e | 75 | { |
m170984 | 1:50490d67ac7e | 76 | i=i+0.1; |
m170984 | 1:50490d67ac7e | 77 | m.speed(i); |
m170984 | 1:50490d67ac7e | 78 | wait(0.5); |
m170984 | 1:50490d67ac7e | 79 | } |
m170984 | 1:50490d67ac7e | 80 | } |
m170984 | 1:50490d67ac7e | 81 | if(num2 == 0) |
m170984 | 1:50490d67ac7e | 82 | { |
m170984 | 1:50490d67ac7e | 83 | led[1] = 0; |
m170984 | 1:50490d67ac7e | 84 | |
m170984 | 1:50490d67ac7e | 85 | if(i>0) |
m170984 | 1:50490d67ac7e | 86 | { |
m170984 | 1:50490d67ac7e | 87 | i=i-0.08; |
m170984 | 1:50490d67ac7e | 88 | m.speed(i); |
m170984 | 1:50490d67ac7e | 89 | wait(0.5); |
m170984 | 1:50490d67ac7e | 90 | } |
m170984 | 1:50490d67ac7e | 91 | } |
m170984 | 1:50490d67ac7e | 92 | if (num3 == 1) |
m170984 | 1:50490d67ac7e | 93 | { |
m170984 | 1:50490d67ac7e | 94 | if (tofro==0) |
m170984 | 1:50490d67ac7e | 95 | { |
m170984 | 1:50490d67ac7e | 96 | wiggle = wiggle + 0.01; |
m170984 | 1:50490d67ac7e | 97 | myservo2 = wiggle; |
m170984 | 1:50490d67ac7e | 98 | wait(0.01); |
m170984 | 1:50490d67ac7e | 99 | if(wiggle >= 0.1) |
m170984 | 1:50490d67ac7e | 100 | { |
m170984 | 1:50490d67ac7e | 101 | tofro=1; |
m170984 | 1:50490d67ac7e | 102 | } |
m170984 | 1:50490d67ac7e | 103 | } |
m170984 | 1:50490d67ac7e | 104 | if (tofro==1) |
m170984 | 1:50490d67ac7e | 105 | { |
m170984 | 1:50490d67ac7e | 106 | wiggle = wiggle - 0.01; |
m170984 | 1:50490d67ac7e | 107 | myservo2 = wiggle; |
m170984 | 1:50490d67ac7e | 108 | wait(0.01); |
m170984 | 1:50490d67ac7e | 109 | if (wiggle <= 0) |
m170984 | 1:50490d67ac7e | 110 | { |
m170984 | 1:50490d67ac7e | 111 | tofro =0; |
m170984 | 1:50490d67ac7e | 112 | } |
m170984 | 1:50490d67ac7e | 113 | } |
m170984 | 1:50490d67ac7e | 114 | } |
m170984 | 1:50490d67ac7e | 115 | if(num3==0) |
m170984 | 1:50490d67ac7e | 116 | { |
m170984 | 1:50490d67ac7e | 117 | wiggle =0; |
m170984 | 1:50490d67ac7e | 118 | myservo2 = wiggle; |
m170984 | 1:50490d67ac7e | 119 | wait(0.01); |
m170984 | 1:50490d67ac7e | 120 | tofro=0; |
m170984 | 1:50490d67ac7e | 121 | } |
m170984 | 1:50490d67ac7e | 122 | } |
m170984 | 0:af31e48dd848 | 123 | } |