Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@25:8aaf4f9111fe, 2020-07-20 (annotated)
- Committer:
- dfmolanon
- Date:
- Mon Jul 20 20:32:35 2020 +0000
- Revision:
- 25:8aaf4f9111fe
- Parent:
- 24:7f14b70fc9ef
lab 2.1
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| dan | 0:7dec7e9ac085 | 1 | #include "mbed.h" |
| dfmolanon | 25:8aaf4f9111fe | 2 | #include "stdlib.h" |
| dfmolanon | 25:8aaf4f9111fe | 3 | #define tam_men 4 |
| dfmolanon | 25:8aaf4f9111fe | 4 | Ticker t_motor; |
| dfmolanon | 25:8aaf4f9111fe | 5 | //Serial |
| dfmolanon | 25:8aaf4f9111fe | 6 | Serial pc(USBTX, USBRX); |
| dfmolanon | 25:8aaf4f9111fe | 7 | //puertos |
| dfmolanon | 25:8aaf4f9111fe | 8 | BusOut bobinas(D7, D6,D5,D4); |
| dfmolanon | 25:8aaf4f9111fe | 9 | DigitalOut a(D8); |
| dfmolanon | 25:8aaf4f9111fe | 10 | DigitalOut b(D9); |
| dfmolanon | 25:8aaf4f9111fe | 11 | PwmOut pwm(PTE29); |
| dfmolanon | 25:8aaf4f9111fe | 12 | //Variables |
| dfmolanon | 25:8aaf4f9111fe | 13 | int ii=0; |
| dfmolanon | 25:8aaf4f9111fe | 14 | float motor; |
| dfmolanon | 25:8aaf4f9111fe | 15 | float duty_led; |
| dfmolanon | 25:8aaf4f9111fe | 16 | float motor_dc; |
| dfmolanon | 25:8aaf4f9111fe | 17 | float servomotor; |
| dfmolanon | 25:8aaf4f9111fe | 18 | float paso; |
| dfmolanon | 25:8aaf4f9111fe | 19 | char men[tam_men]; |
| dfmolanon | 25:8aaf4f9111fe | 20 | char cadena[tam_men-1]; |
| dfmolanon | 25:8aaf4f9111fe | 21 | char c; |
| dfmolanon | 25:8aaf4f9111fe | 22 | int i=0, x=0; |
| dfmolanon | 25:8aaf4f9111fe | 23 | int bandera; |
| dfmolanon | 25:8aaf4f9111fe | 24 | //tabla de la secuencia de pasos |
| dfmolanon | 25:8aaf4f9111fe | 25 | //char const sec[8]={0x1, 0x3, 0x2, 0x6, 0x4, 0xc, 0x8, 0x9}; |
| dfmolanon | 25:8aaf4f9111fe | 26 | char const sec[4]={0x1, 0x2, 0x4, 0x9}; |
| dfmolanon | 25:8aaf4f9111fe | 27 | //metodos |
| dfmolanon | 25:8aaf4f9111fe | 28 | void recibir(); |
| dfmolanon | 25:8aaf4f9111fe | 29 | void rc_isr(); |
| dfmolanon | 25:8aaf4f9111fe | 30 | void mover_motor(); |
| dan | 0:7dec7e9ac085 | 31 | |
| dfmolanon | 25:8aaf4f9111fe | 32 | void rc_isr() |
| dfmolanon | 25:8aaf4f9111fe | 33 | { |
| dfmolanon | 25:8aaf4f9111fe | 34 | pc.attach(NULL, Serial::RxIrq); |
| dfmolanon | 25:8aaf4f9111fe | 35 | recibir(); |
| dfmolanon | 25:8aaf4f9111fe | 36 | |
| dfmolanon | 25:8aaf4f9111fe | 37 | } |
| dfmolanon | 25:8aaf4f9111fe | 38 | void recibir() |
| dfmolanon | 25:8aaf4f9111fe | 39 | { |
| dfmolanon | 25:8aaf4f9111fe | 40 | |
| dfmolanon | 25:8aaf4f9111fe | 41 | c = pc.getc(); // Read hyperterminal |
| dfmolanon | 25:8aaf4f9111fe | 42 | // pc.putc(c); |
| dfmolanon | 25:8aaf4f9111fe | 43 | if(c=='a'){bandera=1;} |
| dfmolanon | 25:8aaf4f9111fe | 44 | else if(c=='b'){bandera=2;} |
| dfmolanon | 25:8aaf4f9111fe | 45 | else if(c=='c'){bandera=3;} |
| dfmolanon | 25:8aaf4f9111fe | 46 | else if ((c != '\r') & (i < tam_men)) |
| dfmolanon | 25:8aaf4f9111fe | 47 | { |
| dfmolanon | 25:8aaf4f9111fe | 48 | if ( (c >= '0') & (c <= '9') ) |
| dfmolanon | 25:8aaf4f9111fe | 49 | { |
| dfmolanon | 25:8aaf4f9111fe | 50 | men[i] = c; |
| dfmolanon | 25:8aaf4f9111fe | 51 | i++; |
| dfmolanon | 25:8aaf4f9111fe | 52 | } |
| dfmolanon | 25:8aaf4f9111fe | 53 | else |
| dfmolanon | 25:8aaf4f9111fe | 54 | { |
| dfmolanon | 25:8aaf4f9111fe | 55 | if(bandera==1){ |
| dfmolanon | 25:8aaf4f9111fe | 56 | motor_dc = atof(men); |
| dfmolanon | 25:8aaf4f9111fe | 57 | a=1; |
| dfmolanon | 25:8aaf4f9111fe | 58 | b=0; |
| dfmolanon | 25:8aaf4f9111fe | 59 | motor=motor_dc*0.01; |
| dfmolanon | 25:8aaf4f9111fe | 60 | pwm.write(motor); |
| dfmolanon | 25:8aaf4f9111fe | 61 | pc.printf("motor dc %d \n\r",motor_dc); |
| dfmolanon | 25:8aaf4f9111fe | 62 | } |
| dfmolanon | 25:8aaf4f9111fe | 63 | else if(bandera==2){ |
| dfmolanon | 25:8aaf4f9111fe | 64 | servomotor = atof(men); |
| dfmolanon | 25:8aaf4f9111fe | 65 | pc.printf("servo %d \n\r",servomotor); |
| dfmolanon | 25:8aaf4f9111fe | 66 | } |
| dfmolanon | 25:8aaf4f9111fe | 67 | else if(bandera==3){ |
| dfmolanon | 25:8aaf4f9111fe | 68 | paso = atof(men); |
| dfmolanon | 25:8aaf4f9111fe | 69 | pc.printf("paso %d \n\r",paso); |
| dfmolanon | 25:8aaf4f9111fe | 70 | } |
| dfmolanon | 25:8aaf4f9111fe | 71 | for (i=0; i< tam_men; i++) {men[i] = '\0';} |
| dfmolanon | 25:8aaf4f9111fe | 72 | i=0; |
| dfmolanon | 25:8aaf4f9111fe | 73 | } |
| dfmolanon | 25:8aaf4f9111fe | 74 | } |
| dfmolanon | 25:8aaf4f9111fe | 75 | pc.attach(&rc_isr, Serial::RxIrq); |
| dfmolanon | 25:8aaf4f9111fe | 76 | } |
| dfmolanon | 25:8aaf4f9111fe | 77 | /* |
| dfmolanon | 25:8aaf4f9111fe | 78 | void motores() { |
| dfmolanon | 25:8aaf4f9111fe | 79 | #include "mbed.h" |
| dan | 0:7dec7e9ac085 | 80 | |
| dfmolanon | 25:8aaf4f9111fe | 81 | //prototipos |
| dfmolanon | 25:8aaf4f9111fe | 82 | void mover_motor() |
| dfmolanon | 25:8aaf4f9111fe | 83 | { |
| dfmolanon | 25:8aaf4f9111fe | 84 | bobinas= sec[i]; |
| dfmolanon | 25:8aaf4f9111fe | 85 | i++; |
| dfmolanon | 25:8aaf4f9111fe | 86 | if(i==4) i=0; |
| dfmolanon | 25:8aaf4f9111fe | 87 | } |
| dfmolanon | 25:8aaf4f9111fe | 88 | int main (){ |
| dfmolanon | 25:8aaf4f9111fe | 89 | a=1; |
| dfmolanon | 25:8aaf4f9111fe | 90 | b=0; |
| dfmolanon | 25:8aaf4f9111fe | 91 | pwm.write(0.2f); |
| dfmolanon | 25:8aaf4f9111fe | 92 | t_motor.attach(&mover_motor, 0.005); |
| dfmolanon | 25:8aaf4f9111fe | 93 | while(true){ |
| dfmolanon | 25:8aaf4f9111fe | 94 | |
| dfmolanon | 25:8aaf4f9111fe | 95 | } |
| dfmolanon | 25:8aaf4f9111fe | 96 | } |
| dfmolanon | 25:8aaf4f9111fe | 97 | |
| dfmolanon | 25:8aaf4f9111fe | 98 | } |
| dfmolanon | 25:8aaf4f9111fe | 99 | |
| dfmolanon | 25:8aaf4f9111fe | 100 | */ |
| dfmolanon | 25:8aaf4f9111fe | 101 | int main() |
| dfmolanon | 25:8aaf4f9111fe | 102 | { |
| dfmolanon | 25:8aaf4f9111fe | 103 | pc.attach(&rc_isr, Serial::RxIrq); |
| dfmolanon | 25:8aaf4f9111fe | 104 | pc.printf("Comienzo...\n\r"); |
| dfmolanon | 25:8aaf4f9111fe | 105 | //led.period(8.33333e-3); |
| dan | 0:7dec7e9ac085 | 106 | while(1) { |
| dfmolanon | 25:8aaf4f9111fe | 107 | pc.printf("Esperando...\n\r"); |
| dfmolanon | 25:8aaf4f9111fe | 108 | wait(2); |
| stevep | 4:81cea7a352b0 | 109 | } |
| dfmolanon | 25:8aaf4f9111fe | 110 | } |