Code for LHS 12_12_2013

Dependencies:   Servo mbed

Revision:
0:17b1dcf89648
Child:
1:da313e5e8914
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Dec 13 02:06:17 2013 +0000
@@ -0,0 +1,106 @@
+//==================================
+// Add any libraries that you use:
+//==================================
+#include "mbed.h"
+#include "Servo.h"
+
+
+//==================================
+// Add variables:
+//==================================
+
+//add a servo to PWM output on pin 25
+Servo myservo(p25);
+
+//add a variable for servo position
+float position = 0.5;
+
+//add variables for the onboard LEDS, which display for each button
+DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
+
+//add variables for button inputs on pins 15, 16, 17, and 18.
+InterruptIn a(p18), b(p17), c(p16), d(p15);
+
+//==================================
+// Functions for each button press
+//==================================
+
+
+// Functions for button 1
+void a_hit_interrupt (void) {
+
+    //move servo motor
+    position = 1.0;
+    myservo = position;
+    
+    //Set LED 1
+    led1 = 1, led2 = 0, led3 = 0, led4 = 0;
+}
+ 
+ 
+ 
+// Functions for button 2
+void b_hit_interrupt (void) {
+
+    //move servo motor
+    position = 0.0;
+    myservo = position;
+    //Set LED 2
+    led1 = 0, led2 = 1, led3 = 0, led4 = 0;    
+}
+
+
+
+// Functions for button 3 
+void c_hit_interrupt (void) {
+
+    //Set LED 3
+    led1 = 0, led2 = 0, led3 = 1, led4 = 0;
+}
+ 
+ 
+ 
+// Functions for button 4 
+void d_hit_interrupt (void) {
+
+    //Set LED 4
+    led1 = 0, led2 = 0, led3 = 0, led4 = 1;
+}
+
+
+
+//==========================================================
+//  MAIN FUNCTION
+//  waits for button press, then uses the button code above
+//==========================================================
+
+int main() {
+
+    //tune range depending on servo motor
+    float range = 0.0009;
+       
+    // Use internal pullup resistors to limit the signal current
+    a.mode(PullUp);
+    b.mode(PullUp);
+    c.mode(PullUp);
+    d.mode(PullUp);            
+    
+    // Delay for initial pullup switching to take effect
+    wait(.01);
+    
+    // tells the code what function should be called for each switch press
+    a.fall(&a_hit_interrupt);
+    b.fall(&b_hit_interrupt);
+    c.fall(&c_hit_interrupt);
+    d.fall(&d_hit_interrupt);
+    
+    
+    while(1) { 
+        //set the servo to use the set value
+        myservo.calibrate(range, 45.0); 
+        
+        //reset LEDs
+        led1 = 0, led2 = 0, led3 = 0, led4 = 0;
+
+    }
+}