Autor Tema: LSM303D acelerometro  (Leído 1136 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Andy09

  • PIC10
  • *
  • Mensajes: 1
LSM303D acelerometro
« en: 14 de Mayo de 2015, 12:15:51 »
Buen día a todos!!

Necesito su ayuda, estoy trabajando con el acelerometro LSM303D, lo adquirí de Pololu.
Estoy trabajando en el sensor con comunicación I2C, ya puedo escribir en los datos y leer el registro, y la lectura es la correcta.
Mi problema aquí es que cuando mando leer los salidas de las señales de aceleración (x, y, z) el dato no se actualiza, solo lo muestra una vez, y si yo giro el sensor no me regresa mas datos, esto lo tengo en un ciclo while

Código: [Seleccionar]
while (TRUE)   
   { 
      if(usb_enumerated())          //Si el PicUSB está configurado
      { 
         if (usb_kbhit(1))          //Si el endpoint de salida contiene datos del host
         {       
            LED_ON(LEDP);                     
            delay_ms(500);
           
            i2c_start();
            i2c_write(0x3A);     //address + W
            i2c_write(0x28);     //dirección del registro X parte baja
            i2c_start();
            i2c_write(0x3B);     //address + R
            DATA1=i2c_read(0);
            i2c_stop();
            delay_us(5);
            i2c_start();
            i2c_write(0x3A);       //address + W
            i2c_write(0x29);       //dirección del registro X parte alta
            i2c_start();
            i2c_write(0x3B);       //address + R
            DATA2=i2c_read(0);
            i2c_stop();

            data7=count;
            usb_put_packet(1,envia,8,USB_DTS_TOGGLE); //enviamos el paquete de tamaño 1byte del EP1 al PC
            //usb_get_packet(1, recibe, 2); //Cachamos el paquete de tamaño 2bytes del EP1 y almacenamos en recibe
           



            LED_OFF(LEDP);                   //Apagamos led Verde
            delay_ms(500);
            count++;
            }
         }
      }//While


No se que registro necesite habilitar para que los datos sean continuos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: LSM303D acelerometro
« Respuesta #1 en: 15 de Mayo de 2015, 10:59:25 »
La comunicacion parece estar bien, lo que no veo es que definas todos los demas registros que son los de control

Aunque veo que por default tiene un modo continuo.

Lo otro que me preocupa es que la lectura se realiza rapido, a no ser que estes moviendo constantemente la placa, durante ese segundo que tenes de delay y probar si varia.
« Última modificación: 15 de Mayo de 2015, 11:04:19 por KILLERJC »