Autor Tema: Problemas con un sensor de luz a traves del I2C  (Leído 1629 veces)

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

Desconectado frankcr

  • PIC10
  • *
  • Mensajes: 36
Problemas con un sensor de luz a traves del I2C
« en: 09 de Octubre de 2010, 17:07:57 »
Hola a todos, hace unos dias compre un sensor de luz ISL29010, este me maneja a traves del I2C. Yo ya he trabajado con el I2C, en la configuracion del DS1307 y una memoria EEPROM. Sin embargo estoy teniendo problemas pues cuando leo los datos de los registros del I2C siempre es cero.  Problema de hardware no es ya lo he revisado. Pienso que debe ser de software, quiero usarlo en internal timing mode pero bueno espero que alguien con mas experiencia en este tipo de interfaces I2C me ayude, esta es la ISL29010hoja de datos , y adjunto los diagramas de lectura y escritura,  a continuacion  pongo lo metodos de lectura y escritura que estoy haciendo:

//******************************************************************************

void luz_write (){

      i2c_start(); //Inicia I2C
      i2c_write(0x88); //Direcciona ISL29010
      i2c_write(0x00); //Indica que empiece en registro COMMAND
   //   i2c_write(0x88);
      i2c_write(0x08);
      i2c_stop(); //
      
      i2c_start(); //Inicia I2C
      i2c_write(0x88); //Direcciona ISL29010
      i2c_write(0x01); //Indica que empiece en registro CONTROL
      i2c_write(0x0C);
      i2c_stop();

}

//******************************************************************************

//******************************************************************************

void luz_read (){

      i2c_start(); //Inicia I2C
      i2c_write(0x88); //Direcciona ISL29010
      i2c_write(0x04); //Indica que empiece en registro LSB SENSOR
      i2c_stop(); //
      
      i2c_start(); //Inicia I2C
      i2c_write(0x89); //Direcciona ISL29010
      luz_l = i2c_read(0); //
      i2c_stop(); //
      
      i2c_start(); //Inicia I2C
      i2c_write(0x88); //Direcciona ISL29010
      i2c_write(0x05); //Indica que empiece en reggistro MSB SENSOR
      i2c_stop(); //
   
      i2c_start(); //Inicia I2C
      i2c_write(0x89); //Direcciona ISL29010
      luz_h = i2c_read(0);
      i2c_stop(); //

}

Saludos cordiales


 

anything