Autor Tema: Ayuda sensor de temperatura ds18b20  (Leído 2247 veces)

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

Desconectado matias29

  • PIC10
  • *
  • Mensajes: 13
Ayuda sensor de temperatura ds18b20
« en: 28 de Abril de 2014, 20:35:36 »
Hola comunidad soy nuevo en el foro y tengo un problema con la libreria del sensor de temperatura ds18b20.
el tema es que estoi realizando un proyecto y necesito controlar temperatura del ambiente, e revisado el foro y encontre una libreria del sensor la cual fue puesta por micro pepe pero al compilarla en mi ccs me abre otra ventana al lado de mi proyecto de nombre touch.c y me arroja error (#DEVICE required before this line).
trate de simular en proteus un codigo ejemplo y la libreria de ds1820.c puesto por micro pepe y no me funciono.

no se si es por mi version del ccs o que me falta alguna otra libreria (he visto que tambien agregan en algunos codigos la libreria 1wire.c, pero no se para que sirve). :?

gracias y disculpen mi ignorancia.



Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Ayuda sensor de temperatura ds18b20
« Respuesta #1 en: 28 de Abril de 2014, 21:31:38 »
wenas... elimina o comenta esta linea...#include "touch.c"
seguramente sea para el control de sensores capacitivos/tactiles...
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado matias29

  • PIC10
  • *
  • Mensajes: 13
Re: Ayuda sensor de temperatura ds18b20
« Respuesta #2 en: 28 de Abril de 2014, 21:54:14 »
ya lo habia intentado pero siguen aparesiendo errores  :5] :5] :5] :?

el programa y libreria el cual ocupe es esta y no entiendo por que no puedo hacer que funcione, al simularlo solo me aparese en la pantalla lcd una temperatura de -0,75 C.
otro punto que no comprendo es para que sirve la libreria 1wire.c es necesesaria tenerla si utilizas la libreria de ds1830.c?

codigo ds1820(micro pepe):

////////////////////////////////////////////////////////////////////////////
////   Library for a Dallas 1820 Temperature chip                       ////
////                                                                    ////
////   init_temp();          Call before the other functions are used   ////
////                                                                    ////
////                                                                    ////
////   d = read_full_temp(); Read the temp in degrees C (0 to 125)      ////
////                                                                    ////
////////////////////////////////////////////////////////////////////////////


#ifndef DS1820_PIN
   #define DS1820_PIN  PIN_B0
#endif

#define TOUCH_PIN  DS1820_PIN
#include "touch.c"
void init_temp() {

}

float read_full_temp()
{
    byte i, buffer[9];
    float minstep;

    if (touch_present()) {         // get present (reset)                    (2)
        touch_write_byte(0xCC);    // Skip ROM                               (3)
        touch_write_byte (0x44);   // Start Conversion
        delay_ms(200);             // delay 200 ms                           (4)
        touch_present();           // get present (reset)                    (5)
        touch_write_byte(0xCC);    // Skip ROM                               (6)
        touch_write_byte (0xBE);   // Read Scratch Pad

        for(i=0; i<9;i++)          // read 9 bytes                           (7)
            buffer = touch_read_byte();
    }


//minstep = (float)(buffer[0]/2)-0.25+((float)( buffer[7]-buffer[6])/buffer[7]);
     if(buffer[1]){
      minstep = (float)(-1)*(~make16(buffer[1],buffer[0])+1)/2;
     }else{
      minstep = (float)(make16(buffer[1],buffer[0])/2);
     }
      minstep = minstep - 0.25 + ((float)( buffer[7] - buffer[6])/buffer[7]);
      return (minstep);
}




codigo ejemplo(micro pepe)

#include <16F876.h> //Standard header file
#fuses NOWDT,HS, NOPUT, NOPROTECT,NOLVP,BROWNOUT //Oscillator mode HS
#use delay(clock=20000000) //Clock speed HZ = 20MHZ
#define use_portd_lcd //define for use port d lcd
#define DS1820_PIN  PIN_A2
#define use_portb_lcd TRUE
#include "lcd.c"
#include "ds1820.c"

void main() {
   float minstep;
   int16 a;
   int b;
   lcd_init();
   do {
         minstep = read_full_temp();
         printf (lcd_putc,"\fTemp :%3.2f C", minstep);
         delay_ms(1000);
   } while (TRUE);


}


Desconectado Edwin16

  • PIC10
  • *
  • Mensajes: 2
Re: Ayuda sensor de temperatura ds18b20
« Respuesta #3 en: 26 de Marzo de 2015, 14:31:57 »
hola amigos yo tengo un problema similar trato de cargar las librerias 1wire.c y ds1820.c y me da muchos errrores al tratar de compilarlo. :( :( :( :( necesito ayuda


 

anything