![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
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@1:983d32fa739a, 2014-10-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |