Interfaz Termómetro y Termostato USB HID

La siguiente interfaz fue diseñada para practicar con el sensor de temperatura DS1631 en la cual podemos ver la temperatura , configurar el termostato, acceder a su configuración mediante i2c, a travez de un microcontrolador Pic18f4550 , Pic18f2550 o similar

termometro.PNG


termostato.PNG


configuracioni2c.PNG

EL circuito es el siguiente

termometro_esquema.PNG


en donde podemos podemos modificar los pines A0,A1,A2 - en el software se configura la dirección


Parte del código del PIC, si deseamos modificar el codigo solo hay que tener en cuenta recibe[1] tiene que ser los mismos valores que se muestran ya que el programa de la pc los envia de esa forma

Código:
[COLOR="Green"]#include     <18F4550.h>
#fuses       NOMCLR,HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOPBADEN
#use         delay(clock=48000000)
#use         i2c(Master,sda=PIN_B0,scl=PIN_B1)
#include     <pic18_usb.h>                  
#include     <APLICACION_HID.h>             
#include     <Descriptor_easyHID.h> 
#include     <USB.c>  
#include     <TEMP_ds1621.c.encrypted>
//#include     <ds3232.c> 
#use         fast_io(c)
void main(void){
///////////////////////////////////////////////////////////////////////////////
// DECLARACION DE VARIABLES
///////////////////////////////////////////////////////////////////////////////
   int8  recibe[USB_EP1_RX_SIZE];
   int8  envia[USB_EP1_TX_SIZE];
   int8  datah;
   int8  datal;
   int8  adress=7;
///////////////////////////////////////////////////////////////////////////////
// CONFIGURACION DE PUERTOS
///////////////////////////////////////////////////////////////////////////////
//   set_tris_b(0xFF);
//   set_tris_c(0b01000000);
///////////////////////////////////////////////////////////////////////////////   
// CONFIGURANDO DS1631 (SENSOR DE TEMPERATURA)
///////////////////////////////////////////////////////////////////////////////
   init_temp(adress);
   config_temp(adress,0b01101110);//Configuration Registers
///////////////////////////////////////////////////////////////////////////////
// CONFIGURANDO DS3232 (REAL TIME CLOCK)
///////////////////////////////////////////////////////////////////////////////
//   ds3232_init();
//   DS3232_setTime(1,59,30);
//   DS3232_setDate(3,3,+--3,3);
/////////////////////////////////////////////////
//   setup_adc_ports(AN0); // Configura canales usados por el ADC.
//setup_adc(ADC_CLOCK_DIV_64);
///////////////////////////////////////////////////////////////////////////////
// CONFIGURACION DE USB
///////////////////////////////////////////////////////////////////////////////
  usb_init();
  usb_task();  
  usb_wait_for_enumeration();

    while (TRUE)                                                       
    {
         recibe[1]=0;
         if(usb_enumerated())                                            
         {
            delay_ms(100);
            read_full_temp(adress,datah,datal);
            datal=datal>>4;
            envia[1]=datah;
            envia[2]=datal;
            //Enviando paquete USB
            usb_put_packet(1, envia, USB_CONFIG_HID_TX_SIZE, USB_DTS_TOGGLE); 

         if (usb_kbhit(1))
         {  
            //Recibiendo paquete USB
            usb_get_packet(1, recibe, USB_CONFIG_HID_RX_SIZE);
            //Configuracion del DS1631
            if (recibe[1]==10)//configuracion de thermostato
            {
               write_TH(adress,recibe[2],recibe[4]<<4);
               write_TL(adress,recibe[3],recibe[5]<<4);  
            }
            if (recibe[1]==11)//configuracion de sensor
            {
               adress=recibe[2];
               init_temp(recibe[2]);
               config_temp(recibe[2],recibe[3]);
            }
            
         }
      
         }
   }
}
[/COLOR]
Programa C# (requiere net 3.5) solo el ejecutable
Programa pic hex + source code​
 

Adjuntos

  • EjecutableTermometro.rar
    334.4 KB · Visitas: 86
  • PIC Code Termometro.rar
    92.3 KB · Visitas: 82
Última edición por un moderador:
Muy buen proyecto amigo, solo un apregunta como haces para agregar esos controles en visual, porque yo uso labview pero e leido que visual es mas potente y me gustaria, adentrarme mas en visual pero con ese tipo de controles gracias, y nuevamente felicidades por tu proyecto te quedo de 10
 
La siguiente interfaz fue diseñada para practicar con el sensor de temperatura DS1631 en la cual podemos ver la temperatura , configurar el termostato, acceder a su configuración mediante i2c, a travez de un microcontrolador Pic18f4550 , Pic18f2550 o similar. . .

No había visto este tema, ! Gracias por el aporte ¡
 
Muy buen proyecto amigo, solo un apregunta como haces para agregar esos controles en visual, porque yo uso labview pero e leido que visual es mas potente y me gustaria, adentrarme mas en visual pero con ese tipo de controles gracias, y nuevamente felicidades por tu proyecto te quedo de 10

Gracias, lo de los controles se desarrollan mediante gdi (Graphics Device Interface)
 
hola que tal, primeramente quiero saludarles, tengo dudas del mi ccs compiler(programa), acabo de descargar los dos link de es tema, por que tengo desde el viernes que no logrado hacer comunicacion Usb con el 18f4550, me he bajado como 4 ejemplos(usb para pic 18f4550) y antes de compilar con el ccs compiler me funcionan, y despues de hacer ya no funcionan me marca errores, voy anexar la imagen para ver si me pueden ayudar con este problema, haaa y tambien me aparece lo mismo en la lap, estoy llegando a la conclusion que de el programa CCS compiler no es el problema, les pedire de favor que compilen este ejemplo y publiquen un print screen y asi poder ir descartando posibles causas
 

Adjuntos

  • no compila CCS compiler.JPG
    no compila CCS compiler.JPG
    154.3 KB · Visitas: 38
Última edición:
que version de CCS estas usando.. para que te funcione correctamente el usb tienes que tener puesto el sensor tal y como se muestra en el esquematico, caso contrario tienes que qiutar el codigo relacionado con el sensor ya que antes se inicializa el sensor y si no hay respuesta la comunicacion USB no se lleva acabo
 
Atrás
Arriba