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