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

Dependencies:   TextLCD mbed

Fork of LCD_FRDM_KL25Z by Gustavo Ramirez

Committer:
stevenjigo
Date:
Fri Oct 24 16:34:25 2014 +0000
Revision:
1:983d32fa739a
Parent:
0:a6771cc1a056
This code allows obtain the values (X,Y,Z of a accelerometer - Android) sent to a bluetooth module and in the same time allows see in a LCD 16*2 the state (on or off) of a Led of the Freescale

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tony63 0:a6771cc1a056 1 // Hello World! for the TextLCD
tony63 0:a6771cc1a056 2 // EJEMPLO CON UN LCD PARA EL MODULO FRDM-KL25Z
tony63 0:a6771cc1a056 3
tony63 0:a6771cc1a056 4 #include "mbed.h"
tony63 0:a6771cc1a056 5 #include "TextLCD.h"
tony63 0:a6771cc1a056 6
stevenjigo 1:983d32fa739a 7 //Serial pc(USBTX, USBRX); // tx, rx
stevenjigo 1:983d32fa739a 8 Serial device(D14, D15); // tx, rx
stevenjigo 1:983d32fa739a 9 PwmOut L1(LED1);
stevenjigo 1:983d32fa739a 10 PwmOut L2(LED2);
stevenjigo 1:983d32fa739a 11 PwmOut L3(LED3);
stevenjigo 1:983d32fa739a 12
stevenjigo 1:983d32fa739a 13 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
stevenjigo 1:983d32fa739a 14 float t=0.3;
stevenjigo 1:983d32fa739a 15
stevenjigo 1:983d32fa739a 16 char value;
stevenjigo 1:983d32fa739a 17 char inX1;
stevenjigo 1:983d32fa739a 18 char inX2;
stevenjigo 1:983d32fa739a 19 char inX3;
stevenjigo 1:983d32fa739a 20 char inX4;
stevenjigo 1:983d32fa739a 21 char inX5;
stevenjigo 1:983d32fa739a 22 char inY1;
stevenjigo 1:983d32fa739a 23 char inY2;
stevenjigo 1:983d32fa739a 24 char inY3;
stevenjigo 1:983d32fa739a 25 char inY4;
stevenjigo 1:983d32fa739a 26 char inY5;
stevenjigo 1:983d32fa739a 27 char inZ1;
stevenjigo 1:983d32fa739a 28 char inZ2;
stevenjigo 1:983d32fa739a 29 char inZ3;
stevenjigo 1:983d32fa739a 30 char inZ4;
stevenjigo 1:983d32fa739a 31 char inZ5;
stevenjigo 1:983d32fa739a 32
stevenjigo 1:983d32fa739a 33 float inX;
stevenjigo 1:983d32fa739a 34 float inY;
stevenjigo 1:983d32fa739a 35 float inZ;
stevenjigo 1:983d32fa739a 36 int aux;
tony63 0:a6771cc1a056 37
tony63 0:a6771cc1a056 38 int main() {
stevenjigo 1:983d32fa739a 39 lcd.locate(0,0);
stevenjigo 1:983d32fa739a 40 lcd.printf("Bienvenido");
stevenjigo 1:983d32fa739a 41 lcd.locate(0,1);
stevenjigo 1:983d32fa739a 42 lcd.printf("Acelerometro");
stevenjigo 1:983d32fa739a 43 wait(2);
stevenjigo 1:983d32fa739a 44 lcd.cls();
stevenjigo 1:983d32fa739a 45 lcd.printf("Procesadores");
stevenjigo 1:983d32fa739a 46 lcd.locate(0,1);
stevenjigo 1:983d32fa739a 47 lcd.printf("Oscar y Steven");
stevenjigo 1:983d32fa739a 48 wait(2);
stevenjigo 1:983d32fa739a 49 lcd.cls();
stevenjigo 1:983d32fa739a 50 lcd.locate(0,0);
stevenjigo 1:983d32fa739a 51 lcd.printf("X=");
stevenjigo 1:983d32fa739a 52 lcd.locate(8,0);
stevenjigo 1:983d32fa739a 53 lcd.printf("Y=");
stevenjigo 1:983d32fa739a 54 lcd.locate(0,1);
stevenjigo 1:983d32fa739a 55 lcd.printf("Z=");
stevenjigo 1:983d32fa739a 56 while(1){
stevenjigo 1:983d32fa739a 57 if(device.readable()) {
stevenjigo 1:983d32fa739a 58 value=device.getc();
stevenjigo 1:983d32fa739a 59 //pc.putc(value);
stevenjigo 1:983d32fa739a 60 if(device.getc()=='X'){
stevenjigo 1:983d32fa739a 61 fflush(stdin);
stevenjigo 1:983d32fa739a 62 inX1=device.getc();
stevenjigo 1:983d32fa739a 63 inX2=device.getc();
stevenjigo 1:983d32fa739a 64 inX3=device.getc();
stevenjigo 1:983d32fa739a 65 inX4=device.getc();
stevenjigo 1:983d32fa739a 66 inX5=device.getc();
stevenjigo 1:983d32fa739a 67 if(inX1=='X')inX1=0;
stevenjigo 1:983d32fa739a 68 if(inX2=='X')inX2=0;
stevenjigo 1:983d32fa739a 69 if(inX3=='X')inX3=0;
stevenjigo 1:983d32fa739a 70 if(inX4=='X')inX4=0;
stevenjigo 1:983d32fa739a 71 if(inX5=='X')inX5=0;
stevenjigo 1:983d32fa739a 72 lcd.locate(0,0);
stevenjigo 1:983d32fa739a 73 lcd.printf("X=");
stevenjigo 1:983d32fa739a 74 lcd.locate(2,0);
stevenjigo 1:983d32fa739a 75 lcd.printf("%c%c%c%c%c",inX1,inX2,inX3,inX4,inX5);
stevenjigo 1:983d32fa739a 76 }
stevenjigo 1:983d32fa739a 77 if(device.getc()=='Y'){
stevenjigo 1:983d32fa739a 78 fflush(stdin);
stevenjigo 1:983d32fa739a 79 inY1=device.getc();
stevenjigo 1:983d32fa739a 80 inY2=device.getc();
stevenjigo 1:983d32fa739a 81 inY3=device.getc();
stevenjigo 1:983d32fa739a 82 inY4=device.getc();
stevenjigo 1:983d32fa739a 83 inY5=device.getc();
stevenjigo 1:983d32fa739a 84 if(inY1=='Y')inY1=0;
stevenjigo 1:983d32fa739a 85 if(inY2=='Y')inY2=0;
stevenjigo 1:983d32fa739a 86 if(inY3=='Y')inY3=0;
stevenjigo 1:983d32fa739a 87 if(inY4=='Y')inY4=0;
stevenjigo 1:983d32fa739a 88 if(inY5=='Y')inY5=0;
stevenjigo 1:983d32fa739a 89 lcd.locate(8,0);
stevenjigo 1:983d32fa739a 90 lcd.printf("Y=");
stevenjigo 1:983d32fa739a 91 lcd.locate(10,0);
stevenjigo 1:983d32fa739a 92 lcd.printf("%c%c%c%c%c",inY1,inY2,inY3,inY4,inY5);
stevenjigo 1:983d32fa739a 93 }
stevenjigo 1:983d32fa739a 94 if(device.getc()=='Z'){
stevenjigo 1:983d32fa739a 95 fflush(stdin);
stevenjigo 1:983d32fa739a 96 inZ1=device.getc();
stevenjigo 1:983d32fa739a 97 inZ2=device.getc();
stevenjigo 1:983d32fa739a 98 inZ3=device.getc();
stevenjigo 1:983d32fa739a 99 inZ4=device.getc();
stevenjigo 1:983d32fa739a 100 inZ5=device.getc();
stevenjigo 1:983d32fa739a 101 if(inZ1=='Z')inZ1=0;
stevenjigo 1:983d32fa739a 102 if(inZ2=='Z')inZ2=0;
stevenjigo 1:983d32fa739a 103 if(inZ3=='Z')inZ3=0;
stevenjigo 1:983d32fa739a 104 if(inZ4=='Z')inZ4=0;
stevenjigo 1:983d32fa739a 105 if(inZ5=='Z')inZ5=0;
stevenjigo 1:983d32fa739a 106 lcd.locate(0,1);
stevenjigo 1:983d32fa739a 107 lcd.printf("Z=");
stevenjigo 1:983d32fa739a 108 lcd.locate(2,1);
stevenjigo 1:983d32fa739a 109 lcd.printf("%c%c%c%c%c",inZ1,inZ2,inZ3,inZ4,inZ5);
stevenjigo 1:983d32fa739a 110 }
stevenjigo 1:983d32fa739a 111 }
stevenjigo 1:983d32fa739a 112
stevenjigo 1:983d32fa739a 113 // Acondicionamiento de la señal en X del acelerometro
stevenjigo 1:983d32fa739a 114
stevenjigo 1:983d32fa739a 115 if((inX1=='-')&&(inX3=='.')){
stevenjigo 1:983d32fa739a 116 inX=((inX2-48)*100+(inX4-48)*10+(inX5-48)*1)*(-1);
stevenjigo 1:983d32fa739a 117 }
stevenjigo 1:983d32fa739a 118 if(inX2=='.'){
stevenjigo 1:983d32fa739a 119 inX=(inX1-48)*100+(inX3-48)*10+(inX4-48)*1+(inX5-48)*0.1;
stevenjigo 1:983d32fa739a 120 }
stevenjigo 1:983d32fa739a 121 if((inX3=='.')&&(inX1=='1')){
stevenjigo 1:983d32fa739a 122 inX=(inX1-48)*1000+(inX2-48)*100+(inX4-48)*10+(inX5-48)*1;
stevenjigo 1:983d32fa739a 123 }
stevenjigo 1:983d32fa739a 124 if((inX4=='.')&&(inX1=='-')){
stevenjigo 1:983d32fa739a 125 inX=((inX2-48)*1000+(inX3-48)*100+(inX5-48)*10)*(-1);
stevenjigo 1:983d32fa739a 126 }
stevenjigo 1:983d32fa739a 127 inX=(inX+1000)/2000;
stevenjigo 1:983d32fa739a 128 L1=inX;
stevenjigo 1:983d32fa739a 129
stevenjigo 1:983d32fa739a 130 // Acondicionamiento de la señal en Y del acelerometro
stevenjigo 1:983d32fa739a 131
stevenjigo 1:983d32fa739a 132 if((inY1=='-')&&(inY3=='.')){
stevenjigo 1:983d32fa739a 133 inY=(inY2-48)*100+(inY4-48)*10+(inY5-48)*1;
stevenjigo 1:983d32fa739a 134 }
stevenjigo 1:983d32fa739a 135 if(inY2=='.'){
stevenjigo 1:983d32fa739a 136 inY=(inY1-48)*100+(inY3-48)*10+(inY4-48)*1+(inY5-48)*0.1;
stevenjigo 1:983d32fa739a 137 }
stevenjigo 1:983d32fa739a 138 if((inY3=='.')&&(inY1=='1')){
stevenjigo 1:983d32fa739a 139 inY=(inY1-48)*1000+(inY2-48)*100+(inY4-48)*10+(inY5-48)*1;
stevenjigo 1:983d32fa739a 140 }
stevenjigo 1:983d32fa739a 141 if((inY4=='.')&&(inY1=='-')){
stevenjigo 1:983d32fa739a 142 inY=(inY2-48)*1000+(inY3-48)*100+(inY5-48)*10;
stevenjigo 1:983d32fa739a 143 }
stevenjigo 1:983d32fa739a 144 inY=(inY+1000)/2000;
stevenjigo 1:983d32fa739a 145 L2=inY;
stevenjigo 1:983d32fa739a 146
stevenjigo 1:983d32fa739a 147 // Acondicionamiento de la señal en Z del acelerometro
stevenjigo 1:983d32fa739a 148
stevenjigo 1:983d32fa739a 149 if((inZ1=='-')&&(inZ3=='.')){
stevenjigo 1:983d32fa739a 150 inZ=((inZ2-48)*100+(inZ4-48)*10+(inZ5-48)*1)*(-1);
stevenjigo 1:983d32fa739a 151 }
stevenjigo 1:983d32fa739a 152 if(inZ2=='.'){
stevenjigo 1:983d32fa739a 153 inZ=(inZ1-48)*100+(inZ3-48)*10+(inZ4-48)*1+(inZ5-48)*0.1;
stevenjigo 1:983d32fa739a 154 }
stevenjigo 1:983d32fa739a 155 if((inZ3=='.')&&(inZ1=='1')){
stevenjigo 1:983d32fa739a 156 inZ=(inZ1-48)*1000+(inZ2-48)*100+(inZ4-48)*10+(inZ5-48)*1;
stevenjigo 1:983d32fa739a 157 }
stevenjigo 1:983d32fa739a 158 if((inZ4=='.')&&(inZ1=='-')){
stevenjigo 1:983d32fa739a 159 inZ=((inZ2-48)*1000+(inZ3-48)*100+(inZ5-48)*10)*(-1);
stevenjigo 1:983d32fa739a 160 }
stevenjigo 1:983d32fa739a 161 inZ=(inZ+1000)/2000;
stevenjigo 1:983d32fa739a 162 L3=inZ;
stevenjigo 1:983d32fa739a 163
stevenjigo 1:983d32fa739a 164 }
tony63 0:a6771cc1a056 165 }