Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

13/05/2008 #1


Necesito información del DS18b20
Hola amigos, me gustaria obtener información del integrado ds18b20 ya que lo quiero utilizar para conectarlo a un pic 16f628a y obtener la medición digital de temperatura, cualquier información que me puedan pasar seria de nucha ayuda.
Gracias
Esteban
13/05/2008 #2


google es tu amigo:
http://www.maxim-ic.com/quick_view2.cfm?qv_pk=2812
19/04/2014 #3


Ds18B20
esteban_santiago83 dijo: Ver Mensaje
Hola amigos, me gustaria obtener información del integrado ds18b20 ya que lo quiero utilizar para conectarlo a un pic 16f628a y obtener la medición digital de temperatura, cualquier información que me puedan pasar seria de nucha ayuda.
Gracias
Esteban
Hola tengo un código que funciona utilizando un Ds18B20 con un PIC16F887 pero en lenguaje CCS. Mi siguiente paso el leer una cadena de 5 termómetros donde tu te encuentras, y a una distancia de 20 m entre cada uno, en el documento de Dallas no es muy clara la información, espero alguien pueda apoyarme. Tengo la teoría que utilizando este código solo necesito leer la dirección de cada termómetro.

Te dejo mi código solo busca el compilador CCS funciona muy bien y se puede simular en Proteus 7 y 8

#include <16f887.h>
#FUSES NOWDT,INTRC_IO, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD
#use delay(clock=4000000)
#include <lcd.c>
#include "ONEWIRE.h"

float GRADOS;

void main() {
lcd_init();
printf(lcd_putc,"\fTemp DS18B20");
delay_ms(1000);

while(1){
GRADOS=ds1820_read();
lcd_gotoxy(2,2);
printf(lcd_putc,"%3.1f oC",GRADOS);
delay_ms(1000);
}
}


la librería onewire que utilice:

//Archivo onewire para enfocado a un
//Termometro DS18B20 .

#define ONE_WIRE_PIN PIN_A1

void onewire_reset();
void onewire_write(int8 data);
int onewire_read();
float ds1820_read();

void onewire_reset() {
output_low(ONE_WIRE_PIN); // pull the bus low for reset
delay_us(500);
output_float(ONE_WIRE_PIN); // float the bus high
delay_us(500); // wait-out remaining initialisation window
output_float(ONE_WIRE_PIN);
}

void onewire_write(int8 data) {
int8 count;
for(count = 0; count < 8; ++count) {
output_low(ONE_WIRE_PIN);
delay_us(2); // pull 1-wire low to initiate write time-slot.
output_bit(ONE_WIRE_PIN, shift_right(&data, 1, 0)); // set output bit on 1-wire
delay_us(60); // wait until end of write slot.
output_float(ONE_WIRE_PIN); // set 1-wire high again,
delay_us(2); // for more than 1us minimum.
}
}

int onewire_read() {
int count, data;
for(count = 0; count < 8; ++count) {
output_low(ONE_WIRE_PIN);
delay_us(2); // pull 1-wire low to initiate read time-slot.
output_float(ONE_WIRE_PIN); // now let 1-wire float high,
delay_us(8); // let device state stabilise,
shift_right(&data, 1, input(ONE_WIRE_PIN)); // and load result.
delay_us(120); // wait until end of read slot.
}
return data;
}

float ds1820_read() {
int8 busy=0, temp1, temp2;
signed int16 temp3;
float result;
onewire_reset();
onewire_write(0xCC); //Skip ROM, address all devices
onewire_write(0x44); //Start temperature conversion
while(busy == 0) //Wait while busy (bus is low)
busy = onewire_read();
onewire_reset();
onewire_write(0xCC); //Skip ROM, address all devices
onewire_write(0xBE); //Read scratchpad
temp1 = onewire_read();
temp2 = onewire_read();
temp3 = make16(temp2, temp1);
result = (float) temp3 / 16.0; //Calculation for DS18B20
delay_ms(200);
return(result);
}
20/04/2014 #4


si quieres yo tengo uno en asm con pic 16f628a
21/04/2014 #5


proteus7 dijo: Ver Mensaje
si quieres yo tengo uno en asm con pic 16f628a
Proteus podrias subir tu código para darme alguna idea de como lo paso a CCS, gracias de antemano y saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.