Algunos proyectos avanzados con microcontroladores PIC

#21
con que metodo pudiste solucionar lo de las entradas de referencia desde la computadora, para configurarlo en tiempo real, yo tenia pensado mandar un caracter desde labview y en el programa del pic poner un if en cual estuviera la configuracion de las entradas analogas toy en lo correcto tu dime??
Asi mismo lo hice yo,, todo quedo funcionando bien:apreton:
 
#22
gracias amigo, oye una pregunta al mandar datos de entradas analogicas a labview me llegan las señales en este caso 3, pero me llegan con ruido en un rango de 0 a 5 voltios me varia como .2 voltios no sabes alguna forma de implementar un filtro en labview o algo parecido esto con el fin de no poner filtros por hadware, sino directamente por software y asi ahorrar dinero en cuanto a la targeta....
 
#23
gracias amigo, oye una pregunta al mandar datos de entradas analogicas a labview me llegan las señales en este caso 3, pero me llegan con ruido en un rango de 0 a 5 voltios me varia como .2 voltios no sabes alguna forma de implementar un filtro en labview o algo parecido esto con el fin de no poner filtros por hadware, sino directamente por software y asi ahorrar dinero en cuanto a la targeta....
el ruido puede darse porque los pines analogicos vecinos no estan puestos a tierra, si unicamente utilizas 3 señales analogicas, coloca a tierra los demas.

en labview hay filtros digitales para eliminar ruido. tambien national instrument ofrece de venta un paquete (ADD ON) llamado DSP and digital design.. que es algo costoso y por ello no lo he comprado. saludos!!
 
#24
No creo que ese sea el problema amigo ya que estoy ocupando todos los pines del pic18f2550 es decir ocupo 3 entradas analogas, y las demas del puerto a las ocupo como entradas digitales aterrizadas a tierra, talves seria interesante lo de los filtros digitales en labview pero como dices son muy caros creo que tendre que optar por filtros en el hadware talves no habra de otra... muchas gracias por el consejo amigo
 
#25
ya lo tengo solucionado esto de las señales analógicas, también cambie el proyecto para hacerlo funcionar con el PIC18f4550... finalmente quedo asi:

6 entradas analógicas
2 entradas de referencia
8 entradas digitales
8 salidas digitales
3 salidas PWM (ideal para leds RGB)
1 Contador

gracias por el consejo wansi (y)
Hola Dino, podrias subir como te quedó finalmente con el pic18f4550, es que he tenido problemas para pasarlo del 18f2550 al 4550...
 
#26
Hola Dinoelectro antes que nada te agradezco por el proyecto, me ha servido de mucho. Por otro lado, quisiera saber como puedo agregar mas salidas o entradas digitales al daq?... debido a que necesito un numero mayor para una aplicación. He venido usando el daq de tu propuesta inicial con 4 salidas y me ha ido de maravilla y quisiera tener más de ellas para un proyecto en especifico, como en tu segunda propuesta por lo menos, Si fueras tan amable de subir el .Hex del pic y la nueva disposición de los pines de tu mejora, o en todo caso que tendría que modificar para lograr un numero mayor de salidas o entradas. Muchas gracias, de antemano. :)
 
#27
Hola Dinoelectro antes que nada te agradezco por el proyecto, me ha servido de mucho. Por otro lado, quisiera saber como puedo agregar mas salidas o entradas digitales al daq?... debido a que necesito un numero mayor para una aplicación. He venido usando el daq de tu propuesta inicial con 4 salidas y me ha ido de maravilla y quisiera tener más de ellas para un proyecto en especifico, como en tu segunda propuesta por lo menos, Si fueras tan amable de subir el .Hex del pic y la nueva disposición de los pines de tu mejora, o en todo caso que tendría que modificar para lograr un numero mayor de salidas o entradas. Muchas gracias, de antemano. :)
bueno aqui dejo el .hex + un ejemplo en labview para hacer funcionar el daq mejorado, saludos!!!
 

Adjuntos

#29
esta ultima actualizacion te quedo de 10 amigo yo estuve aciendo algo parecido pero con el pic18f2550 , mi problema fue al meter mas de 3 entradas analogas ya no respondian bien no podrias poner tu codigo fuente para ver como introduces las 8 entradas analogas... desde pic ccs saludos y gracias
 

SKYFALL

Well-known-007
#31
Muy buenos tus proyectos dinoelectro, recientemente he trabajado con microprocesadores microchip e investigado sobre micros motorola y he seguido tu trabajo muy de cerca y me parecen muy completos, gracias por tus aportes.
 
#32
Aqui tienen el codigo companeros, como ven no es nada complicado.. unos cuantos FOR y un WHILE(TRUE)... nada del otro mundo :D

Código:
////////////////////////////////////////////////////////////////////////////////
// daq USB 
// Caracteristicas:
//                8 entradas analogicas AN0:AN7
//                8 entradas digitales  RB0:RB7
//                8 salidas digitales   RD0:RD7
//                2 salidas PWM         RC1 y RC2 
//                1 entrada contadora   RA4
// Author:Raul Barreto Quinteros
////////////////////////////////////////////////////////////////////////////////
#include <18F4550.h>
#DEVICE ADC=8
#fuses HSPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#include <pic18_usb.h>     
#include "usb_desc_scope.h"  
#include <usb.c>
#use fast_io(b)
////////////////////////////////////////////////////////////////////////////////
int8  datoRX[8];                 
int8  datoTX[10];
int8  count=0;
void main(void) 
{
   port_b_pullups(true);
   setup_port_a(AN0_TO_AN7);
   setup_adc(ADC_CLOCK_INTERNAL); 
   setup_timer_0 (RTCC_EXT_H_TO_L);
   set_timer0(0);
   setup_timer_2(T2_DIV_BY_1, 127, 1);
   set_pwm1_duty(0);
   set_pwm2_duty(0); 
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);  
   set_tris_a(0b11111111);     
   set_tris_b(0b11111111);               
   set_tris_c(0b00000000);
   set_tris_d(0b00000000);
   output_c(0b00000000);
   output_d(0b00000000);
   usb_init();
   delay_ms(50);
   while (TRUE)
   {
      if(usb_enumerated())         
      {
         if (usb_kbhit(1))          
         {  
         usb_get_packet(1,datoRX,3);
         set_pwm1_duty(datoRX[0]);
         set_pwm2_duty(datoRX[1]);
         output_d(datoRX[2]);
         }
         for(count=0;count<8;count++)
         {
         set_adc_channel(count);
         delay_us(10);
         datoTX[count]=read_adc();
         }
         datoTX[8]=get_timer0();
         datoTX[9]=input_b();
         usb_put_packet(1,datoTX,10,USB_DTS_TOGGLE);  
      }
   }
}
 
#33
Gracias por compartir el codigo amigo y a lo que veo mi error proviene de labview no de ccs ya que cuando añadi mas entradas analogas lo realice de forma similar es decir nomas agregarle mas iteraciones al for para que añada mas entradas analogas el problema a lo que veo proviene de labview ya que se hace medio lento e inexacto las entradas analogas analizare a fondo la libreria dll de microchip me imagino que ahi esta el error esque te comento que estoy trabajando con un sub vi propio no el de usb bulk.... y gracias por compartir amigo
 
#36
jajajaja resulta mucho mas económico que comparte el DAQ que ofrece national instruments..

ademas este tiene muy buen desempeño, y el costo no sobrepasa los 20 dolares... saludos!!
ese microprocesador es muy dificil de conseguirlo por aca pero por internet talvez puedo intentar pero no tengo nada de confianza en ese tipo de transacciones comerciales :D:apreton:
PD: Hasta el conector hembra de usb no lo venden aca tendria que buscar uno de alguna otra placa(reciclarlo)
 
Última edición:
#37
Muy buen trabajo Dinoelectro, en realidad me animare a realizar tu proyecto, pero me gustaría saber que materiales son los que necesito para el montaje, podrías darme una lista breve?, y me podrías decir bien como van las conexiones?
 
#40
Hola.
En primer lugar te felicito por tu trabajo y por compartirlo con la comunidad.
Estoy siguiendo paso a paso el proyecto, y he analizado el anterior también...
Acabo de soldar los componentes del circuitoy grabajo en el pic en "daqBULK18F4550.hex", pero sucede que al poner el pic en el zócalo de la placa y conectarle el cable USB desde la PC no hace nada, ni prende la luz (led) que sí enciende cuando no está puesto el pic.
Tienen idea por donde tengo que revisar? Verifico el circuito y parece estar bién...
Gracias.
 
Arriba