Code for LHS 12_12_2013

Dependencies:   Servo mbed

Committer:
dbearg
Date:
Fri Dec 13 02:06:17 2013 +0000
Revision:
0:17b1dcf89648
Child:
1:da313e5e8914
First version with servo, change to gear reduction system?

Who changed what in which revision?

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