Juan Moreno
/
HC05Module
Modulo Bluetooh controla PWM de un LED
main.cpp@1:ccce94774ade, 2019-07-11 (annotated)
- Committer:
- junmorenodi
- Date:
- Thu Jul 11 13:31:33 2019 +0000
- Revision:
- 1:ccce94774ade
- Parent:
- 0:9f953d3871c9
HC05 Corregido;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
junmorenodi | 0:9f953d3871c9 | 1 | #include "mbed.h" |
junmorenodi | 1:ccce94774ade | 2 | #include "vector" |
junmorenodi | 1:ccce94774ade | 3 | #include "string" |
junmorenodi | 1:ccce94774ade | 4 | #include "list" |
junmorenodi | 1:ccce94774ade | 5 | #include "math.h" |
junmorenodi | 1:ccce94774ade | 6 | |
junmorenodi | 0:9f953d3871c9 | 7 | Serial pc(USBTX, USBRX); |
junmorenodi | 0:9f953d3871c9 | 8 | Serial blue(PG_14,PG_9); |
junmorenodi | 0:9f953d3871c9 | 9 | DigitalOut led2(LED2); |
junmorenodi | 0:9f953d3871c9 | 10 | DigitalOut led3(LED3); |
junmorenodi | 1:ccce94774ade | 11 | PwmOut ledPWM(D13); |
junmorenodi | 1:ccce94774ade | 12 | float power(float base,int potencia); |
junmorenodi | 0:9f953d3871c9 | 13 | |
junmorenodi | 1:ccce94774ade | 14 | using namespace std; |
junmorenodi | 0:9f953d3871c9 | 15 | |
junmorenodi | 1:ccce94774ade | 16 | float power(float base,int potencia){ |
junmorenodi | 1:ccce94774ade | 17 | float resultado=0; |
junmorenodi | 1:ccce94774ade | 18 | if(potencia>1){ |
junmorenodi | 1:ccce94774ade | 19 | for(int i=1;i<potencia;i++){ |
junmorenodi | 1:ccce94774ade | 20 | resultado=resultado+base*base; |
junmorenodi | 1:ccce94774ade | 21 | } |
junmorenodi | 1:ccce94774ade | 22 | }else if(potencia==1){ |
junmorenodi | 1:ccce94774ade | 23 | resultado=base; |
junmorenodi | 1:ccce94774ade | 24 | }else{ |
junmorenodi | 1:ccce94774ade | 25 | resultado=1; |
junmorenodi | 1:ccce94774ade | 26 | } |
junmorenodi | 1:ccce94774ade | 27 | return resultado; |
junmorenodi | 1:ccce94774ade | 28 | } |
junmorenodi | 1:ccce94774ade | 29 | |
junmorenodi | 0:9f953d3871c9 | 30 | int main() { |
junmorenodi | 0:9f953d3871c9 | 31 | blue.baud(9600); |
junmorenodi | 0:9f953d3871c9 | 32 | pc.baud(9600); |
junmorenodi | 0:9f953d3871c9 | 33 | pc.printf("Start \r\n"); |
junmorenodi | 1:ccce94774ade | 34 | int i=0,cont=0; |
junmorenodi | 0:9f953d3871c9 | 35 | float data_sent=0; |
junmorenodi | 0:9f953d3871c9 | 36 | float unid=0; |
junmorenodi | 0:9f953d3871c9 | 37 | float dec=0; |
junmorenodi | 0:9f953d3871c9 | 38 | float cent=0; |
junmorenodi | 0:9f953d3871c9 | 39 | float new_data=0; |
junmorenodi | 0:9f953d3871c9 | 40 | float period=0.001; |
junmorenodi | 0:9f953d3871c9 | 41 | float duty=1.0f; |
junmorenodi | 0:9f953d3871c9 | 42 | |
junmorenodi | 0:9f953d3871c9 | 43 | /* |
junmorenodi | 0:9f953d3871c9 | 44 | while(1) { |
junmorenodi | 0:9f953d3871c9 | 45 | |
junmorenodi | 0:9f953d3871c9 | 46 | if(blue.readable()) |
junmorenodi | 0:9f953d3871c9 | 47 | { |
junmorenodi | 0:9f953d3871c9 | 48 | data_sent=blue.getc(); |
junmorenodi | 0:9f953d3871c9 | 49 | //pc.putc(blue.getc()); |
junmorenodi | 0:9f953d3871c9 | 50 | pc.putc(data_sent); |
junmorenodi | 0:9f953d3871c9 | 51 | led1=!led1; |
junmorenodi | 0:9f953d3871c9 | 52 | } |
junmorenodi | 0:9f953d3871c9 | 53 | if(pc.readable()) |
junmorenodi | 0:9f953d3871c9 | 54 | { data_sent=pc.getc(); |
junmorenodi | 0:9f953d3871c9 | 55 | //blue.putc(pc.getc()); |
junmorenodi | 0:9f953d3871c9 | 56 | blue.putc(data_sent+1); |
junmorenodi | 0:9f953d3871c9 | 57 | led2=!led2; |
junmorenodi | 0:9f953d3871c9 | 58 | } |
junmorenodi | 0:9f953d3871c9 | 59 | |
junmorenodi | 0:9f953d3871c9 | 60 | |
junmorenodi | 0:9f953d3871c9 | 61 | }*/ |
junmorenodi | 0:9f953d3871c9 | 62 | while(1){ |
junmorenodi | 1:ccce94774ade | 63 | unid=0; |
junmorenodi | 1:ccce94774ade | 64 | dec=0; |
junmorenodi | 1:ccce94774ade | 65 | cent=0; |
junmorenodi | 1:ccce94774ade | 66 | for ( i=0; i<3;i++){ |
junmorenodi | 1:ccce94774ade | 67 | data_sent=blue.getc(); |
junmorenodi | 1:ccce94774ade | 68 | if(data_sent==97){ |
junmorenodi | 1:ccce94774ade | 69 | break; |
junmorenodi | 1:ccce94774ade | 70 | }else{ |
junmorenodi | 1:ccce94774ade | 71 | data_sent=data_sent-'0'; |
junmorenodi | 1:ccce94774ade | 72 | if (i==0){ |
junmorenodi | 1:ccce94774ade | 73 | cent=data_sent; |
junmorenodi | 1:ccce94774ade | 74 | } |
junmorenodi | 1:ccce94774ade | 75 | if (i==1){ |
junmorenodi | 1:ccce94774ade | 76 | dec=data_sent; |
junmorenodi | 1:ccce94774ade | 77 | } |
junmorenodi | 1:ccce94774ade | 78 | if (i==2){ |
junmorenodi | 1:ccce94774ade | 79 | unid=data_sent; |
junmorenodi | 1:ccce94774ade | 80 | } |
junmorenodi | 1:ccce94774ade | 81 | } |
junmorenodi | 1:ccce94774ade | 82 | cont=i; |
junmorenodi | 0:9f953d3871c9 | 83 | } |
junmorenodi | 1:ccce94774ade | 84 | wait(1); |
junmorenodi | 1:ccce94774ade | 85 | cent=cent*power(10,cont); |
junmorenodi | 1:ccce94774ade | 86 | dec=dec*power(10,cont-1); |
junmorenodi | 1:ccce94774ade | 87 | unid=unid*power(10,cont-2); |
junmorenodi | 1:ccce94774ade | 88 | pc.printf("Cont %.1i \r\n", cont); |
junmorenodi | 1:ccce94774ade | 89 | pc.printf("Centenas %.1f \r\n", cent); |
junmorenodi | 1:ccce94774ade | 90 | pc.printf("Decenas %.1f \r\n", dec); |
junmorenodi | 1:ccce94774ade | 91 | pc.printf("Unidades %.1f \r\n", unid); |
junmorenodi | 1:ccce94774ade | 92 | new_data=unid+dec+cent; |
junmorenodi | 0:9f953d3871c9 | 93 | |
junmorenodi | 1:ccce94774ade | 94 | if (new_data==100.0){ |
junmorenodi | 1:ccce94774ade | 95 | led2=1; |
junmorenodi | 1:ccce94774ade | 96 | led3=0; |
junmorenodi | 0:9f953d3871c9 | 97 | } |
junmorenodi | 1:ccce94774ade | 98 | else{ |
junmorenodi | 1:ccce94774ade | 99 | led3=1; |
junmorenodi | 1:ccce94774ade | 100 | led2=0; |
junmorenodi | 0:9f953d3871c9 | 101 | } |
junmorenodi | 1:ccce94774ade | 102 | duty=new_data/100; |
junmorenodi | 1:ccce94774ade | 103 | ledPWM.period(period); |
junmorenodi | 1:ccce94774ade | 104 | ledPWM.write(duty); |
junmorenodi | 0:9f953d3871c9 | 105 | pc.printf("Valor Data_Sent: %.1f \r\n", new_data); |
junmorenodi | 0:9f953d3871c9 | 106 | pc.printf("PWM Duty Cycle: %.2f %\r\n", duty*100); |
junmorenodi | 1:ccce94774ade | 107 | } |
junmorenodi | 1:ccce94774ade | 108 | } |