This code allows obtain the values (X,Y,Z accelerometer - Android) sent to a bluetooth module and in the same time allows see in a LCD 16*2 the state (X,Y,Z) of a the phone
Fork of LCD_FRDM_KL25Z by
main.cpp
- Committer:
- stevenjigo
- Date:
- 2014-10-24
- Revision:
- 1:983d32fa739a
- Parent:
- 0:a6771cc1a056
File content as of revision 1:983d32fa739a:
// Hello World! for the TextLCD // EJEMPLO CON UN LCD PARA EL MODULO FRDM-KL25Z #include "mbed.h" #include "TextLCD.h" //Serial pc(USBTX, USBRX); // tx, rx Serial device(D14, D15); // tx, rx PwmOut L1(LED1); PwmOut L2(LED2); PwmOut L3(LED3); TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 float t=0.3; char value; char inX1; char inX2; char inX3; char inX4; char inX5; char inY1; char inY2; char inY3; char inY4; char inY5; char inZ1; char inZ2; char inZ3; char inZ4; char inZ5; float inX; float inY; float inZ; int aux; int main() { lcd.locate(0,0); lcd.printf("Bienvenido"); lcd.locate(0,1); lcd.printf("Acelerometro"); wait(2); lcd.cls(); lcd.printf("Procesadores"); lcd.locate(0,1); lcd.printf("Oscar y Steven"); wait(2); lcd.cls(); lcd.locate(0,0); lcd.printf("X="); lcd.locate(8,0); lcd.printf("Y="); lcd.locate(0,1); lcd.printf("Z="); while(1){ if(device.readable()) { value=device.getc(); //pc.putc(value); if(device.getc()=='X'){ fflush(stdin); inX1=device.getc(); inX2=device.getc(); inX3=device.getc(); inX4=device.getc(); inX5=device.getc(); if(inX1=='X')inX1=0; if(inX2=='X')inX2=0; if(inX3=='X')inX3=0; if(inX4=='X')inX4=0; if(inX5=='X')inX5=0; lcd.locate(0,0); lcd.printf("X="); lcd.locate(2,0); lcd.printf("%c%c%c%c%c",inX1,inX2,inX3,inX4,inX5); } if(device.getc()=='Y'){ fflush(stdin); inY1=device.getc(); inY2=device.getc(); inY3=device.getc(); inY4=device.getc(); inY5=device.getc(); if(inY1=='Y')inY1=0; if(inY2=='Y')inY2=0; if(inY3=='Y')inY3=0; if(inY4=='Y')inY4=0; if(inY5=='Y')inY5=0; lcd.locate(8,0); lcd.printf("Y="); lcd.locate(10,0); lcd.printf("%c%c%c%c%c",inY1,inY2,inY3,inY4,inY5); } if(device.getc()=='Z'){ fflush(stdin); inZ1=device.getc(); inZ2=device.getc(); inZ3=device.getc(); inZ4=device.getc(); inZ5=device.getc(); if(inZ1=='Z')inZ1=0; if(inZ2=='Z')inZ2=0; if(inZ3=='Z')inZ3=0; if(inZ4=='Z')inZ4=0; if(inZ5=='Z')inZ5=0; lcd.locate(0,1); lcd.printf("Z="); lcd.locate(2,1); lcd.printf("%c%c%c%c%c",inZ1,inZ2,inZ3,inZ4,inZ5); } } // Acondicionamiento de la señal en X del acelerometro if((inX1=='-')&&(inX3=='.')){ inX=((inX2-48)*100+(inX4-48)*10+(inX5-48)*1)*(-1); } if(inX2=='.'){ inX=(inX1-48)*100+(inX3-48)*10+(inX4-48)*1+(inX5-48)*0.1; } if((inX3=='.')&&(inX1=='1')){ inX=(inX1-48)*1000+(inX2-48)*100+(inX4-48)*10+(inX5-48)*1; } if((inX4=='.')&&(inX1=='-')){ inX=((inX2-48)*1000+(inX3-48)*100+(inX5-48)*10)*(-1); } inX=(inX+1000)/2000; L1=inX; // Acondicionamiento de la señal en Y del acelerometro if((inY1=='-')&&(inY3=='.')){ inY=(inY2-48)*100+(inY4-48)*10+(inY5-48)*1; } if(inY2=='.'){ inY=(inY1-48)*100+(inY3-48)*10+(inY4-48)*1+(inY5-48)*0.1; } if((inY3=='.')&&(inY1=='1')){ inY=(inY1-48)*1000+(inY2-48)*100+(inY4-48)*10+(inY5-48)*1; } if((inY4=='.')&&(inY1=='-')){ inY=(inY2-48)*1000+(inY3-48)*100+(inY5-48)*10; } inY=(inY+1000)/2000; L2=inY; // Acondicionamiento de la señal en Z del acelerometro if((inZ1=='-')&&(inZ3=='.')){ inZ=((inZ2-48)*100+(inZ4-48)*10+(inZ5-48)*1)*(-1); } if(inZ2=='.'){ inZ=(inZ1-48)*100+(inZ3-48)*10+(inZ4-48)*1+(inZ5-48)*0.1; } if((inZ3=='.')&&(inZ1=='1')){ inZ=(inZ1-48)*1000+(inZ2-48)*100+(inZ4-48)*10+(inZ5-48)*1; } if((inZ4=='.')&&(inZ1=='-')){ inZ=((inZ2-48)*1000+(inZ3-48)*100+(inZ5-48)*10)*(-1); } inZ=(inZ+1000)/2000; L3=inZ; } }