Estoy probando el código en esta hoja de datos en un Arduino mega2560 con mpu6050 IMU ,
He hecho algunos cambios en las variables y hasta ahora no recibo errores. y el código no da ningún resultado, ¿puede alguien mostrarme un lugar con código incorrecto?
Tengo el rango de mpu6050 accX y accy -2 ^ 15 a + 2 ^ 15. No publico código para mpu6050 ya que funciona. Necesito imprimir en serie y ver cómo cambia el desplazamiento en este código. en la función positionxy () quería imprimir
Sample_X = (unsigned char)accX/129;
Sample_Y = (unsigned char)accY/129;
Serial.print ( Sample_X ); Serial.print ("\t");
Serial.println ( Sample_Y ); Serial.print ("\t");
y no da nada, Creo que el problema es con los tipos de variables y no puedo resolverlo. La parte del código de la siguiente manera,
//all varibles
double accX, accY, accZ;
unsigned char Sample_X;
unsigned char Sample_Y;
unsigned char Sample_Z;
unsigned char Sensor_Data[8];
unsigned char countx,county ;
signed int accelerationx[2], accelerationy[2];
signed long velocityx[2], velocityy[2];
signed long positionX[2];
signed long positionY[2];
signed long positionZ[2];
unsigned char directionxy;
unsigned long sstatex,sstatey;
void setup(){
*****mpu 6050 config is done here and works aacX and accY updates with
current accelration value *****
}
void loop(){
do{
Calibrate();
movement_end_check();
positionxy();
}while(1);
}
void Calibrate()
{
************see datasheet **********
}
void positionxy()
{
unsigned char count2 ;
count2=0;
do{
Sample_X = (unsigned char)accX/129; // this line is changed
Sample_Y = (unsigned char)accY/129; // this line is changed
debajo de la impresión en serie siempre da cero
Serial.print ( Sample_X ); Serial.print ("\t");
Serial.println ( Sample_Y ); Serial.print ("\t");
accelerationx[1]=accelerationx[1] + Sample_X;
accelerationy[1]=accelerationy[1] + Sample_Y;
************see datasheet **********
}
movement_end_check(){
************see datasheet **********
}