Code for LHS 12_12_2013

Dependencies:   Servo mbed

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?

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 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 }