Nicolas Sandoval
/
ControldeservomotoresporComunicacion_serial
Por medio del teclado del pc, se controlan 3 servomotores
main.cpp@0:991a0eae9d18, 2017-04-27 (annotated)
- Committer:
- nsnicolassr
- Date:
- Thu Apr 27 16:50:39 2017 +0000
- Revision:
- 0:991a0eae9d18
Control de motores por medio de comunicacion serial ; ;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nsnicolassr | 0:991a0eae9d18 | 1 | #include "mbed.h" |
nsnicolassr | 0:991a0eae9d18 | 2 | |
nsnicolassr | 0:991a0eae9d18 | 3 | Serial pc(USBTX, USBRX); |
nsnicolassr | 0:991a0eae9d18 | 4 | |
nsnicolassr | 0:991a0eae9d18 | 5 | PwmOut s1(PC_6); |
nsnicolassr | 0:991a0eae9d18 | 6 | PwmOut s2(PC_8); |
nsnicolassr | 0:991a0eae9d18 | 7 | PwmOut s3(PC_9); |
nsnicolassr | 0:991a0eae9d18 | 8 | |
nsnicolassr | 0:991a0eae9d18 | 9 | void servos (int nservo, float grados) |
nsnicolassr | 0:991a0eae9d18 | 10 | { |
nsnicolassr | 0:991a0eae9d18 | 11 | float porcentaje; |
nsnicolassr | 0:991a0eae9d18 | 12 | |
nsnicolassr | 0:991a0eae9d18 | 13 | porcentaje=((grados*0.000277778)+0.05); |
nsnicolassr | 0:991a0eae9d18 | 14 | |
nsnicolassr | 0:991a0eae9d18 | 15 | switch (nservo) |
nsnicolassr | 0:991a0eae9d18 | 16 | { |
nsnicolassr | 0:991a0eae9d18 | 17 | case 1: |
nsnicolassr | 0:991a0eae9d18 | 18 | s1.write(porcentaje); |
nsnicolassr | 0:991a0eae9d18 | 19 | wait(0.5); |
nsnicolassr | 0:991a0eae9d18 | 20 | break; |
nsnicolassr | 0:991a0eae9d18 | 21 | |
nsnicolassr | 0:991a0eae9d18 | 22 | case 2: |
nsnicolassr | 0:991a0eae9d18 | 23 | s2.write(porcentaje); |
nsnicolassr | 0:991a0eae9d18 | 24 | wait(0.5); |
nsnicolassr | 0:991a0eae9d18 | 25 | break; |
nsnicolassr | 0:991a0eae9d18 | 26 | |
nsnicolassr | 0:991a0eae9d18 | 27 | case 3: |
nsnicolassr | 0:991a0eae9d18 | 28 | s3.write(porcentaje); |
nsnicolassr | 0:991a0eae9d18 | 29 | wait(0.5); |
nsnicolassr | 0:991a0eae9d18 | 30 | break; |
nsnicolassr | 0:991a0eae9d18 | 31 | |
nsnicolassr | 0:991a0eae9d18 | 32 | default: |
nsnicolassr | 0:991a0eae9d18 | 33 | s1.write( 0.05); |
nsnicolassr | 0:991a0eae9d18 | 34 | s2.write( 0.05); |
nsnicolassr | 0:991a0eae9d18 | 35 | s3.write( 0.05); |
nsnicolassr | 0:991a0eae9d18 | 36 | wait(0.5); |
nsnicolassr | 0:991a0eae9d18 | 37 | break; |
nsnicolassr | 0:991a0eae9d18 | 38 | } |
nsnicolassr | 0:991a0eae9d18 | 39 | } |
nsnicolassr | 0:991a0eae9d18 | 40 | |
nsnicolassr | 0:991a0eae9d18 | 41 | |
nsnicolassr | 0:991a0eae9d18 | 42 | |
nsnicolassr | 0:991a0eae9d18 | 43 | int main() |
nsnicolassr | 0:991a0eae9d18 | 44 | { |
nsnicolassr | 0:991a0eae9d18 | 45 | pc.printf("Hello World!\n"); |
nsnicolassr | 0:991a0eae9d18 | 46 | pc.printf("Para mover el motor digite el numero del motor seguido de los angulos "); |
nsnicolassr | 0:991a0eae9d18 | 47 | |
nsnicolassr | 0:991a0eae9d18 | 48 | while(1) |
nsnicolassr | 0:991a0eae9d18 | 49 | { |
nsnicolassr | 0:991a0eae9d18 | 50 | if (pc.readable()) |
nsnicolassr | 0:991a0eae9d18 | 51 | { |
nsnicolassr | 0:991a0eae9d18 | 52 | char command= pc.getc(); |
nsnicolassr | 0:991a0eae9d18 | 53 | |
nsnicolassr | 0:991a0eae9d18 | 54 | switch(command) |
nsnicolassr | 0:991a0eae9d18 | 55 | { |
nsnicolassr | 0:991a0eae9d18 | 56 | case '1': |
nsnicolassr | 0:991a0eae9d18 | 57 | servos (1, 180); |
nsnicolassr | 0:991a0eae9d18 | 58 | wait(2); |
nsnicolassr | 0:991a0eae9d18 | 59 | break; |
nsnicolassr | 0:991a0eae9d18 | 60 | case '2': |
nsnicolassr | 0:991a0eae9d18 | 61 | servos (2, 180); |
nsnicolassr | 0:991a0eae9d18 | 62 | wait(2); |
nsnicolassr | 0:991a0eae9d18 | 63 | break; |
nsnicolassr | 0:991a0eae9d18 | 64 | case '3': |
nsnicolassr | 0:991a0eae9d18 | 65 | servos (3, 180); |
nsnicolassr | 0:991a0eae9d18 | 66 | wait(2); |
nsnicolassr | 0:991a0eae9d18 | 67 | break; |
nsnicolassr | 0:991a0eae9d18 | 68 | case '4': |
nsnicolassr | 0:991a0eae9d18 | 69 | servos (1, 0); |
nsnicolassr | 0:991a0eae9d18 | 70 | servos (2, 0); |
nsnicolassr | 0:991a0eae9d18 | 71 | servos (3, 0); |
nsnicolassr | 0:991a0eae9d18 | 72 | wait(2); |
nsnicolassr | 0:991a0eae9d18 | 73 | break; |
nsnicolassr | 0:991a0eae9d18 | 74 | } |
nsnicolassr | 0:991a0eae9d18 | 75 | } |
nsnicolassr | 0:991a0eae9d18 | 76 | } |
nsnicolassr | 0:991a0eae9d18 | 77 | } |
nsnicolassr | 0:991a0eae9d18 | 78 | |
nsnicolassr | 0:991a0eae9d18 | 79 |