David Beargie
/
LHS_program_1
Code for LHS 12_12_2013
main.cpp@3:59a9bd160e29, 2014-02-01 (annotated)
- Committer:
- dbearg
- Date:
- Sat Feb 01 18:26:06 2014 +0000
- Revision:
- 3:59a9bd160e29
- Parent:
- 2:da289f7a67c9
- Child:
- 4:3588eff6d065
speed values;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dbearg | 1:da313e5e8914 | 1 | //================================== |
dbearg | 1:da313e5e8914 | 2 | // |
dbearg | 1:da313e5e8914 | 3 | // PLTW PROGRAM |
dbearg | 1:da313e5e8914 | 4 | // ---------------------------- |
dbearg | 1:da313e5e8914 | 5 | // Controls a PWM output using |
dbearg | 1:da313e5e8914 | 6 | // digital inputs |
dbearg | 1:da313e5e8914 | 7 | // |
dbearg | 3:59a9bd160e29 | 8 | // SPEEDS: |
dbearg | 3:59a9bd160e29 | 9 | // 0.00 - 0.49 reverse |
dbearg | 3:59a9bd160e29 | 10 | // 0.49 - 0.51 zero |
dbearg | 3:59a9bd160e29 | 11 | // 0.51 - 1.00 forward |
dbearg | 3:59a9bd160e29 | 12 | |
dbearg | 1:da313e5e8914 | 13 | //================================== |
dbearg | 1:da313e5e8914 | 14 | |
dbearg | 1:da313e5e8914 | 15 | |
dbearg | 0:17b1dcf89648 | 16 | //================================== |
dbearg | 0:17b1dcf89648 | 17 | // Add any libraries that you use: |
dbearg | 0:17b1dcf89648 | 18 | //================================== |
dbearg | 1:da313e5e8914 | 19 | |
dbearg | 0:17b1dcf89648 | 20 | #include "mbed.h" |
dbearg | 0:17b1dcf89648 | 21 | #include "Servo.h" |
dbearg | 0:17b1dcf89648 | 22 | |
dbearg | 0:17b1dcf89648 | 23 | |
dbearg | 0:17b1dcf89648 | 24 | //================================== |
dbearg | 0:17b1dcf89648 | 25 | // Add variables: |
dbearg | 0:17b1dcf89648 | 26 | //================================== |
dbearg | 0:17b1dcf89648 | 27 | |
dbearg | 1:da313e5e8914 | 28 | //add a motor to PWM output on pin 25 |
dbearg | 1:da313e5e8914 | 29 | Servo motor1(p25); |
dbearg | 0:17b1dcf89648 | 30 | |
dbearg | 1:da313e5e8914 | 31 | //add a variable for motor speed |
dbearg | 1:da313e5e8914 | 32 | float speed = 0.5; |
dbearg | 0:17b1dcf89648 | 33 | |
dbearg | 0:17b1dcf89648 | 34 | //add variables for the onboard LEDS, which display for each button |
dbearg | 0:17b1dcf89648 | 35 | DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); |
dbearg | 0:17b1dcf89648 | 36 | |
dbearg | 0:17b1dcf89648 | 37 | //add variables for button inputs on pins 15, 16, 17, and 18. |
dbearg | 0:17b1dcf89648 | 38 | InterruptIn a(p18), b(p17), c(p16), d(p15); |
dbearg | 0:17b1dcf89648 | 39 | |
dbearg | 0:17b1dcf89648 | 40 | //================================== |
dbearg | 0:17b1dcf89648 | 41 | // Functions for each button press |
dbearg | 0:17b1dcf89648 | 42 | //================================== |
dbearg | 0:17b1dcf89648 | 43 | |
dbearg | 0:17b1dcf89648 | 44 | |
dbearg | 0:17b1dcf89648 | 45 | // Functions for button 1 |
dbearg | 0:17b1dcf89648 | 46 | void a_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 47 | |
dbearg | 2:da289f7a67c9 | 48 | //move VEX motor (1 is full CCW, 0 is full CW) |
dbearg | 1:da313e5e8914 | 49 | speed = 1.0; |
dbearg | 1:da313e5e8914 | 50 | motor1 = speed; |
dbearg | 2:da289f7a67c9 | 51 | //set the motor on duration in seconds: |
dbearg | 2:da289f7a67c9 | 52 | wait(1); |
dbearg | 2:da289f7a67c9 | 53 | //stop motor |
dbearg | 2:da289f7a67c9 | 54 | speed = 0.5; |
dbearg | 2:da289f7a67c9 | 55 | motor1 = speed; |
dbearg | 0:17b1dcf89648 | 56 | |
dbearg | 0:17b1dcf89648 | 57 | //Set LED 1 |
dbearg | 0:17b1dcf89648 | 58 | led1 = 1, led2 = 0, led3 = 0, led4 = 0; |
dbearg | 0:17b1dcf89648 | 59 | } |
dbearg | 0:17b1dcf89648 | 60 | |
dbearg | 0:17b1dcf89648 | 61 | |
dbearg | 0:17b1dcf89648 | 62 | |
dbearg | 0:17b1dcf89648 | 63 | // Functions for button 2 |
dbearg | 0:17b1dcf89648 | 64 | void b_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 65 | |
dbearg | 2:da289f7a67c9 | 66 | //move VEX motor (1 is full CCW, 0 is full CW) |
dbearg | 1:da313e5e8914 | 67 | speed = 0.0; |
dbearg | 1:da313e5e8914 | 68 | motor1 = speed; |
dbearg | 2:da289f7a67c9 | 69 | //set the motor on duration in seconds: |
dbearg | 2:da289f7a67c9 | 70 | wait(1); |
dbearg | 2:da289f7a67c9 | 71 | //stop motor |
dbearg | 2:da289f7a67c9 | 72 | speed = 0.5; |
dbearg | 2:da289f7a67c9 | 73 | motor1 = speed; |
dbearg | 2:da289f7a67c9 | 74 | |
dbearg | 0:17b1dcf89648 | 75 | //Set LED 2 |
dbearg | 0:17b1dcf89648 | 76 | led1 = 0, led2 = 1, led3 = 0, led4 = 0; |
dbearg | 0:17b1dcf89648 | 77 | } |
dbearg | 0:17b1dcf89648 | 78 | |
dbearg | 0:17b1dcf89648 | 79 | |
dbearg | 0:17b1dcf89648 | 80 | |
dbearg | 0:17b1dcf89648 | 81 | // Functions for button 3 |
dbearg | 0:17b1dcf89648 | 82 | void c_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 83 | |
dbearg | 0:17b1dcf89648 | 84 | //Set LED 3 |
dbearg | 0:17b1dcf89648 | 85 | led1 = 0, led2 = 0, led3 = 1, led4 = 0; |
dbearg | 0:17b1dcf89648 | 86 | } |
dbearg | 0:17b1dcf89648 | 87 | |
dbearg | 0:17b1dcf89648 | 88 | |
dbearg | 0:17b1dcf89648 | 89 | |
dbearg | 0:17b1dcf89648 | 90 | // Functions for button 4 |
dbearg | 0:17b1dcf89648 | 91 | void d_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 92 | |
dbearg | 0:17b1dcf89648 | 93 | //Set LED 4 |
dbearg | 0:17b1dcf89648 | 94 | led1 = 0, led2 = 0, led3 = 0, led4 = 1; |
dbearg | 0:17b1dcf89648 | 95 | } |
dbearg | 0:17b1dcf89648 | 96 | |
dbearg | 0:17b1dcf89648 | 97 | |
dbearg | 0:17b1dcf89648 | 98 | |
dbearg | 0:17b1dcf89648 | 99 | //========================================================== |
dbearg | 0:17b1dcf89648 | 100 | // MAIN FUNCTION |
dbearg | 0:17b1dcf89648 | 101 | // waits for button press, then uses the button code above |
dbearg | 0:17b1dcf89648 | 102 | //========================================================== |
dbearg | 0:17b1dcf89648 | 103 | |
dbearg | 0:17b1dcf89648 | 104 | int main() { |
dbearg | 0:17b1dcf89648 | 105 | |
dbearg | 0:17b1dcf89648 | 106 | // Use internal pullup resistors to limit the signal current |
dbearg | 0:17b1dcf89648 | 107 | a.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 108 | b.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 109 | c.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 110 | d.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 111 | |
dbearg | 0:17b1dcf89648 | 112 | // Delay for initial pullup switching to take effect |
dbearg | 0:17b1dcf89648 | 113 | wait(.01); |
dbearg | 0:17b1dcf89648 | 114 | |
dbearg | 0:17b1dcf89648 | 115 | // tells the code what function should be called for each switch press |
dbearg | 0:17b1dcf89648 | 116 | a.fall(&a_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 117 | b.fall(&b_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 118 | c.fall(&c_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 119 | d.fall(&d_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 120 | |
dbearg | 0:17b1dcf89648 | 121 | |
dbearg | 2:da289f7a67c9 | 122 | while(1) { |
dbearg | 0:17b1dcf89648 | 123 | //reset LEDs |
dbearg | 0:17b1dcf89648 | 124 | led1 = 0, led2 = 0, led3 = 0, led4 = 0; |
dbearg | 0:17b1dcf89648 | 125 | |
dbearg | 0:17b1dcf89648 | 126 | } |
dbearg | 0:17b1dcf89648 | 127 | } |