VEX robotics 393 motor control test

Dependencies:   Servo mbed

Committer:
dbearg
Date:
Tue Jan 28 20:25:41 2014 +0000
Revision:
0:1719fc9a160e
Child:
1:c41ae3b710a2
test of program publish

Who changed what in which revision?

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