TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fame15 en 17 de Marzo de 2010, 19:23:53

Título: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 17 de Marzo de 2010, 19:23:53
Hola a todos, necesito una mano urgente, deseo leer los 64 bits de la memoria que tienen todos los dispositivos ds18s20 (dispositivo onewire) y mostrarlos en un lcd, ya que tengo que conectar dos de estos ds18s20 en un mismo pin del pic y nose como leer este codigo que tiene inplicitos en su memoria, agradezco toda ayuda.
Obviamente el codigo lo necesito en ccs.
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 17 de Marzo de 2010, 21:22:01
Es un codigo que lo identifica univocamente??

Te aclaro que si pides todo hecho aca vas un poco mal, raramente te van a ayudar de ese modo.
Mejor si explayas todos tus avances y donde estas atrancado.

Salvo que hicieras una busqueda en el foro y alguien ya lo haya hecho y explicado y lo encuentres, es dificil que te ayuden...
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MLO__ en 18 de Marzo de 2010, 00:23:22
Hola.

Estos sensores poseen un código único de identificación, son geniales.

Para leerlo es muy simple, usa el comando de lectura de la ROM del sensor que es 0x33

Saludos
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 18 de Marzo de 2010, 11:14:20
hola MLO estoy utilizando ese codigo pero debo estar haciendo algo mal porque lo unico que me muestra en el lcd es 36363636363636, les adjunto todo lo que estoy usando, esto es libreria onewire, libreria del ds18s20 y el programita que hice para que lo vean y me comenten que estoy haciendo mal porque yo no se donde mas buscar para poder leer ese vendito codigo, el nombre del programa en ccs es temds18s20, en el mismo rar esta esta el esquema en proteus, si me pueden ayudar lo antes posible mejor porque tengo que entregar este proyecto el día lunes por la tarde, jajajaj muy jugado con el tiempo no??????
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 18 de Marzo de 2010, 11:30:58
Ahora si es otra cosa...

En tu funcion intentas traer datos con la funcion read_rom(), que devuelve un solo byte y es el ultimo byte leido de 8 lo que estas recibiendo...

Código: C
  1. int8 read_rom (void)
  2. {
  3. int8 v;
  4. char dato[9];
  5. onewire_reset();
  6. onewire_write(0xCC);
  7. onewire_write(0x55);
  8. for(v=0;v<8;v++){dato[v]=read_byte;}
  9. return dato;
  10. }

Tambien esta mal hecha la llamada, deberia ser asi:

Código: C
  1. for(i=0;i<8;i++){dat[i]=read_rom();}

Tu funcion deberia usar dato como global y no retornar nada, solo actualizarlo...

Con eso deberia funcionar bien.
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MLO__ en 18 de Marzo de 2010, 11:43:40
Hola.

El CCS tiene una librería para el manejo del 1-wire: TOUCH.C.

Si vas a usarla, puedes escribir este código para obtener el numero serial:

Código: C#
  1. if(touch_present())
  2. {
  3.         touch_write_byte(0x33);
  4.         for(i=7;i!=0;i--)
  5.         {
  6.                 memory[i] = touch_read_byte();
  7.                 delay_us(5);
  8.         }
  9. }

Que en si es lo mismo que te dice MGLSOFT  :mrgreen:

Si vas a sacar el valor por la LCD, ten presente que es un string.

Saludos
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 18 de Marzo de 2010, 17:18:29
Hola MGLSOFT probe con estas lineas y en el lcd me aparece 02020202020202, aca te pongo las lineas que uso
Código: C
  1. char read_rom (void)
  2. {
  3. int8 v;
  4. char dato[9];
  5. onewire_reset();
  6. onewire_write(0xCC);
  7. onewire_write(0x33);
  8. for(v=0;v<8;v++){dato[v]=read_byte();}
  9. }

y este codigo para mostar el dato en el lcd
Código: C
  1. for(i=0;i<8;i++){dat[i]=read_rom();}
  2.       lcd_gotoxy(1,1);
  3.       printf(lcd_putc,"%X%X%X%X%X%X%X%X\n",dat[7],dat[6],dat[5],dat[4],dat[3],dat[2],dat[1],dat[0]);
Si me podes decir que modificar para que funcione correctamente te lo agradeceria mucho porque la verdad es que no me doy cuenta que cuernos modificar
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 18 de Marzo de 2010, 17:28:36
Hola MLO e probado con esa sentencia y tampoco puede leer el dato de memoria, leo todos 0000000000
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 18 de Marzo de 2010, 18:15:09
No lo se...
Existe ese dispositivo en Proteus??
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 18 de Marzo de 2010, 18:22:02
si si fijate en el archivo adjunto que esta el esquematico en proteus, y todo lo que estoy haciendo con todas las librerias en ccs....
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 18 de Marzo de 2010, 18:28:38
OK esta noche veo si puedo hacerlo funcionar...
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 18 de Marzo de 2010, 18:30:06
ok MLGSOFT te lo agradezco muchisimo ya que me esta comiendo la cabeza hace dos semanas y no lo puedo resolver, muchas gracias...
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 18 de Marzo de 2010, 22:34:52
Creo que funciona ahora, es mi primera vez con este dispositivo...
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MLO__ en 19 de Marzo de 2010, 00:03:09
Hola MLO e probado con esa sentencia y tampoco puede leer el dato de memoria, leo todos 0000000000

 :?

Raro, porque a mi si me funciona....
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 19 de Marzo de 2010, 08:27:33
Entre otras cosas elimine la sentencia de escribir 44H antes de 33H, eso debe ser lo peor que tenia... :mrgreen:
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 19 de Marzo de 2010, 09:58:21
Estimado MGLSOFT  muchisimas gracias por todo eso es lo que estaba buscando, mirando las modificaciones que haces entendi lo que estaba haciendo mal, muchas gracias  :-/, sos un capo
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 19 de Marzo de 2010, 10:31:59
De nada.
Esto te obliga a colaborar con otros apenas puedas hacerlo, si??
Suerte!! :mrgreen: :mrgreen:

PD:
Te inclui el pdf del 18s20 asi sabes despues como pedir el dato de uno solo de los dispositivos... :)
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 19 de Marzo de 2010, 10:38:57
Ok MGLSOFT en todo lo que pueda ayudar lo voy hacer, un saludo y gracias por adjuntar el pdf....
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 19 de Marzo de 2010, 11:38:10
MLGSOFT te hago una pregunta para usar este programita con el pic 18f458 tendria que hacer alguna modificacion???? porque lo pruebo en el proteus y no funciona, te prometo que despues de esto no te molesto mas jajaja....
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 19 de Marzo de 2010, 12:04:26
En el programa principal:

En la libreria del LCD:


Por ultimo revisar si las demas librerias hacen uso de puertos, modificarlas para que funcionen.

Creo que eso es todo, con eso deberia funcionar bien con cualquiera de la linea 18F... :mrgreen:

Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 25 de Marzo de 2010, 19:57:08
Estimado MGLSOFT aqui estoy molestando nuevamente, logre hacer funcionar el codigo en un 18f258, pero lo que no puedo hacer es comunicarme con los dos sensores conectados en paralelo, queria saber me podes dar una mano con esto porque ya me rompi la cabeza y nada, lo estoy probando en el codigo que vos me pasaste, lo del 18f258 es para mas adelante, un saludo y sigo renegando, jajaja
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: MGLSOFT en 25 de Marzo de 2010, 21:09:52
Los dos sensores deberian tener direccionamiento diferente, creo que se pueden poner hasta 8 en el mismo circuito.
Estudia el direccionamiento en la hoja de datos...
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: diego_garcia18 en 21 de Agosto de 2010, 16:41:21
hola como estan?
tengo un problema con el sensor de temperatura DS18B20. el programa esta adjunto. el problema es que no lee la temperatura me envia todo cero!!
estoy trabajando con  el PIC 16f876a. llevo dos semanas rabiando con esto pero no hay caso. Si alguien me puede dar una mano sere muy agradecido!!!

Muchas gracias!!
Código: CSS
  1.  
Título: Re: Leer codigo de 64 bits en la rom del ds18s20
Publicado por: fame15 en 23 de Agosto de 2010, 10:24:01
hola diego, yo a los sensores los hice funcionar con un 16f873 y andan de diez, la verdad no tuve tiempo de leer mucho tu codigo pero fijate que en la pagina uno hay un archivo que funciona es el que estoy utilizando, suerte.....