DAQ USB con pic 18f4550

Hola Dinoelectro gracias por tu pronta respuesta, tengo otra inquietud he estado tratando de simular en Proteus y establecer la conexion con labview he seguido todas las instrucciones que le has dejado a los otros colegas e incluso estuve leyendo las publicaciones de Moyano pero no he podido instalar los controladores, el controlador llega hasta el punto de casi instalarse pero despues el Proteus se cierra y me apaga el computador apareciendome el Famoso "Blue Screen" yo se que us recomendaron montarlo de UNA vez para evitar esos problemas, pero queria dar la guerra ya que deseo simular para acondicionar unas señales de unos sensores de un proyecto de curso, que opinas habra alguna solucion.
 

Adjuntos

  • Sin título.png
    Sin título.png
    19 KB · Visitas: 30
  • Captura.PNG
    Captura.PNG
    70.3 KB · Visitas: 29
Hola Alfredo; la simulacion USB no funciona del todo bien en sistemas operativos de 64 bits una vez consegui simular en windows XP De 32 bits pero no te recomiendo que construyas este DAQ sino el publicado bajo el tema "Algunos proyectos avanzados con microcontroladores PIC" ese funciona genial tiene una excelente resolucion de 10 bits y una buena velocidad de muestreo.. este Daq publicado aqui no funciona del todo bien... saludos

Ver el archivo adjunto 117226

Ver el archivo adjunto 117226
 
Última edición:
Hola. Soy nuevo en el foro.

Necesito de su ayuda.

Requiero hacer un datalogger de luz (lumenes o luxes) que almacene algunas muestras tomadas en la memoria interna y después las transfiera a una base de datos como LabView.
Mi pregunta es: puedo hacer el datalogger por separado mostrando en una lcd los lumenes y en la misma ldr conectar el DAQ que han hecho en este foro y mostrar el comportamiento en labview o c#.



La pagina Sixca no aparece en internet
 
Última edición:
Hola. Soy nuevo en el foro.

Necesito de su ayuda.

Requiero hacer un datalogger de luz (lumenes o luxes) que almacene algunas muestras tomadas en la memoria interna y después las transfiera a una base de datos como LabView.
Mi pregunta es: puedo hacer el datalogger por separado mostrando en una lcd los lumenes y en la misma ldr conectar el DAQ que han hecho en este foro y mostrar el comportamiento en labview o c#.



La pagina Sixca no aparece en internet


<Hola este DAQ no controla LCD habria que modificar el codigo... un mejor DAQ, con labview lo encuentras aqui:

https://www.forosdeelectronica.com/f24/algunos-proyectos-avanzados-microcontroladores-pic-78040/
 
Hola. pretendo hacer 2 circuitos.
1.- Datalogger con cualquier pic que muestre los lumenes en una lcd provenientes de una LDR.
2.- Crear una tarjeta de adquisición de datos que se conecte a la LDR para mandar los datos a la PC.

¿Creen que halla problemas si ambos circuitos están tomando datos de la misma LDR?
 
Hola. pretendo hacer 2 circuitos.
1.- Datalogger con cualquier pic que muestre los lumenes en una lcd provenientes de una LDR.
2.- Crear una tarjeta de adquisición de datos que se conecte a la LDR para mandar los datos a la PC.

¿Creen que halla problemas si ambos circuitos están tomando datos de la misma LDR?

No creo que tengas ningun problema.... sin embargo ¿porque vas hacer con dos PIC lo que puede hacerse con uno solo?
 
Hola. El problema es que no soy bueno programando y no sabría usar los 2 códigos.
De hecho me ha estado ayudando mucho un enlace que dejaron, donde vienen unos cursos con el PIC18F4550.

Muchas Gracias.

Por su amabilidad, les voy a pasar un un programa hecho por un doctor muy apreciable y bueno en la programación de PIC's de mi institución (Doctor Villalobos Piña).
El código es una tarjeta de adquisición de datos por medio del RS-232.

Esperando que les sea de buena utilidad y felicitándolos por su gran ayuda en aprende a usar el PIC18F4550.

También me gustaría que se hiciera una sala de discusión donde sólo se subieran programas y simulaciones con tal PIC para la práctica, así como con el dsPIC30F4011. Saludos.
PHP:
//***************************************************************************************
// PROGRAMA:    Que efectúa al adquisición de datos
// OBJETIVO:    Abir la puerta al tratamiento de señales en control digital
// FECHA:       14  de Febrero 2017
// DISEÑO:      FJVP
//***************************************************************************************

#include <18F4550.h>
#device ADC=8

#FUSES WDT                      //Watch Dog Timer
#FUSES WDT1                     //Watch Dog Timer uses 1:1 Postscale
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES PUT                      //Power Up Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES BORV21                   //Brownout reset at 2.1V
#FUSES VREGEN                   //USB voltage regulator enabled
#FUSES PBADEN                   //PORTB pins are configured as analog input channels on RESET
#FUSES LPT1OSC                  //Timer1 configured for low-power operation
#FUSES MCLR                     //Master Clear pin enabled
#FUSES STVREN                   //Stack full/underflow will cause reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOXINST                  //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOCPB                    //No Boot Block code protection
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOWRTC                   //Configuration registers not write protected
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOWRTD                   //Data EEPROM not write protected
#FUSES NOEBTR                   //Memory not protected from table reads
#FUSES NOEBTRB                  //Boot block not protected from table reads

   //-------- Configuración de la velocida del procesador -------
#FUSES   PLL1                       // Cristal de 12Mhz/3 = 4Mhz de entrada al 
#FUSES   CPUDIV1                    // 96Mhz (del PLL) /2 =48Mhz reloj del sistema
#FUSES   HSPLL                      // Se le dice al programador del chip que usa oscilador primaro derivado del PLL

   //------ Definición de registros de hardware ----
#WORD  OSCCON=getenv("sfr:OSCCON")   
//#WORD OSCCON=0xFD3
#WORD PORTC=getenv("sfr:PORTC")
#BYTE PORTC_L=PORTC
#BIT  LED=PORTC_L.0     //RC0

   //--------- Directiva para generar base de tiempo en el leguanje PICC---
#use delay(clock=48000000,restart_wdt)


   //----sub rutina  para serial


#use RS232(BAUD=9600,XMIT=PIN_C6,RCV=PIN_C7,BITS=8,ERRORS,RESTART_WDT)



   //------- Variables globales-----------
   unsigned char BUF_DAT[500];
   long PUNT,i;
   Boolean BAND_CAP,BAND_LISTO;

   //-------- Subrutina que efectúa el flasheo --------------
void FLASHEO(long TIE)
{
   LED=1;
   delay_ms(TIE);
   LED=0;
   delay_ms(TIE);   
   LED=1;
   delay_ms(TIE);
   LED=0;
   delay_ms(TIE);   
   RESTART_WDT();
   return;
}
   //----- Subrutina de servicio de interrupción del timer 0 ---------
#INT_TIMER0
void INT_SOB_TMR0(void)
{
   LED=~LED;                     // Bit toggle del LED
   if(BAND_CAP)
      {
         if(PUNT<500)
            {
               BUF_DAT[PUNT]=READ_ADC();        // Se captura cada muestra de la señal
               PUNT++;                          // Aumento el puntero
            }
         else
            {
               PUNT=0;
               BAND_LISTO=True;
               BAND_CAP=False;
            }      
      }   
   SET_TIMER0(65535-12000);      // Se obliga a ejectuar 12,000 cuentas que son Fs=1Khz
   RESTART_WDT();
   return;
}

   //--------SUBRUTINA DE USART
   
 #INT_RDA
 
 void INT_REC_SER(void)
 {
 
 unsigned char DATO;
 
    if(kbhit())   // verificar si hay dato disponible en el UART
      {
         DATO=GETC();   //
         //PUTC(DATO);
         if(DATO=='D')
         {     
               //printf("Iniciando captura de frame........ \n\r");
               PUNT=0;
               BAND_CAP=True;
         }
         
         else
         {
            PUNT=0;
            //printf("Comando no valido........... \n\r");
            BAND_CAP=False;
         
         }
      }
   RESTART_WDT();
   return;
 }
   
   
   //------- Subrutina que inicializa el procesador ---------
void INI_CPU(void)
{
   OSCCON=0;    
   SET_TRIS_A(0xFF);          //RA0 Generador de señales
   SET_TRIS_B(0xFF);
   SET_TRIS_C(0B10111110);    //RC0.-LED, RC6.-TX,RC7.-RX
   SET_TRIS_D(0xFF);
   SET_TRIS_E(0xFF);
   SETUP_TIMER_0(T0_INTERNAL|T0_DIV_1);
   SET_TIMER0(65535-12000);               // Se obliga a ejectuar 12,000 cuentas que son Fs=1Khz
   SETUP_ADC(ADC_CLOCK_INTERNAL);
   SETUP_ADC_PORTS(ALL_ANALOG);
   SET_ADC_CHANNEL(0);              //Se configura para leer RA0
   ENABLE_INTERRUPTS(INT_TIMER0);
   ENABLE_INTERRUPTS(INT_RDA);        //INTERRUPCION RECEPCION SERIAL
   ENABLE_INTERRUPTS(GLOBAL);      
   RESTART_WDT();
   return;
}
   //--- Cuerpo de programa principal ------
void main()
{
   INI_CPU();        // Llamada a inicializar el procesador
   FLASHEO(100);     // Llamada a una subrutina que efectúa un flasheo de un led

   BAND_CAP=False;
   
   while(TRUE)
   {
      if(BAND_LISTO)
      {
      
         for(i=0;i<500;i++)
         {
            //printf("Dato No.%ld=%X \n\r",i,BUF_DAT[i]);
            printf("%X",BUF_DAT[i]);
            RESTART_WDT();
         }
            
         BAND_LISTO=False;   
      }
      RESTART_WDT();
   }

}



Hola. Tengo 2 preguntas.
1.- ¿Qué función tiene el puente que está entre el capacitor y el terminal-block?
2.- Cuando quiero instalar el driver en LabView me aparece una contraseña. ¿Cómo se lo instalo?

Saludos.
 
Última edición por un moderador:
Hola. Ya pude hacer la interfaz con el DAQ HID. Pero no se porque me da muchas oscilaciones como si tuviera mucho ruido. Seria bueno que mandaran un ejemplo de adquisición de datos de un potencio-metro o una foto-resistencia. Ya probé las entradas analógicas a tierra y el tl084 pero continúan las oscilaciones. Con cualquier entrada analógica que use oscilan las otras en el LabView y en el AN4 hace conteo con solo poner un cable. Alguien que pueda ayudarme?
 
Atrás
Arriba