![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Código de voltimetro para utilizarlo en App Inventor
main.cpp@1:309a84a464bc, 2015-11-23 (annotated)
- Committer:
- Meli
- Date:
- Mon Nov 23 07:23:29 2015 +0000
- Revision:
- 1:309a84a464bc
- Parent:
- 0:60ba57e87354
C?digo de voltimetro para utilizarlo en App Inventor;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Meli | 0:60ba57e87354 | 1 | #include "mbed.h" |
Meli | 0:60ba57e87354 | 2 | #include <stdio.h> |
Meli | 0:60ba57e87354 | 3 | |
Meli | 0:60ba57e87354 | 4 | PwmOut ledazul (LED2); //Salida Pwm |
Meli | 0:60ba57e87354 | 5 | AnalogIn input(PTC2); //Entrada potenciometro |
Meli | 0:60ba57e87354 | 6 | Serial GSM(PTE0,PTE1); //puertos del FRDM para el modem |
Meli | 0:60ba57e87354 | 7 | Serial pc(USBTX,USBRX); //Comunicacion PC |
Meli | 0:60ba57e87354 | 8 | |
Meli | 0:60ba57e87354 | 9 | int med,num,i,j,k,C,A; |
Meli | 0:60ba57e87354 | 10 | float B=0,ciclo=0,periodo=0; |
Meli | 0:60ba57e87354 | 11 | |
Meli | 0:60ba57e87354 | 12 | int main(void) |
Meli | 0:60ba57e87354 | 13 | { |
Meli | 0:60ba57e87354 | 14 | |
Meli | 0:60ba57e87354 | 15 | GSM.baud(9600); // asigno baudios y configuro puerto serie de la usart |
Meli | 0:60ba57e87354 | 16 | GSM.format(8,Serial::None,1); |
Meli | 0:60ba57e87354 | 17 | |
Meli | 0:60ba57e87354 | 18 | while(1){ |
Meli | 0:60ba57e87354 | 19 | //leer el puerto analógico |
Meli | 0:60ba57e87354 | 20 | wait(0.5); |
Meli | 0:60ba57e87354 | 21 | num = input*1000; //se escala el numero |
Meli | 0:60ba57e87354 | 22 | //pc.printf("num=%d\n", num); |
Meli | 0:60ba57e87354 | 23 | |
Meli | 0:60ba57e87354 | 24 | if(num<256){ //debo generar dos casos a APP inventor solo me recibe hex asi: 0xhhhh (4 cifras) |
Meli | 0:60ba57e87354 | 25 | GSM.putc(0); //si el número es hasta 255 se le ponen dos ceros adelante a la secuencia de bits |
Meli | 0:60ba57e87354 | 26 | GSM.putc(i); //luego la cifra menos significativa |
Meli | 0:60ba57e87354 | 27 | } |
Meli | 0:60ba57e87354 | 28 | if(num>255){ //pero si es mayor a 255 las cifras deben ser convertidas a un hex de dos bytes de la siguiente forma |
Meli | 0:60ba57e87354 | 29 | j=num/256; //calculo la cifra mas significativa |
Meli | 0:60ba57e87354 | 30 | k=num-j*256; //calculo la cifra menos significativa |
Meli | 0:60ba57e87354 | 31 | GSM.putc(j); //las envío a la usart para que se las ponga al modulo bluetooth y la lleve al android |
Meli | 0:60ba57e87354 | 32 | GSM.putc(k); //mas significativa primero, menos después si no no funciona!!! y con la orden PUTC solo asi le envia binarios |
Meli | 0:60ba57e87354 | 33 | |
Meli | 0:60ba57e87354 | 34 | } |
Meli | 0:60ba57e87354 | 35 | //capturo los datos del cel |
Meli | 0:60ba57e87354 | 36 | if (GSM.readable()) |
Meli | 0:60ba57e87354 | 37 | { |
Meli | 0:60ba57e87354 | 38 | |
Meli | 0:60ba57e87354 | 39 | A = GSM.getc(); //Leo el valor del slider; |
Meli | 0:60ba57e87354 | 40 | pc.printf("%i\n\r", A); |
Meli | 0:60ba57e87354 | 41 | |
Meli | 1:309a84a464bc | 42 | if (A <101) { //if para el ciclo de trabajo. Se tiene en cuenta solo hasta 100 puesto que en el App Inventor, el slider del ciclo de trabajo va de 0 a 100 |
Meli | 0:60ba57e87354 | 43 | ciclo=A/100.0; //calculo el ciclo de trabajo |
Meli | 1:309a84a464bc | 44 | ledazul.write(ciclo); //ingreso a la salida el ciclo del trabajo |
Meli | 0:60ba57e87354 | 45 | pc.printf("Ciclo de Dureza: %f\n\r", ciclo); |
Meli | 0:60ba57e87354 | 46 | |
Meli | 0:60ba57e87354 | 47 | } |
Meli | 0:60ba57e87354 | 48 | |
Meli | 1:309a84a464bc | 49 | if (A >101) { //if para el periodo. Es mayor a 100 porque en App Inventor el slider del periodo va de 100 a 200. |
Meli | 1:309a84a464bc | 50 | B=A; //Se asigna otra variable para no entrar en conflicto con la anterior |
Meli | 1:309a84a464bc | 51 | periodo=((B-100.0))/100; //Calculo el periodo |
Meli | 1:309a84a464bc | 52 | ledazul.period (periodo); //ingreso a la salida el periodo |
Meli | 0:60ba57e87354 | 53 | |
Meli | 0:60ba57e87354 | 54 | pc.printf("Periodo: %f\n\r", periodo); |
Meli | 0:60ba57e87354 | 55 | |
Meli | 0:60ba57e87354 | 56 | } |
Meli | 0:60ba57e87354 | 57 | |
Meli | 0:60ba57e87354 | 58 | } |
Meli | 0:60ba57e87354 | 59 | } |
Meli | 0:60ba57e87354 | 60 | } |