Code for LHS 12_12_2013

Dependencies:   Servo mbed

Committer:
dbearg
Date:
Sat Feb 01 16:53:35 2014 +0000
Revision:
2:da289f7a67c9
Parent:
1:da313e5e8914
Child:
3:59a9bd160e29
added motor on duration and motor off function to each interrupt

Who changed what in which revision?

UserRevisionLine numberNew 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 2:da289f7a67c9 43 //move VEX motor (1 is full CCW, 0 is full CW)
dbearg 1:da313e5e8914 44 speed = 1.0;
dbearg 1:da313e5e8914 45 motor1 = speed;
dbearg 2:da289f7a67c9 46 //set the motor on duration in seconds:
dbearg 2:da289f7a67c9 47 wait(1);
dbearg 2:da289f7a67c9 48 //stop motor
dbearg 2:da289f7a67c9 49 speed = 0.5;
dbearg 2:da289f7a67c9 50 motor1 = speed;
dbearg 0:17b1dcf89648 51
dbearg 0:17b1dcf89648 52 //Set LED 1
dbearg 0:17b1dcf89648 53 led1 = 1, led2 = 0, led3 = 0, led4 = 0;
dbearg 0:17b1dcf89648 54 }
dbearg 0:17b1dcf89648 55
dbearg 0:17b1dcf89648 56
dbearg 0:17b1dcf89648 57
dbearg 0:17b1dcf89648 58 // Functions for button 2
dbearg 0:17b1dcf89648 59 void b_hit_interrupt (void) {
dbearg 0:17b1dcf89648 60
dbearg 2:da289f7a67c9 61 //move VEX motor (1 is full CCW, 0 is full CW)
dbearg 1:da313e5e8914 62 speed = 0.0;
dbearg 1:da313e5e8914 63 motor1 = speed;
dbearg 2:da289f7a67c9 64 //set the motor on duration in seconds:
dbearg 2:da289f7a67c9 65 wait(1);
dbearg 2:da289f7a67c9 66 //stop motor
dbearg 2:da289f7a67c9 67 speed = 0.5;
dbearg 2:da289f7a67c9 68 motor1 = speed;
dbearg 2:da289f7a67c9 69
dbearg 0:17b1dcf89648 70 //Set LED 2
dbearg 0:17b1dcf89648 71 led1 = 0, led2 = 1, led3 = 0, led4 = 0;
dbearg 0:17b1dcf89648 72 }
dbearg 0:17b1dcf89648 73
dbearg 0:17b1dcf89648 74
dbearg 0:17b1dcf89648 75
dbearg 0:17b1dcf89648 76 // Functions for button 3
dbearg 0:17b1dcf89648 77 void c_hit_interrupt (void) {
dbearg 0:17b1dcf89648 78
dbearg 0:17b1dcf89648 79 //Set LED 3
dbearg 0:17b1dcf89648 80 led1 = 0, led2 = 0, led3 = 1, led4 = 0;
dbearg 0:17b1dcf89648 81 }
dbearg 0:17b1dcf89648 82
dbearg 0:17b1dcf89648 83
dbearg 0:17b1dcf89648 84
dbearg 0:17b1dcf89648 85 // Functions for button 4
dbearg 0:17b1dcf89648 86 void d_hit_interrupt (void) {
dbearg 0:17b1dcf89648 87
dbearg 0:17b1dcf89648 88 //Set LED 4
dbearg 0:17b1dcf89648 89 led1 = 0, led2 = 0, led3 = 0, led4 = 1;
dbearg 0:17b1dcf89648 90 }
dbearg 0:17b1dcf89648 91
dbearg 0:17b1dcf89648 92
dbearg 0:17b1dcf89648 93
dbearg 0:17b1dcf89648 94 //==========================================================
dbearg 0:17b1dcf89648 95 // MAIN FUNCTION
dbearg 0:17b1dcf89648 96 // waits for button press, then uses the button code above
dbearg 0:17b1dcf89648 97 //==========================================================
dbearg 0:17b1dcf89648 98
dbearg 0:17b1dcf89648 99 int main() {
dbearg 0:17b1dcf89648 100
dbearg 0:17b1dcf89648 101 // Use internal pullup resistors to limit the signal current
dbearg 0:17b1dcf89648 102 a.mode(PullUp);
dbearg 0:17b1dcf89648 103 b.mode(PullUp);
dbearg 0:17b1dcf89648 104 c.mode(PullUp);
dbearg 0:17b1dcf89648 105 d.mode(PullUp);
dbearg 0:17b1dcf89648 106
dbearg 0:17b1dcf89648 107 // Delay for initial pullup switching to take effect
dbearg 0:17b1dcf89648 108 wait(.01);
dbearg 0:17b1dcf89648 109
dbearg 0:17b1dcf89648 110 // tells the code what function should be called for each switch press
dbearg 0:17b1dcf89648 111 a.fall(&a_hit_interrupt);
dbearg 0:17b1dcf89648 112 b.fall(&b_hit_interrupt);
dbearg 0:17b1dcf89648 113 c.fall(&c_hit_interrupt);
dbearg 0:17b1dcf89648 114 d.fall(&d_hit_interrupt);
dbearg 0:17b1dcf89648 115
dbearg 0:17b1dcf89648 116
dbearg 2:da289f7a67c9 117 while(1) {
dbearg 0:17b1dcf89648 118 //reset LEDs
dbearg 0:17b1dcf89648 119 led1 = 0, led2 = 0, led3 = 0, led4 = 0;
dbearg 0:17b1dcf89648 120
dbearg 0:17b1dcf89648 121 }
dbearg 0:17b1dcf89648 122 }