29-01-2015, 11:48 PM
Buenas a tod@s:
Estoy trabajando en un proyecto donde tengo que construir un sensor que me mida la velocidad en la que va un vehículo. Para ello, utilizao el sensor ADXL335.
He buscado en la red a ver si había algun código con el que basarme y he encontrado este:
Parece que los valores són correctos y creo que el código me puede servir para satisfacer mis necesidades. Sin embargo, no sé como puedo convertir los datos obtenidos en km/h que es lo que realmente yo quiero mostrar por una pantalla TFT???
Muchas gracias de antemano.
Estoy trabajando en un proyecto donde tengo que construir un sensor que me mida la velocidad en la que va un vehículo. Para ello, utilizao el sensor ADXL335.
He buscado en la red a ver si había algun código con el que basarme y he encontrado este:
Código:
const int xPin = 0; //Pines analogicos de lectura
const int yPin = 1;
const int zPin = 2;
int minVal = 265; // Valores mínimos y máximos del acelerometro en reposo
int maxVal = 402;
double x; // para guardar los valores calculados
double y;
double z;
void setup ( ) {
Serial.begin(9600);
}
void loop ( ) {
int xRead = analogRead(xPin); //Lee los valores analogicos del acelerometro
int yRead = analogRead(yPin);
int zRead = analogRead(zPin);
// mapea los valores leidos a un rango -90 a 90 grados (-π a π )
int xAng = map(xRead, minVal, maxVal, -90, 90);
int yAng = map(yRead, minVal, maxVal, -90, 90);
int zAng = map(zRead, minVal, maxVal, -90, 90);
//Convertimos los radianes a grados
x = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI);
y = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI);
z = RAD_TO_DEG * (atan2(-yAng, -xAng) + PI);
//Imprimimos en el monitor serial los caluculos
Serial.print("x: ");
Serial.print(x);
Serial.print(" | y: ");
Serial.print(y);
Serial.print(" | z: ");
Serial.println(z);
delay(100); //Espera 1 decima de segundo
}
Parece que los valores són correctos y creo que el código me puede servir para satisfacer mis necesidades. Sin embargo, no sé como puedo convertir los datos obtenidos en km/h que es lo que realmente yo quiero mostrar por una pantalla TFT???
Muchas gracias de antemano.