![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
VEX robotics 393 motor control test
main.cpp@1:c41ae3b710a2, 2014-01-28 (annotated)
- 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?
User | Revision | Line number | New 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 |