VEX robotics 393 motor control test

Dependencies:   Servo mbed

Committer:
dbearg
Date:
Tue Jan 28 20:43:23 2014 +0000
Revision:
1:c41ae3b710a2
Parent:
0:1719fc9a160e
Child:
2:a42e1062af7b
added USB interface;

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 1:c41ae3b710a2 12
dbearg 0:1719fc9a160e 13 //add a servo to PWM output on pin 25
dbearg 0:1719fc9a160e 14 Servo myservo(p21);
dbearg 0:1719fc9a160e 15
dbearg 1:c41ae3b710a2 16 //add a variable for motor speed
dbearg 1:c41ae3b710a2 17 //0.0 is full counter-clockwise
dbearg 1:c41ae3b710a2 18 //0.5 is zero rpm
dbearg 1:c41ae3b710a2 19 //1.0 is full clockwise
dbearg 0:1719fc9a160e 20
dbearg 1:c41ae3b710a2 21 float speed = 0.5;
dbearg 1:c41ae3b710a2 22
dbearg 1:c41ae3b710a2 23 //add variables for the 4 onboard LEDS
dbearg 0:1719fc9a160e 24 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
dbearg 0:1719fc9a160e 25
dbearg 1:c41ae3b710a2 26 //PC USB link
dbearg 1:c41ae3b710a2 27 Serial pc(USBTX, USBRX);
dbearg 0:1719fc9a160e 28
dbearg 0:1719fc9a160e 29
dbearg 0:1719fc9a160e 30 //==========================================================
dbearg 0:1719fc9a160e 31 // MAIN FUNCTION
dbearg 0:1719fc9a160e 32 // waits for button press, then uses the button code above
dbearg 0:1719fc9a160e 33 //==========================================================
dbearg 1:c41ae3b710a2 34
dbearg 0:1719fc9a160e 35 int main() {
dbearg 1:c41ae3b710a2 36
dbearg 1:c41ae3b710a2 37 //prompt the PC user for differential speed value
dbearg 1:c41ae3b710a2 38
dbearg 1:c41ae3b710a2 39 pc.printf("Control of LED dimmer by host terminal\n\r");
dbearg 1:c41ae3b710a2 40 pc.printf("Press 'u‘ = brighter, 'd‘ = dimmer\n\r");
dbearg 1:c41ae3b710a2 41
dbearg 1:c41ae3b710a2 42 while(1) {
dbearg 1:c41ae3b710a2 43
dbearg 1:c41ae3b710a2 44 //get the value for speed
dbearg 1:c41ae3b710a2 45
dbearg 1:c41ae3b710a2 46 char c = pc.getc();
dbearg 1:c41ae3b710a2 47 wait(0.001);
dbearg 1:c41ae3b710a2 48
dbearg 1:c41ae3b710a2 49 //up logic
dbearg 1:c41ae3b710a2 50
dbearg 1:c41ae3b710a2 51 if((c == 'u') && (speed < 1.0)) {
dbearg 1:c41ae3b710a2 52 speed += 0.001;
dbearg 1:c41ae3b710a2 53 myservo = speed;
dbearg 1:c41ae3b710a2 54 }
dbearg 1:c41ae3b710a2 55
dbearg 1:c41ae3b710a2 56 //down logic
dbearg 0:1719fc9a160e 57
dbearg 1:c41ae3b710a2 58 if((c == 'd') && (speed > 0.0)) {
dbearg 1:c41ae3b710a2 59 speed -= 0.001;
dbearg 1:c41ae3b710a2 60 myservo = speed;
dbearg 1:c41ae3b710a2 61 }
dbearg 1:c41ae3b710a2 62
dbearg 1:c41ae3b710a2 63 //display the speed to the PC
dbearg 1:c41ae3b710a2 64 pc.printf("%c %1.3f \n \r",c,speed);
dbearg 0:1719fc9a160e 65
dbearg 1:c41ae3b710a2 66 }
dbearg 1:c41ae3b710a2 67
dbearg 1:c41ae3b710a2 68 //end while loop
dbearg 0:1719fc9a160e 69
dbearg 0:1719fc9a160e 70 }
dbearg 1:c41ae3b710a2 71
dbearg 1:c41ae3b710a2 72 //end of main function