Autor Tema: No comprendo la codificacion del ds18b20  (Leído 2253 veces)

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

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
No comprendo la codificacion del ds18b20
« en: 19 de Agosto de 2012, 18:42:10 »
Hola amigos.

Me estoy vovlviendo loco con este dispositivo.

Estoy leyendo el datasheet y creo que en la codificacion que hace del numero -55 en la tabla de ejemplos está mal porque parace que ha hecho el complemento a 2, pero en los de -10 y -25 solo hace el complemento a 1.

Y para remate lo que no comprendo NADA es la codificación de la parte decimal cuando el numero es negativo.

Si alguien me lo aclara podré seguir.

Aclaro que el "DS18B20" es un sensor de temperatura que usa el protocolo One-Wire.



Gracias.
« Última modificación: 20 de Agosto de 2012, 03:30:13 por halowin »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: No comprendo la codificacion del ds18b20
« Respuesta #1 en: 20 de Agosto de 2012, 06:43:18 »
No entiendo a que te refieres, a donde pone Table 1. Temperature/Data Relationship??

Si te refieres a esta si esta bien, cada valor equivale a 0.0625º, para el valor negativo usando un int por ejemplo -55 seria: 0.0625/55=880; 0-880=-880 en signed o bien 0xFC90 en hexadecimal.

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: No comprendo la codificacion del ds18b20
« Respuesta #2 en: 20 de Agosto de 2012, 08:35:53 »
No entiendo a que te refieres, a donde pone Table 1. Temperature/Data Relationship??

Si te refieres a esta si esta bien, cada valor equivale a 0.0625º, para el valor negativo usando un int por ejemplo -55 seria: 0.0625/55=880; 0-880=-880 en signed o bien 0xFC90 en hexadecimal.

Hola Merlin.

Si, me refiero a esa tabla.

Pero ahora me lo has puesto peor todavia. Esa division de 0.0625/55=880  ¿de donde sale ese 880???????

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: No comprendo la codificacion del ds18b20
« Respuesta #3 en: 20 de Agosto de 2012, 09:32:35 »
No entiendo a que te refieres, a donde pone Table 1. Temperature/Data Relationship??

Si te refieres a esta si esta bien, cada valor equivale a 0.0625º, para el valor negativo usando un int por ejemplo -55 seria: 0.0625/55=880; 0-880=-880 en signed o bien 0xFC90 en hexadecimal.

Hola Merlin.

Si, me refiero a esa tabla.

Pero ahora me lo has puesto peor todavia. Esa division de 0.0625/55=880  ¿de donde sale ese 880???????


La puse al reves: 55/0.0625=880

Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: No comprendo la codificacion del ds18b20
« Respuesta #4 en: 20 de Agosto de 2012, 16:11:37 »
No entiendo a que te refieres, a donde pone Table 1. Temperature/Data Relationship??

Si te refieres a esta si esta bien, cada valor equivale a 0.0625º, para el valor negativo usando un int por ejemplo -55 seria: 0.0625/55=880; 0-880=-880 en signed o bien 0xFC90 en hexadecimal.

Hola Merlin.

Si, me refiero a esa tabla.

Pero ahora me lo has puesto peor todavia. Esa division de 0.0625/55=880  ¿de donde sale ese 880???????


La puse al reves: 55/0.0625=880

Pues o soy muy burro, o aqui hay algo mal.

Segun esa operacion si hago lo mismo para el -25 a mi me da FE70h y en la tabla le da FE6Fh

Para -10 a mi me da FF60h y en la tabla le da FF5Eh




Desconectado halowin

  • PIC16
  • ***
  • Mensajes: 151
Re: No comprendo la codificacion del ds18b20
« Respuesta #5 en: 20 de Agosto de 2012, 16:28:56 »
Yaaaaaa lo entendí.... pufffff!!!!!

Es que hay que hacer la cuenta con los decimales incluidos, yo estaba haciendo la cuenta solo para la parte entera del valor, es decir, para -10 o para -25.


Por tanto para numeros positivos, se multiplica el código devuelto por 0.0625 y ya tenemos la temperatura y para numeros negativos (los que empiezen por "F" una formula valida seria:

10000h - (numero_devuelto) x 0.0625

esto no dará el valor absoluto pero como empezaba por "F" con plantarle un "-" delante obtenemos la temperatura correcta.


Gracias Merlin
« Última modificación: 20 de Agosto de 2012, 18:29:13 por halowin »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: No comprendo la codificacion del ds18b20
« Respuesta #6 en: 20 de Agosto de 2012, 20:58:28 »
es mas simple usar un signed int (no se con que compilador trabajas, pero variable de 16bits), el mismo compilador distinge el signo sin necesidad de hacer cuenta alguna.


 

anything