Problema de escritura LM92 y Arduino

Si te encuentras diseñando, desarrollando o construyendo un proyecto y tienes complicaciones, en este sub-foro podemos ayudarte. Aquí ingresa con los temas que no puedas ubicar dentro de otros sub-foros, por ejemplo, Radio, Microcontroladores, Software, etc. Cuando algo no funciona, de este sub-foro sale en marcha.

Moderador: HJ

Problema de escritura LM92 y Arduino

Notapor Jzebadua » Mar Ene 28, 2014 3:54 pm

Un saludo a todos y gracias por tomarse el tiempo de leer este post.

Hace unos días tuve la oportunidad de comprar un sensor de temperatura LM92 siguiendo los pasos del Maestro Mario en una publicación anterior, y dado que también ando con mis primeros pasos en Arduino para cambiar un poco de PIC's pues decidí controlarlo con este.

El problema que tengo en estos momentos no es leer la temperatura si no el configurar las funciones de INT_LOW, INT_HIGHT y T_CRIT como lo hace Mario en su ejemplo. Pero la realidad es que una vez que lo programo las lecturas optenidad son temperaturas de 10°C o 31°C y de ahí no cambia para nada como si se bloqueara el sensor. Si desactivo las lineas de escritura el sensor vuelve a trabajar de correctamente, entonces no entiendo que tengo mal que al escribir la dicha cadena de configuracion bloqueo el sensor.

mi codigo:
Código: Seleccionar todo
#include <Wire.h>

char lm92addr = 0x48;   //A1 y A0 a tierra #1001000

char x[] = {0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0};
char buffer[2];
int tempcode;
float temp;

void setup()
{
 Serial.begin(9600);
 Wire.begin();
 
 Wire.beginTransmission(lm92addr);
 Wire.write(4);
 Wire.write(x);    // 0001000010000000 T-Low 33ºC
 //Wire.write(0x05);
 //Wire.write();    // 0001010000000000 T-High 40ºC
 //Wire.write(0x03);
 //Wire.write("0001100000000000");    // 0001000010000000 T-Critico*/
 Wire.endTransmission();
 delay(5);
 
}

void loop()
{
 Wire.requestFrom(lm92addr,2); // Se solicitan los dos Bytes
  if (Wire.available())
  {
   for(int i=0; i<2; i++)
   {
    buffer[i]= Wire.read();
   }
   tempcode= ((buffer[0] << 8) + buffer[1]) >>3;
   temp = tempcode * 0.0625;
   Serial.print("t = ");
   Serial.print(temp);
   Serial.print(" C");
   Serial.println();
  }
delay(500);
}


comento que aun no he creado la rutina que me lea los 3 primeros bits de la cadena leída donde se avisa que interrupción esta activa, pero creo que si estuviera grabando bien la configuración, el sensor debería de trabajar correctamente y no entrar en un estado donde solo me muestra 10°C.

Alguna idea de que estoy haciendo mal, ya intente escribir con:

Código: Seleccionar todo
Wire.write(0x1080);
Wire.write("0001000010000000");


y nada parece funcionar. De nuevo muchas gracias y espero su ayuda.
Jzebadua
 
Mensajes: 9
Registrado: Mar May 21, 2013 12:01 pm
Ubicación: Tuxtla Gutiérrez, Chiapas México

Volver a Problemas con mis Desarrollos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron