acelerometro de auteco

Dependencies:   MMA8451Q TextLCD mbed

Fork of Tarea8accelerometro by Alejandro Marin

Committer:
pagomezba
Date:
Wed May 07 22:51:30 2014 +0000
Revision:
9:07e404aea94e
Parent:
8:a2b340994747
esto es paraelproyecto auteco

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chris 2:41db78380a6e 1 #include "mbed.h"
chris 2:41db78380a6e 2 #include "MMA8451Q.h"
amarincan 8:a2b340994747 3 #include "TextLCD.h"
chris 2:41db78380a6e 4
chris 2:41db78380a6e 5 #define MMA8451_I2C_ADDRESS (0x1d<<1)
chris 2:41db78380a6e 6
pagomezba 9:07e404aea94e 7 TextLCD lcd(PTB8, PTB9, PTB10, PTB11, PTE2, PTE3); // rs, e, d4-d7
pagomezba 9:07e404aea94e 8 float acx=0,acy=0,acz=0, filtro=0;
pagomezba 9:07e404aea94e 9 float faroin1, faroin2, faroout;
chris 4:367de1084ea9 10 int main(void) {
emilmont 5:bf5becf7469c 11 MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
emilmont 5:bf5becf7469c 12 PwmOut rled(LED_RED);
emilmont 5:bf5becf7469c 13 PwmOut gled(LED_GREEN);
emilmont 5:bf5becf7469c 14 PwmOut bled(LED_BLUE);
pagomezba 9:07e404aea94e 15
pagomezba 9:07e404aea94e 16 PwmOut acx(PTD4);
pagomezba 9:07e404aea94e 17 PwmOut acy(PTA12);
pagomezba 9:07e404aea94e 18 PwmOut acz(PTA4);
pagomezba 9:07e404aea94e 19
pagomezba 9:07e404aea94e 20 AnalogIn faroin1(PTB3);
pagomezba 9:07e404aea94e 21 AnalogIn faroin2(PTB2);
pagomezba 9:07e404aea94e 22 DigitalOut faroout(PTA13);
pagomezba 9:07e404aea94e 23
pagomezba 9:07e404aea94e 24 Serial pc(USBTX, USBRX); // tx, rx
pagomezba 9:07e404aea94e 25 lcd.locate(0,0);
pagomezba 9:07e404aea94e 26 lcd.printf("Medicion");
pagomezba 9:07e404aea94e 27 lcd.locate(0,1);
amarincan 8:a2b340994747 28 lcd.printf("Acelerometro");
amarincan 8:a2b340994747 29 wait(2);
amarincan 8:a2b340994747 30 lcd.locate(0,0);
pagomezba 9:07e404aea94e 31 lcd.printf("x= y=");
amarincan 8:a2b340994747 32 lcd.locate(0,1);
pagomezba 9:07e404aea94e 33 lcd.printf("z= ");
emilmont 5:bf5becf7469c 34 while (true) {
pagomezba 9:07e404aea94e 35
chris 3:f2d3e041d8f2 36 rled = 1.0 - abs(acc.getAccX());
chris 3:f2d3e041d8f2 37 gled = 1.0 - abs(acc.getAccY());
chris 3:f2d3e041d8f2 38 bled = 1.0 - abs(acc.getAccZ());
amarincan 8:a2b340994747 39
pagomezba 9:07e404aea94e 40 if (faroin1 > 0.5 or faroin2 > 0.5) {
pagomezba 9:07e404aea94e 41 faroout = 1;
pagomezba 9:07e404aea94e 42 filtro=((acc.getAccX()+(2*filtro))/3);
pagomezba 9:07e404aea94e 43 if (acc.getAccX() > 0) {
pagomezba 9:07e404aea94e 44 acx=0.5 + (filtro*2);
pagomezba 9:07e404aea94e 45 acy=0.5 - (filtro*2);
pagomezba 9:07e404aea94e 46 }
pagomezba 9:07e404aea94e 47 else {
pagomezba 9:07e404aea94e 48 acx=0.5 + (filtro*2);
pagomezba 9:07e404aea94e 49 acy=0.5 - (filtro*2);
pagomezba 9:07e404aea94e 50 }
pagomezba 9:07e404aea94e 51 if (acx > 1 or acy > 1) {
pagomezba 9:07e404aea94e 52 acx=1;
pagomezba 9:07e404aea94e 53 acy=1;
pagomezba 9:07e404aea94e 54 }
pagomezba 9:07e404aea94e 55 else if (acx<0 or acy<0) {
pagomezba 9:07e404aea94e 56 acx=0;
pagomezba 9:07e404aea94e 57 acy=0;
pagomezba 9:07e404aea94e 58 }
pagomezba 9:07e404aea94e 59 }
pagomezba 9:07e404aea94e 60 else {
pagomezba 9:07e404aea94e 61 faroout = 0;
pagomezba 9:07e404aea94e 62 acx=0.5;
pagomezba 9:07e404aea94e 63 acy=0.5;
pagomezba 9:07e404aea94e 64 }
pagomezba 9:07e404aea94e 65
pagomezba 9:07e404aea94e 66
pagomezba 9:07e404aea94e 67 //acz=0.0 + (acc.getAccZ());
pagomezba 9:07e404aea94e 68
pagomezba 9:07e404aea94e 69
pagomezba 9:07e404aea94e 70 lcd.locate(2,0);
amarincan 8:a2b340994747 71 lcd.printf(" ");
pagomezba 9:07e404aea94e 72 lcd.locate(2,0);
pagomezba 9:07e404aea94e 73 /*
pagomezba 9:07e404aea94e 74 lcd.printf("%2.2f",acx);
pagomezba 9:07e404aea94e 75 lcd.locate(11,0);
pagomezba 9:07e404aea94e 76 lcd.printf(" ");
pagomezba 9:07e404aea94e 77 lcd.locate(11,0);
pagomezba 9:07e404aea94e 78 lcd.printf("%2.2f",acy);
pagomezba 9:07e404aea94e 79 lcd.locate(2,1);
pagomezba 9:07e404aea94e 80 lcd.printf(" ");
pagomezba 9:07e404aea94e 81 lcd.locate(2,1);
pagomezba 9:07e404aea94e 82 lcd.printf("%2.2f",acz);
pagomezba 9:07e404aea94e 83 */
pagomezba 9:07e404aea94e 84 wait(0.2);
pagomezba 9:07e404aea94e 85 //pc.printf(("%f %f %f ,"),acc.getAccX(),acc.getAccY(),acc.getAccZ());
pagomezba 9:07e404aea94e 86 pc.printf(("%f %f %f"),acx.read(),acy.read(),faroin1.read());
pagomezba 9:07e404aea94e 87 //pc.printf(("%f %f ,"),acx.read(),acy.read());
pagomezba 9:07e404aea94e 88 //faroin2.read()
pagomezba 9:07e404aea94e 89 wait(0.2); //287 o 289 fluke
chris 2:41db78380a6e 90 }
chris 2:41db78380a6e 91 }