# Algunos proyectos avanzados con microcontroladores PIC



## dinoelectro (Jun 21, 2012)

Hola amigos.. despues de haber estado un tiempo apartado del foro he regresado con mayor entusiasmo para seguir colaborando con la comunidad. 

en esta vez aportare un sistema de adquisicion de datos (DAQ) que utiliza el metodo Bulk Transfer para comunicarse con el PC, las caracteristicas son las siguientes:

4 Entradas analogicas pines AN0, AN1, AN2, AN3, AN4 
4 Entradas digitales pines RB0, RB1, RB2, RB3
4 Salidas digitales pines RB4, RB5, RB6 y RB7
2 Salidas PWM pines RC1 y RC2
1 Contador pin RA4
todas las variables tienen una resolucion de 8 bits

* 	Funcionamiento:

Para hacer funcionar este DAQ se debe grabar el archivo daqBulk. hex en el microcontrolador 18F2550 y ponerlo a trabajar con un cristal de 20Mhz; como hardware puede utilizarse la tarjeta pinguino 

todo lo necesario incluyo en el archivo... 

Agradecimiento especial a Mariano Nicolau, por su excelente aporte a la comunidad de electronicos www.forosdeelectronica.com


----------



## mnicolau (Jun 23, 2012)

Excelente proyecto compañero 

Saludos


----------



## Moyano Jonathan (Jun 27, 2012)

Te ha quedado buenísimo el proyecto, felicitaciones !


----------



## dinoelectro (Jun 28, 2012)

gracias moyano,.. te comento que ahora estoy trabajando en un datalogger con PIC 18F4550, espero tender algo concreto para postearlo.. saludos


----------



## Dano (Jul 16, 2012)

Excelente trabajo, muy prolijo y la interfaz del software tiene linda pinta.

Saludos.


----------



## 3boomer (Ago 5, 2012)

hola excelente el proyecto mas bine tengo algunas duda esto que version de labview usaste y donde esl codigo ccs del pic 18f2550 para tomarlo como base  porfa si puedes postearlo


----------



## dinoelectro (Ago 6, 2012)

HOla boomer, la version de labview es 2010.. para escribir el firmware utilice PIC CCS V4.114 y me base en el codigo de Mariano Nicolau que esta posteado en el siguiente link:

https://www.forosdeelectronica.com/f26/aporte-interfaz-control-usb-bulk-labview-c-76934/


----------



## chapin (Ago 9, 2012)

excelente trabajo gracias  por compartir.


----------



## SERGIOD (Ago 9, 2012)

Como dice en el titulo esto ya es mas avanzado; un intrigante e interesante mundo en el cual echare un vistazo gracias por subir tus proyectos son muy interesantes


----------



## Puncx (Sep 6, 2012)

dinoelectro dijo:


> HOla boomer, la version de labview es 2010.. para escribir el firmware utilice PIC CCS V4.114 y me base en el codigo de Mariano Nicolau que esta posteado en el siguiente link:
> 
> https://www.forosdeelectronica.com/f26/aporte-interfaz-control-usb-bulk-labview-c-76934/



Hola que tal Dino, he intentado basarme en el codigo de Mariano para agregar mas entradas y salidas, para el pic 18f4550, pero no he tenido exito, podrias prestarme tu codigo fuente?.. para basarme en el?


----------



## dinoelectro (Sep 8, 2012)

ok.. aquí esta el código compañeros, espero que lo mejoren.. y publiquen sus avances

saludos!


----------



## dinoelectro (Sep 10, 2012)

a continuación una lista de las mejoras que deseo incluir:


Que los pines del puerto B y D sean configurables como entradas o salidas 
Que los canales analogicos puedan configurarse para tener un voltaje de referencia
Que los canales analogicos sean de 12 bits
que las señales PWM sean de 10 bits

me ayudan?


----------



## wansi (Sep 10, 2012)

Si cambiamos la linea habilitando todos los analogicos del puerto A, se configura automaticamente para obligatoriamente tener una entrada de referencia..

setup_port_a( ALL_ANALOG );

O si se desea tener una entrada interna:

setup_adc_ports( AN0_TO_AN1 | VSS_VDD);

Adjunto una imagen utilzando un lm35 para entrada de analogica utilizando una entrada de referencia (vss en este caso).. no se si era este tu punto 2.. Saludos Dinoelectro


----------



## dinoelectro (Sep 11, 2012)

Asi es wansi, lo que estoy pensando es; hacer que mediabnte un comando enviado desde el PC podamos cambiar la referencia.. tengo entendido que hay cuatro opciones

setup_adc_ports(xxx | VSS_VDD);   // rango de 0 a VDD
setup_adc_ports(xxx | VSS_VREF);  // rango de 0 a VREF
setup_adc_ports(xxx | VREF_VDD);  // rango de VREF a VDD
setup_adc_ports(xxx | VREF_VREF); // rango de VREF1 a VREF2

aunque eso signifque sacrificar las entradas analogicas AN2 Y AN3..

SALUDOS!!


----------



## wansi (Sep 11, 2012)

Ah ok, entiendo, un modo "configuración" en tiempo real... Es cierto se sacrificarían esos pines, convendría adquirir un f4550 con 3 analógicos extras... y esta muy buena la idea, en el primer momento se me ocurrió utilizar 2 pic's, un maestro y un esclavo, pero sin duda, no es por nada lo ideal ni la mejor opción..


----------



## ULQUIORA3 (Sep 14, 2012)

podrian ayudarme, qusiera hacer la targeta mencionada pero tengo una duda una ves que meta la señal analoga de los sensores como le puedo hacer para visualizarla enla computadora.
si no es mucha molestia podrias postear una liztade los materiales nesesarios y un diagrama de como estan conectados


----------



## dinoelectro (Sep 14, 2012)

ULQUIORA3 dijo:


> podrian ayudarme, qusiera hacer la targeta mencionada pero tengo una duda una ves que meta la señal analoga de los sensores como le puedo hacer para visualizarla enla computadora.
> si no es mucha molestia podrias postear una liztade los materiales nesesarios y un diagrama de como estan conectados



El Hardware es muy simple, solo necesitaras unos pocos componentes sencillos de conseguir en las tiendas de electronica.. investiga en que consiste PINGUINO para microcontroladores PIC, y te daras cuenta de como van las conexiones..

para ver las señales em el computador puedes utilizar cualquier lenguaje de programacion como C Visual Basic LabVIEW... adjunté un ejemplo fijate bien

web recomendada:

http://www.hackinglab.org/pinguino/index_pinguino.html

saludos!!





wansi dijo:


> Ah ok, entiendo, un modo "configuración" en tiempo real... Es cierto se sacrificarían esos pines, convendría adquirir un f4550 con 3 analógicos extras... y esta muy buena la idea, en el primer momento se me ocurrió utilizar 2 pic's, un maestro y un esclavo, pero sin duda, no es por nada lo ideal ni la mejor opción..




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


----------



## wansi (Sep 23, 2012)

dinoelectro dijo:


> ya lo tengo solucionado esto de las señales analógicas, también cambie el proyecto para hacerlo funcionar con el PIC18f4550...



Como hiciste lo de las señales analogicas?

Como te quedo entonces finalmente el programa?

Saludos


----------



## dinoelectro (Sep 24, 2012)

adjunto alguna informacion de como va quedando, ya publicare mas detalles en los dias venideros, dependiendo del tiempo que disponga, saludos!!, wansi


----------



## GNM (Nov 19, 2012)

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??


----------



## dinoelectro (Nov 20, 2012)

GNM dijo:


> 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


----------



## GNM (Nov 20, 2012)

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....


----------



## dinoelectro (Nov 21, 2012)

GNM dijo:


> 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!!


----------



## GNM (Nov 23, 2012)

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


----------



## Puncx (Dic 3, 2012)

dinoelectro dijo:


> 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
> ...



Hola Dino, podrias subir como te quedó finalmente con el pic18f4550, es que he tenido problemas para pasarlo del 18f2550 al 4550...


----------



## jarc344 (Dic 25, 2012)

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.


----------



## dinoelectro (Ene 2, 2013)

jarc344 dijo:


> 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!!!


----------



## dinoelectro (Ene 2, 2013)

a continuacion dejo algunas imagenes.. a ver si se animan a construirlo:


----------



## GNM (Ene 2, 2013)

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


----------



## dinoelectro (Ene 6, 2013)

ok uno de estos dias lo subo...


----------



## SKYFALL (Ene 6, 2013)

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.


----------



## dinoelectro (Ene 8, 2013)

Aqui tienen el codigo companeros, como ven no es nada complicado.. unos cuantos FOR y un WHILE(TRUE)... nada del otro mundo 


```
////////////////////////////////////////////////////////////////////////////////
// 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);  
      }
   }
}
```


----------



## GNM (Ene 11, 2013)

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


----------



## SERGIOD (Ene 12, 2013)

dinoelectro dijo:


> a continuacion dejo algunas imagenes.. a ver si se animan a construirlo:



Yo me animo pero el problema de tiempo y dinero me deja en los suelos


----------



## dinoelectro (Ene 12, 2013)

SERGIOD dijo:


> Yo me animo pero el problema de tiempo y dinero me deja en los suelos



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!!


----------



## SERGIOD (Ene 13, 2013)

dinoelectro dijo:


> 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 
PD: Hasta el conector hembra de usb no lo venden aca tendria que buscar uno de alguna otra placa(reciclarlo)


----------



## Shadraziel (Ene 23, 2013)

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?


----------



## dinoelectro (Ene 23, 2013)

Aqui tienes el circuito basico para hacer funcionar el DAQ... saludos!!


----------



## Shadraziel (Ene 25, 2013)

dinoelectro dijo:


> Aqui tienes el circuito basico para hacer funcionar el DAQ... saludos!!



Muchísimas gracias por tu respuesta, apenas tenga el circuito hecho te lo muestro y me das tu aprovacion 

De nuevo muchas gracias y excelente proyecto!


----------



## Gnewton (Feb 27, 2013)

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.


----------



## dinoelectro (Feb 28, 2013)

no se q*ue* pueda estar pasando, tal-ve*z* tengas un problema con el hardware, ármalo en protoboard.. para *z*afarte de dudas.


----------



## lucaspascual135 (Mar 6, 2013)

buenos días, creo q*ue* me estoy perdiendo un poco de ir de un foro a otro jajaj, me gustaría saber si pudieron hacer funcionar las entradas analógicas con resolución de 10 bits. saludos


----------



## dinoelectro (Mar 6, 2013)

para hacer que las entradas analogicas tengan resolucion de 10 bits, tienes que cambiar la instruccion 

ADC8 por ADC10

el codigo tanto en el PIC como en labview cambia algo,... fijate en el post de Mariano Nicolau

https://www.forosdeelectronica.com/f26/interfaz-control-pics-usb-bulk-labview-c-76934/


----------



## Shadraziel (Mar 16, 2013)

Hola Dinoelectro, te cuento que ya realize el proyecto, pero como tengo win8, no me reconoce el dispositivo, solo sale con el nombre de "dinoelectro", quisiera saber si tu sabes donde puedo conseguir el driver para win7 o para win 8.
Mil gracias de antemano!


----------



## dinoelectro (Mar 17, 2013)

el driver que publiqué anteriormente es compatible con WIN7 sea de 32 o 64 bits,  con WIN8 no lo he probado todavía,... tal-vez encuentres una nueva versión del driver en:

www.microchip.com

si consigues una nueva version del driver asegurate que el VID y PID sean los correctos VID=0x4D8 y PID 0x010. modifica el archivo mchpusb.inf


```
;------------------------------------------------------------------------------
;  Vendor and Product ID Definitions
;------------------------------------------------------------------------------
; When developing your custom USB device, the VID and PID used in the PC side
; application program and the firmware on the microcontroller must match.
; Modify the below line to use your VID and PID.  Use the format as shown below.
; Note: One INF file can be used for multiple devices with different VID and PIDs.
; For each supported device, append ",USB\VID_xxxx&PID_yyyy" to the end of the line.
;------------------------------------------------------------------------------
[DeviceList]
%DESCRIPTION%=DriverInstall, USB\VID_04D8&PID_0010
 
[DeviceList.ntamd64]
%DESCRIPTION%=DriverInstall64, USB\VID_04D8&PID_0010
```


----------



## Gnewton (Mar 21, 2013)

Bueno, finalmente encontré el problema. 
Como bién dijiste era el hardware: había un "pelito" de cobre que se ponía en corto, pero ya está arreglado.
Grabé el .hex en el PIC y lo probé con otro programita que encendía un led externo y funciona bién, pero al conectar la plaquita al USB de la computadora (WinXP) no hace nada. 
Tengo que instalar el driver antes de conectarlo o debería reconocerla?
Gracias. 
Saludos,


----------



## dinoelectro (Mar 22, 2013)

Gnewton dijo:


> Bueno, finalmente encontré el problema.
> Como bién dijiste era el hardware: había un "pelito" de cobre que se ponía en corto, pero ya está arreglado.
> Grabé el .hex en el PIC y lo probé con otro programita que encendía un led externo y funciona bién, pero al conectar la plaquita al USB de la computadora (WinXP) no hace nada.
> Tengo que instalar el driver antes de conectarlo o debería reconocerla?
> ...



Al conectar la tarjeta debería aparecer el mensaje: Nuevo Hardware encontrado. seguidamente tu debes indicar la carpeta donde se encuentra el driver.

si no te aparece el mensaje ve al administrador de dispositivos y busca la opción para detectar dispositivos Plug And Play, luego sigue las instrucciones.

Suerte!


----------



## pachr (Abr 6, 2013)

*dinoelectro* tengo problemas para correr el labview

me sale q*UE* el subvi no se puede ejecutar, ya realice la daq y ya la reconoce mi pc, pero el labview no corre


----------



## dinoelectro (Abr 7, 2013)

puede ser la version de labview, te comento que yo utilizo la del 2010.
 apenas tenga un poco de tiempo subo el subvi para versiones anteriores. saludos!


----------



## pachr (Abr 7, 2013)

Tengo la versión 2011 de 64 bits. y trabajo con w7 de 64bits
imagen 23 me sale al abrir el demo
imagen 24 al correr el subvi
¿hay alguna librería q*ue* tendría q*ue* descargarme o un toolkit q*ue* instalar?

Bueno en todo caso la versión menor q*ue* tengo de labview es la de 2009 pero de 32bits



cuento con esta libreria mpusbapi.dll, q me pide al correr el demo, la cargo y me abre el labview pero me salen esos errores q muestro en las imagnes del Desktop.rar


----------



## dinoelectro (Abr 8, 2013)

yo utilizo WIN7 de 64 bits y ademas tengo instalado las librerias USB de microchip. el subvi llama a las funciones de la libreria mchpapi.dll que debe estar en la misma carpeta donde se encuentra el subVI.

en realidad no entiendo bien como trabaja el subVI, en todo caso puedes preguntarlo a Mariano Nicolau es quien la programo.

existe otro subVI que también te puede ser útil, se llama PICUSB, me lo descargue de una pagina de Internet pero recuerdo la dirección.

saludos!


----------



## pachr (Abr 8, 2013)

Estas son las librerías q*ue* se necesitan
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en547784
Descargo tanto el primer como segundo cuadro, ¿y donde tengo q*ue* instalar las librerías?
Estoy algo perdida en eso.


----------



## Gnewton (Abr 9, 2013)

Hola. 
Aunque estuve leyendo por todos lados, probando con varios .hex y revisando reiteradamente el circuito, no logro encontrar el problema de porque no me reconoce el WinXP al conectar la placa.
Lo mas cerca que estuve fue con el "daqBULK18F4550.hex" que al conectar la placa al USB no apareció nada de "Nuevo hardware encontrado...", pero si apareció en el Administrador de dispositivos así:

http://imageshack.us/photo/my-images/210/dispositivos.jpg/

Esto supongo porque antes había intentado instalar el driver...
El error dice: "Este dispositivo no puede iniciar. (Código 10)."

La placa tiene este diagrama, con la única diferencia que el capacitor electrolítico del pin 18 es de 4,7uF en lugar de 470uF (influirá este cambio?):

http://imageshack.us/photo/my-images/18/diagramapi.jpg/

Revisé con el tester que el conector USB tenga continuidad con los pines 23 y 24 como indica el diagrama. Que al pin 1 le llegue 5V, y al presionar el pulsador se vaya a 0V.
Todo parece estar bién, pero obviamente algo no lo está porque sino funcionaría como se indicó en este post.

Lo único que no pude probar el compilar el código yo mismo, pero para eso necesitaría el código fuente en mikroC o mikroBasic, si alguien lo tiene se lo agradezco.

Bueno, gracias nuevamente por la ayuda y cualquier consejo será bienvenido.
Saludos,


----------



## Anagram (Abr 9, 2013)

Hola buen día desde México.
Gracias por tu Aporte, solo queria compartir el diseño que realice por medio de KICAD, espero sirva de alguna ayuda =D.
Algunos pantallazos del modelo.

http://imageshack.us/photo/my-images/705/daq1.png/
http://imageshack.us/photo/my-images/28/daq2.png/
http://imageshack.us/photo/my-images/24/daq3.png/

Les dejo el enlace de los ficheros =D 
Saludoshttp://www.mediafire.com/?6cr2qp914n87d6u


----------



## dinoelectro (Abr 9, 2013)

Gnewton dijo:


> Hola.
> Aunque estuve leyendo por todos lados, probando con varios .hex y revisando reiteradamente el circuito, no logro encontrar el problema de porque no me reconoce el WinXP al conectar la placa.
> Lo mas cerca que estuve fue con el "daqBULK18F4550.hex" que al conectar la placa al USB no apareció nada de "Nuevo hardware encontrado...", pero si apareció en el Administrador de dispositivos así:
> 
> ...




talvez si vuelves a grabar el microcontrolador corrijas los problemas,.. no veo ningun error en el hardware y no influye en nada el capacitor.  recuerda que al generar nuevamente el hex debes indicar al driver el PID y VID del dispositivo.

si quierres compilar el codigo necesitaras PIC CCS (no mickro C)



pachr dijo:


> Tengo la versión 2011 de 64 bits. y trabajo con w7 de 64bits
> imagen 23 me sale al abrir el demo
> imagen 24 al correr el subvi
> ¿hay alguna librería q*ue* tendría q*ue* descargarme o un toolkit q*ue* instalar?
> ...



de momento se que que con labview de 64 bits no funciona el SUBVI. prueba con labview de 32 bits aun cuando este instalado en win 7 de 64 bits



Anagram dijo:


> Hola buen día desde México.
> Gracias por tu Aporte, solo queria compartir el diseño que realice por medio de KICAD, espero sirva de alguna ayuda =D.
> Algunos pantallazos del modelo.
> 
> ...



Gracias Anagran, valoro mucho tu aporte!!


----------



## pachr (Abr 9, 2013)

así es tiene q*ue* ser labview de 32 bits, ya corre el labview

con respecto al daqBULK18F4550.hex ami si me reconoció, pero como andaba con problemas del labview borre el driver y se desconfiguró todo, y ya no lo reconocía, intenta grabar nuevamente el pic, lo debe de reconocer como dinoelectro en tu compu*tadora*


----------



## Gnewton (Abr 9, 2013)

dinoelectro dijo:


> talvez si vuelves a grabar el microcontrolador corrijas los problemas,.. no veo ningun error en el hardware y no influye en nada el capacitor.  recuerda que al generar nuevamente el hex debes indicar al driver el PID y VID del dispositivo.



Volví a grabar el microcontrolador por medio del Pickit2, importando el hex y grabándolo simplemente.
A qué te referís con indicar al driver el PID y VID? Esos datos los verifiqué en el driver, pero entendía que ya estaban en el código .hex que grabo en el microcontrolador, no hay que agregarlo en algún lado? Si es así, ahí debe estar el problema, pero no me doy cuenta donde...
Gracias por la ayuda. Me voy acercando al éxito, jeje. 
Saludos,


----------



## pachr (Abr 10, 2013)

cuando te salga una nube abajo le das clci y seleccionas configurarlo manualmente y ahi buscaas el driveer y los instalas


----------



## dinoelectro (Abr 11, 2013)

Gnewton dijo:


> Volví a grabar el microcontrolador por medio del Pickit2, importando el hex y grabándolo simplemente.
> A qué te referís con indicar al driver el PID y VID? Esos datos los verifiqué en el driver, pero entendía que ya estaban en el código .hex que grabo en el microcontrolador, no hay que agregarlo en algún lado? Si es así, ahí debe estar el problema, pero no me doy cuenta donde...
> Gracias por la ayuda. Me voy acercando al éxito, jeje.
> Saludos,



olvídate del VID/PID.. eso seria necesario solo si volvieras a compilar el programa, Pero si solo grabas el .hex en el microcontrolador lo que debes hacer es indicar la carpeta donde esta el driver cuando te aparezca el mensaje de nuevo hardware encontrado


VID/PID es un numero único que identifica al dispositivo USB (asi como la cedula en las personas)


----------



## Gnewton (Abr 17, 2013)

Hola a todos nuevamente!
Al final, luego de estar a punto de volverme loco por no encontrar el problema, llegué a conseguir otro PIC, ya que el único que tenía lo había pasado al protoboard para probar un circuito alternativo y al ponerlo en la placa que hice y conectarlo a la PC anduvo perfectamente!! 
O sea, el problema era el PIC! Y eso que lo había probado encendiendo algunos leds, pero al parecer no funcionaban bién los pines 23 y 24 que son los que se conectan al USB.
Gracias a todos por los consejos... ahora a seguir con la etapa de software.

A propósito, hay algún código básico, disponible en Visual Basic para controlar el DAQ?

Saludos!


----------



## dinoelectro (Abr 18, 2013)

suele pasar,... para comunicar con basic, debes incluir en la misma carpeta donde se encuentra el ejecutable la libreria mpusbapi.dll, ademas trabaja con el framework 2... 

revisa esta web hay informacion acerca de como hacer interface entre VB6 o VB.net y MPUSABPI.net
http://comvcon.blogspot.com/search/label/Using MPUSBAPI.DLL
suerte!!


----------



## Gnewton (Abr 28, 2013)

Hola nuevamente, Dinoelectro. 
Te consulto unas dudas básicas, para ver si estoy en lo cierto...
Hasta el momento tengo la placa funcionando bién, ya que aparece en el Administrador de dispositivos de Windows XP correctamente. Solo le grabé en el PIC el "daqBULK18F4550.hex" de tu autoría.

Ahora bién, si no entiendo mal, este ".hex" solo hace la comunicación con la PC, verdad?
Suponto que para poder, por ejemplo, encender un led desde Visual Basic, antes necesito agregar el código correspondiente al PIC que lo interprete. 
Sobre esto, mi duda es como grabar en el PIC sin "pisar" lo que ya está. En otro proyecto que hice donde grababa un PIC conectado por medio de un MAX232 al pueto serie, usaba el PIC_downloader, pero no se si puedo usarlo a través del puerto USB, ya que no me parece que le asigne un puerto "COM", o si...?
Bueno por el momento esas son mis dudas, pero seguramente volveré con mas luego, jeje.

Gracias como siempre por tu valiosa ayuda. 
Saludos,


----------



## dinoelectro (Abr 28, 2013)

hola gnewton, .. no necesitas hacer ningun cambio en el PIC...no necesitas reprogramar el PIC para hacer interface con visual basic u otro lenguaje. te explico;

*el PIC recibe tres Bytes desde el computador*

el Byte0 Controla PWM1
el Byte1 Controla PWM2
el Byte2 Controla las salidas digitales (estas te pueden servir para encender un LED)

*Asimismo el PIC envia 10 Bytes al computador *

Byte 0---7 corresponde a las entradas analogicas
Byte 8 corresponde al contador por pin RA4
Byte 9  corresponde al estado de las entradas digitales

----------------------------

revisa el programa que subi en labview y con todo yo te voy a subir otro ejemplo de como controlarlo con Visual Basic.net, la proxima semana..

Saludos!!


----------



## antonio12345 (May 8, 2013)

hola dinoelectro ante todo gracias por este aporte,ahora he instalado el driver y me reconoce la trajeta pero al momento de usar el ejemplo que publicaste en labview,la pc se me reinicia,yo estoy simulando la tarjeta en proteus 7.7 sp2 y tengo win 7 32bits 
espero tu pronta respuesta 
gracias


----------



## dinoelectro (May 8, 2013)

antonio12345 dijo:


> hola dinoelectro ante todo gracias por este aporte,ahora he instalado el driver y me reconoce la trajeta pero al momento de usar el ejemplo que publicaste en labview,la pc se me reinicia,yo estoy simulando la tarjeta en proteus 7.7 sp2 y tengo win 7 32bits
> espero tu pronta respuesta
> gracias



Aparece una pantalla azul y luego reinicia el PC, eso siempre ocurre cuando simulas en proteus.. no te fíes de la simulación USB no es confiable. lo mejor es que pruebes con el hardware real no te dará ningún problema. 

gnnewton.. uno de estos dias subo el ejemplo en VB... las ocupaciones no me han permitido subir y no tengo a mano el archivo

saludos!


----------



## antonio12345 (May 9, 2013)

gracias por responder,como dijiste arme el hardware en real y si lo reconoce y todo,pero necesito de tu ayuda.Estoy implementador el control proporcinal integral de la velocidad de un faja transportadora para uncurso de control,para ello pienso tomar datos de la revoluciones por minuto de motor en funcion de voltaje de entrada y asi calcular la funcion de transferencia de la planta ,que en este caso seria el motor,estoy usando uncircuitos con un led infrarojo y foto transistor mas un encoder que que me da de salida un sanl de pulsos cuadrados y quisiera que el pin RA4 de la DAQ los cuente, estoy usando un motor dc de 24v y un lm293,y y quiero controlar al motor con la salida pwm de la daq,

espero que me puedas ayudar con la interfaz en labview ,gracias


----------



## antonio12345 (May 13, 2013)

Hola dinoelectro.
¿Cómo puedo contar pulsos con la daq?, ya que deseo medir la velocidad de un motor,
y uso un encoder que me da de salida una serie de pulsos cuadrados.
Ya conseguí contar los pulsos con u*n* pic 16f628a y mo*s*trar la velocidad en revoluciones por minuto.
Para ello use la función count de picbasicpro, ah*o*ra intento hacer lo *m*ismo, con la daq que aportaste.
¿Quisiera saber como puedo usar un en*t*rada digital, o la entrada contadora para *obt*ener un dato de las revoluciones por cada segundo q*u*e transcurre?

Deseo hacer esta toma de datos para hallar la fun*c*ión de transferencia con matlab,
así que espero que me puedas ay*u*dar c*o*n el programa en labview, ¿o debo hacer otra programación para el pic?

Espero tu respuesta


----------



## dinoelectro (May 24, 2013)

Hola antonio, si deseas contar pulsos con el DAQ, debes ingresar una onda cuadrada por el PIN RA4.  
sin embargo el contador no es tan veloz como para contar las revoluciones de un motor..

Saludos!


----------



## tercek (May 24, 2013)

Hola dinoelectro
un favor si podrias resubir la libreria MPUSBAPI.DLL. para windows 7 ya que le he estado buscando
pero no la encuentro porfavor y de antemano se agradece tu trabajo gracias



otra pregunta 
necesito tener el software de pinguino para que funcione o es una daq independiente de la pinguino agradesco tu atencion gracias


----------



## dinoelectro (May 28, 2013)

aqui dejo algunas actualizaciones del proyecto daq con *PIC18F2550*. entre las carpetas esta el mpusbapi.dll
graba el archivo PIC18F4550.hex en el micro. (no necesitas ningún software de pinguino).. la tarjeta de pinguino puedes utilizala si deseas.. mas claro puedes usar cualquier circuito que tenga un PIC18F4550 trabajando con cristal de 20Mhz y un conector USB

entre las mejoras de este daq esta el SUBVI para labview, es mucho mas sencillo de utilizarlo . saludos!!


----------



## tercek (Jun 19, 2013)

Hola Dinoelectro

una pregunta no se si me puedas ayudar arme el circuito con el pic18f4550 pero mi computadora puede actualizar el controlador mi computadora tiene windows 8  de 64 bits no se a que se deba espero me puedas ayudar.

de antemano gracias por tu atención saludos!!!!!!!!!!!!!!!


----------



## dinoelectro (Jun 19, 2013)

tercek dijo:


> Hola Dinoelectro
> 
> una pregunta no se si me puedas ayudar arme el circuito con el pic18f4550 pero mi computadora puede actualizar el controlador mi computadora tiene windows 8  de 64 bits no se a que se deba espero me puedas ayudar.
> 
> de antemano gracias por tu atención saludos!!!!!!!!!!!!!!!




Al parecer el driver que ofrece microchip no funciona con windows 8,.. habra que esperar hasta una nueva actualizacion.

saludos!


----------



## mnicolau (Jun 19, 2013)

dinoelectro dijo:


> Al parecer el driver que ofrece microchip no funciona con windows 8,.. habra que esperar hasta una nueva actualizacion.
> 
> saludos!



El driver de Microchip SI funciona en Windows 8. El tema está en que ese SO por defecto no permite instalar drivers "no" firmados. Para poder hacerlo hay que seguir estos pasos:

http://damerojo.blogspot.com.ar/2012/11/como-instalar-drivers-no-firmados-en.html

De esa manera van a poder instalarlo 

Saludos


----------



## tercek (Jun 19, 2013)

Hola
hice todo lo de la pagina http://damerojo.blogspot.com.ar/2012...rmados-en.html y no se pudo sigue igual que antes aparece un icono con el signo ! 
y el ordenador me dice no se reconoce el dispositivo usb


----------



## dinoelectro (Jun 20, 2013)

Gracias Mariano Nicolau por la info-

tercek, asegurate que el driver tiene el mismo VID y PID del dispositivo que deseas instalar. suerte!


----------



## ajcl19 (Jul 9, 2013)

Hola dino electro tengo un problema he descargado tu daq de 18f4550 pero mi laptop no lo reconoce, todos tus diseños estan hechos para 64 bits/windows 7 porque mi laptop es de 32bits/windows 7, no se cual es error. Ayuda


----------



## ajcl19 (Jul 14, 2013)

Hola dinoelectro una pregunta por que no me reconoce labview a la daq, para que se dea la interfaz, la maquina ya lo reconoce. Gracias por tu ayuda.


----------



## dinoelectro (Jul 18, 2013)

cuando sale el mensaje NO SE RECONOCE EL DISPOSITIVO USB, debes ir al administrador de dispositivos e indicar la carpeta donde se encuentra el DRIVER - luego lo instalas.

observa algunos ejemplos de como adquirir datos en labview. recuerda que es requisito indicar en labview la ubicacion donde se encuentra la libreria mchpusbap.dll. todos los archivos necesarios ya los he subido al foro, asi que no deberias tener problemas.

Otro problema que pudiera estar ocurriendo es que talvez no indicaste en labview correctamente el VID&PID de tu dispositivo.  - ve ha administrador de dispositivos, elije propiedades del dispositivo y averigua cual es numero VID&PID que tiene tu dispositivo.  saludos!


----------



## c4z4d0r (Ago 6, 2013)

Hola dinoelectro, tu trabajo es excelente. Gracias de antema*n*o.
Te quería pedir un favor, ¿si pudieses subir la actualización para el 18F4550?
Veo que se nota muy bien pero no tengo una tarjeta con 18F2550

También tengo una duda... ¿Los valores en voltaje de salida de la DAQ son alrede*d*or de los 0.18V? Explique*n*enme por_favor. No se que habré hecho mal, la tarjeta DAQ es la de pinguino y no la veo mal hecha.
He revisado cada línea y están sin ningún corto, todo funciona, salvo ese detalle de las salidas que son muy bajas en voltaje.


----------



## dinoelectro (Ago 7, 2013)

c4z4d0r dijo:


> Hola dinoelectro, tu trabajo es excelente. Gracias de antema*n*o.
> Te quería pedir un favor, ¿si pudieses subir la actualización para el 18F4550?
> Veo que se nota muy bien pero no tengo una tarjeta con 18F2550
> 
> ...



Revisa en la Pag 2 de este mismo tema, esta el codigo fuente para hacerlo trabajar con el PIC18F4550.
Respecto a las salidas digitales, algo debe andar mal en el hardware, ya que deberias obtener 0 o 5V. (si tu tarjeta esta correctamente armada puede ser que tu PIC esta fallando) saludos!


----------



## Sant0 (Ago 7, 2013)

Primero que nada muy buena la informacion!! Queria preguntar si alguien pudo hacer la aplicacion para VB .net. 
Tengo descargados otros ejemplos y cuando trato de compilar hay distintos tipos de errores. No se bien como hacer la aplicacion con la libreria que mencionan. La otra duda es que hacer con aquellos archivos que dicen que son los driver (aquellos que son .h , .inf, etc)

Tengo Win 7 de 64 bits, VB express 2010, CCS y PIC 18f2550 

Tambien tengo problemas con el reconocimiento del dispositivo, intente desde panel de control pero no hay caso.

Desde ya muchas gracias, saludos desde argentina


----------



## c4z4d0r (Ago 7, 2013)

la tarjeta que tengo es la de pinguino hace un tiempo la hice funcionar y todo bien. he hecho ya una segunda placa con las mismas caracteristicas y con un pic 18f4550 nuevo . y sigue igual =( en si todo funciona las entradas analogicas las entradas digitales las salidas digitales tambien pero con ese problema de voltaje =( ... alguna idea que pueda ser ? mis dos tarjetas sufren el mismo problema ..
 adjunto el modelo de hardware


----------



## dinoelectro (Ago 8, 2013)

Hola compañeros, no me imagino que pudiera estar ocurriendo, sin embargo les dejo este proyecto completamente probado y funcionando con el PIC18F4550 y un cristal de 20Mhz.  funciona lo acabo de probar no deberian tener problemas.  Saludos!


----------



## c4z4d0r (Ago 13, 2013)

probe con la info publicada el dia 28 y ahora esta funcionando bien =) muchas gracias ... son pocas lineas de interfaz pero andando al 100% ... agradecido mi estimado por la ayuda que brindas a los que nos sabemos mucho aun de usb .. gracias desde Perú


----------



## c4z4d0r (Ago 23, 2013)

dinoelectro dijo:


> Hola antonio, si deseas contar pulsos con el DAQ, debes ingresar una onda cuadrada por el PIN RA4.
> sin embargo el contador no es tan veloz como para contar las revoluciones de un motor..
> 
> Saludos!


 existe alguna manera de modificar la DAQ para poder trabajar con un encoder ... no se quiza usando un cristal de 48Mhz ... necesito usar tres encoder con la DAQ ... gracias de antemamo


----------



## dinoelectro (Ago 23, 2013)

c4z4d0r dijo:


> existe alguna manera de modificar la DAQ para poder trabajar con un encoder ... no se quiza usando un cristal de 48Mhz ... necesito usar tres encoder con la DAQ ... gracias de antemamo



Deberías modificar el código, el micro-controlador posee el modulo CCP ideal para trabajar con encoders. sin embargo tendrían que sacrificarse las dos salidas PWM.


----------



## jonathansata (Ago 24, 2013)

Hola Dinoelectro, he estado siguiendo este proyecto desde hace mucho tiempo, felicitaciones por tu trabajo y gracias por compartirlo con todos. me gustaría desarrollar el  proyecto que contiene la transferencia de datos HID pero debido a la gran cantidad de información que has subido a los foros no se exactamente cual es el archivo que contiene el firmware de este tipo de transferencia y a cual pic pertenece si al 4550 o al 2550.  estaré atento a su respuesta . muchas  gracias


----------



## dinoelectro (Ago 25, 2013)

En el ultimo archivo que subi esta toda la informacion junta... para el microcontrolador PIC18F4550., cualquier duda no dudes en preguntar.


----------



## IVAN RODRIGEZ (Sep 22, 2013)

Que tal dinoelectro,Muy buen proyecto!!
estoy realizandolo tambien pero con el modo HID solo que veo que  el SubVI es el que tiene la configuracion para leer las entradas analogicas ,sin tu SubVI el proyecto no anda,podrias dar  un ejemplo de como se haria la ultima adaptacion al 18F4550  por medio del sofware en labview
Gracias un Saludo.


----------



## dinoelectro (Sep 22, 2013)

hola ivan, el subvi que publique es cortesía de mariano nicolau y es útil para interfaces bulk transfer únicamente.

para trabajar en modo HID, primeramente tendrás que modificar el programa en el PIC, me imagino que eso ya lo habrás echo, luego deberías tener el NI-VISA instalado en tu computador, ejecutar el asistente para crear un driver compatible con tu dispositivo.


----------



## IVAN RODRIGEZ (Sep 23, 2013)

Que  tal Dinoelectro, Gracias por contestar,Y es verdad el codigo para el modo HID cambia ,pero relativamente es Nada,solo en la configuración Y Gracias a sus grandes aportaciones ya tengo tambien al 100 el mio.
Les Agradezco,Saludos.


----------



## jonathansata (Oct 24, 2013)

Hola dinoelectro

estoy construyendo tu proyecto, y veo que en el pbc  que se encuentra en el pdf pinguino40 solamente hay 4 capacitores, hace falta el capacitor C4 del regulador 7805 que se muestra en el esquemático, podrías ayudarme con esa duda?


----------



## dinoelectro (Oct 24, 2013)

no es necesario, el capacitor.. pero no te olvides del capacitor que va al pin RC3 sin ese la comunicacion USB no es posible


----------



## jonathansata (Oct 29, 2013)

gracias por responder dinoelectro, hasta ahora  trabajo con el pic18f4550 y con el lenguaje C para programar microcontroladores y  la verdad me ha costado. por ahora estoy tratando de interpretar los archivos que subiste en el rar "6.Sistema de Adquisicion de datos Bulk Transfer" en el compilador c ccs. y me doy cuenta que el el codigo daqBULK18F4550.c llama a un fichero para la comunicacion con el pc , en este caso llama al fichero daqBulk.h .....  ahora como yo quiero es hacer una comunicación HID (por la facilidad del plug&play) creo que ese fichero no es el que necesito pues en una linea del codigo dice         " #DEFINE USB_HID_DEVICE    FALSE " . por otra parte en el rar que subiste tambien hay otro fichero que se llama " daqDescriptor.h " pero este no es llamado por el codigo c. ademas que los dos archivos .h que he mencionado tienen diferentes PID y VID ....  como ves tengo las ideas revueltas, ojala puedas ayudarme explicandome cual es la manera correcta de utilizar este codigo y cuales ficheros utilizar para compilar el pic y realizar la comunicacipin HID. de nuevo te agradezco por tu ayuda y disponibilidad para ayudarnos


----------



## dinoelectro (Oct 30, 2013)

cambiar
#DEFINE USB_HID_DEVICE FALSE "
por
#DEFINE USB_HID_DEVICE TRUE "

y listo... si te vota errores el compilador, ve a C:\...PICC libraries y busca los archivos que te faltan.. luego copia y pega esos archivos en la misma carpeta donde estas guardando tu programa.

saludos!


----------



## jexcobar (Nov 4, 2013)

Hola Dinoelectro, soy José Luis nuevo en esta comunidad. Estoy empezando con labview y que mejor cosa que tratar con datos reales mediante un DAQ y viendo ejemplos de otros que ya saben. Como tengo dos tarjetas pinguino con 18f2550 me decidí a probar tu proyecto, pero no tengo una versión actualizada de labview. ¿Podrías hacer el favor de exportar el proyecto que hiciste para el 18F2550 a labview 8.5 (me temo que versiones mas modernas del programa no correrán bien en mi ordenador)?

Enhorabuena por tu proyecto y un saludo desde España


----------



## dinoelectro (Nov 6, 2013)

hola jexcobar, mira no he podido guardar el archivo para labview 8.5 debido a que el subVI que proporciona mariano Nicolau esta protegido por contrasena, lamento no poder ayudarte, talvez en el siguiente link encuentres algo de ayuda.

https://www.forosdeelectronica.com/f26/interfaz-control-pics-usb-bulk-labview-c-76934/

saludos!


----------



## jonathansata (Nov 6, 2013)

dinoelectro dijo:


> cambiar
> #DEFINE USB_HID_DEVICE FALSE "
> por
> #DEFINE USB_HID_DEVICE TRUE "
> ...




gracias por responder dinoelectro, efectivamente modifiqué el archivo daqBulk.h  
cambié el PID por 0x0010 y el VID por 0x04D8 y cambié las lineas de  

#DEFINE USB_HID_DEVICE FALSE "
por
#DEFINE USB_HID_DEVICE TRUE "

pero al compilar me aparecieron una serie de errores que al parecer dicen que hay un conflicto con el fichero usb.c pero no entiendo  que es exactamente. de nuevo te pido ayuda para solucionar esto y seguir desarrollando tu proyecto

adjunto dos imagenes de lo que me pasa al compilar en ccs , estoy trabajando con el pi18f4550 y la  version de ccs que tengo en 4.057 

gracias dinoelectro


----------



## jexcobar (Nov 6, 2013)

Gracias por tu interés dinoelectro (ya me imaginaba que podría estar protegido el subVi por lo que he podido leer en un post del forero Mariano Nicolau que hacía referencia a que el SubVi pertenecía a un trabajo suyo). Voy a actualizar Labview aunque me vaya más lento y probaré tu gran trabajo. 

Ssaludos ...


----------



## dinoelectro (Nov 11, 2013)

hola jhonathan sata .. intenta con este codigo:


```
#include <18f4550.h>
#fuses HS,NOWDT
#use delay(clock=20000000)
#define USB_CONFIG_HID_TX_SIZE   10
#define USB_CONFIG_HID_RX_SIZE   3
#include <pic18_usb.h> 
#include <usb_desc_hid.h>
#include <usb.c>  
void main(void){
   int8 i;
   int8 out_data[USB_CONFIG_HID_TX_SIZE];
   int8 in_data[USB_CONFIG_HID_RX_SIZE];
   usb_init_cs();
   set_tris_a(255);
   set_tris_b(255);
   set_tris_c(0);
   set_tris_d(0);
   setup_adc_ports(ALL_ANALOG);
   setup_adc(ADC_CLOCK_INTERNAL);
   set_adc_channel(0);
   setup_timer_2(T2_DIV_BY_4,127,1);
   setup_ccp1(CCP_PWM);
   setup_ccp2(CCP_PWM);
   setup_timer_0 (RTCC_EXT_H_TO_L);
   memset(in_data, 0x00, USB_CONFIG_HID_RX_SIZE);
   memset(out_data, 0x00, USB_CONFIG_HID_TX_SIZE);
   while (TRUE){
      usb_task();
      if (usb_enumerated()){
      for(i=0;i<8;i++){
      set_adc_channel(i);
      out_data[i]=read_adc();
      }
      out_data[8]= input_b();
      out_data[9]= get_timer0();   
      if (usb_put_packet(1, out_data, USB_CONFIG_HID_TX_SIZE, USB_DTS_TOGGLE)){}
      if (usb_kbhit(TRUE)){
            usb_get_packet(1, in_data, USB_CONFIG_HID_RX_SIZE);
            set_pwm1_duty(in_data[0]);
            set_pwm2_duty(in_data[1]);
            output_d(in_data[2]);            
         }
      }
   }
}
```


----------



## jonathansata (Nov 14, 2013)

gracias por tu ayuda dinoelectro, efectivamente pude compilar, y aunque no me prende el led (no se aun por qué, ya he revisado todo el circuito) mi pc si me reconoce el PIC (adjunto vista del reconocimiento del PIC en el administrador de dispositivos ), ahora voy  a trabajar en la partde el software, como ya respondiste a algún compañero en este foro, voy a ver como me va con el NI-VISA para que labview me reconozca el dispositivo

saludos !!!!


----------



## dinoelectro (Nov 14, 2013)

En labVIEW, no hay ventaja de HID, ya que si bien te ahorras el pasatiempo de instalar el driver, necesitaras instalar NI-VISA y crear un driver que funcione con labview, asunto que es bastante engorroso.

HID Es excelente controlarlo con Visual Basic, C++ o JAVA.

Saludos!


----------



## EL SHABRI (Nov 15, 2013)

Saludos. ¿Que tal dinoelectro?
Por fa*vor*. ¿Podrías echarme una mano con un inconveniente, el cual describo a continuación?:

Estoy desarrollando un proyecto con comunicación USB, para ello estoy empleando el PIC18F2550 que es el encargado de recibir y enviar datos desde y hacia la PC por medio del bus USB clase CDC, cuento con una tarjeta de proceso en la cual dispongo de un XMEGA de ATMEL el mismo que recibe y envía datos desde y hacia el PIC18F2550 por medio de comunicación serial RS-232, en la transmisión de datos en el sentido PC->PIC18F2550->XMEGA no tengo inconvenientes, el problema surge cuando quiero enviar los datos resultados del proceso en el sentido XMEGA->PIC18F2550->PC, ya que en el PIC he intentado recibir los datos por medio de la interrupción INT_RDA(Interrupción del puerto USART); pero dicha interrupción no se produce ya que al compilar el programa del PIC los warnings indican que las interrupciones se encuentran deshabilitadas, también he intentado recibir los datos de la comunicación serial sin utilizar la interrupción es decir directamente en la función MAIN() con la instrucción FGETS(DATOS) pero ocurre que se pierde la comunicación USB y el programa se queda como estancado en alguna de las librerías incluidas, porque no se ejecuta ni esta instrucción FGETS(DATOS).
He probado por separado la comunicación USB PIC18F2550<->PC y la comunicación XMEGA<->PIC18F2550 y funciona de maravilla.
Compilador: PCWHD Lenguaje: CCS
Librerías incluidas:
#INCLUDE <PIC18_USB.H>
#INCLUDE <USB.C>
Warnings al compilar el programa del PIC:
Interrupts disabled during call to prevent re-entrancy: (usb_token_reset)
Interrupts disabled during call to prevent re-entrancy: (usb_flush_out)
Interrupts disabled during call to prevent re-entrancy: (usb_flush_in)

Puede ser que el USB CDC al crear un Puerto serie virtual, ello puede estar interfiriendo en la comunicación serial.
Por fa*vor,* si me pueden echar una mano con este asunto.
De antemano muchas gracias. 


Te lo agradeceré mucho.
Atentamente: Orlando. EL SHABRI.


----------



## dinoelectro (Nov 16, 2013)

La comunicacion USB CDC y la USART pueden trabajar perfectamente, ya que el funcionamiento de la una no interfiere en la otra.

En la carpeta de instalacion de PIC CCS, encontraras un ejemplo donde trabaja la clase USB_CDC y la USART en conjunto, te recomiendo lo revices y lo adaptes a tus propias necesidades


----------



## EL SHABRI (Nov 18, 2013)

Gracias por responder....Dinoelectro.

Te comento que he revisado los ejemplos de la carpeta de instalación del PIC CCS, pero tiene diferencias bastante notables respecto a lo que tengo yo en mi código de programa; por ejemplo yo tengo:
#DEFINE USB_HID_DEVICE        FALSE
#DEFINE USB_EP1_TX_ENABLE     USB_ENABLE_BULK
#DEFINE USB_EP1_RX_ENABLE     USB_ENABLE_BULK
#DEFINE USB_EP1_TX_SIZE       64
#DEFINE USB_EP1_RX_SIZE       64

#INCLUDE <PIC18_USB.H>
#INCLUDE <DESCRIPTORES.H>
#INCLUDE <USB.C>
#INCLUDE <STDIO.H>
#INCLUDE <STDLIB.H>

Y para recibir o enviar datos por el bus USB estoy empleando lo siguiente:
USB_GET_PACKET(1,DATOS_INPUT,64);
USB_PUT_PACKET(1,DATOS_OUTPUT,64,USB_DTS_TOGGLE);

Al utilizar la comunicacion USART el inconveniente es al recibir los datos, ya que esto provoca que se pierda la comunicación USB y si intento recibir por interrupción la interrupción no se produce por los warnings que indica que las interrupciones se hallan desabilitadas.

    Interrupts disabled during call to prevent re-entrancy: (usb_token_reset)
    Interrupts disabled during call to prevent re-entrancy: (usb_flush_out)
    Interrupts disabled during call to prevent re-entrancy: (usb_flush_in)

Entoces no sé como gestionar la comunicación USART de modo que no se pierda la comunicación USB.....


----------



## dinoelectro (Nov 18, 2013)

....mira, obiamente tu codigo esta mal, tienes que trabajar con el ejemplo que es el que funciona. (el ejemplo gestiona USB y USART perfectamente)


----------



## jonathansata (Dic 2, 2013)

Por fin pude realizar el proyecto DAC con PIC18F4550 de dinoelectro. ¡Es una maravilla!
Muchas gracias por tu ayuda, me servirá mucho para mi proyecto  en la universidad.
Mi idea es realizar mediante varias técnicas un control de temperatura a unos hornos de resistencia eléctrica que hay en los laboratorios.

¿Quisiera saber cual es la frecuencia de muestreo del dispositivo?

Gracias.


----------



## dinoelectro (Dic 2, 2013)

jonathansata dijo:


> por fin pude realizar el proyecto Daq Pic18f4550 de dinoelectro, es una maravilla !!!! muchas gracias por tu ayuda, me servira mucho para mi proyecto  en la universidad, mi idea es realizar mediante varias tecnicas un control de temperatura a unos hornos de resistencia eléctrica que hay en los laboratorios, quisiersa saber cual es la frecuencia de muestreo del dispositivo... gracias



Cual era el problema que no te funcionaba?

Upsss!! ahi me pusiste dificil, voy a ponertme en la tarea de calcular la frecuencia de muestreo. 

Saludos!!


----------



## jonathansata (Dic 2, 2013)

irónicamente todo estaba bien pero no funcionaba, solo volví a instalar el driver ... muy raro, ahora si hace la adquisicion de datos perfectamente, lo de la frecuencia de muestreo lo necesito porque el barrido que realiza en 1 segundo es muy amplio y son demasiados datos, ademas del ruido que tiene (fluctúa en 0,15 v)

quiero filtrar la señal , estoy aplicando un filtro pasabaja pero no se a cual frecuencia de corte colocar


----------



## LUISATILIO (Ene 29, 2014)

HOLA AMIGOS soy LUISATILIO y estoy muy contento de tener gente como ustedes, que no mezquinan la información de sus proyectos y estoy muy agradecido en especial con los amigos "dinoelectro" y "mnicolau" ya que con sus proyectos me han adelantado mucho en mis estudios de microcontroladores y de LabVIEW. Estoy intentando adentrarme en este mundo maravilloso de la electrónica y los micros y ya tengo mucha información y herramientas para mis pruebas y si todo va bien ya les contaré.
Gracias nuevamente a todos, un saludo.


----------



## Rocker_BR (Abr 25, 2014)

Hola a todos,
Estoy muy agradecido al foro, especialmente a la Dinoelectro y Mnicolau por sus contribuciones en este y otros temas relacionadas con el USB y LabVIEW, donde tengo gran interés.
Monté el circuito con el 18F4550 y me alegré de ver las señales analógicas en LabVIEW.
Puse a prueba una señal sinusoidal en la entrada analógica, pero no fue posible si leer frecuencias superiores a 5 Hz, la señal aparece demasiado distorsionada en LabVIEW.
He modificado el programa para leer sólo una unica entrada analógica, pero no obtuvo mejoras significativas...
Me pregunto si esto es debido a velocidad de lectura del puerto analógic del 18F4550, comunicación USB muy lento o el programa en Labview?
Gracias por cualquier ayuda o explicaciones que me puedan dar.
Saludos!

Roberto


----------



## dinoelectro (Abr 28, 2014)

Hola junker, este programa lo que hace es leer la señal analógica y en seguida enviarla, por lo que se desperdicia tiempo, y tarda en procesar la siguiente señal

Para mejorar el tiempo de adquisición, lo que deberías hacer es, almacenar unas mil lecturas en una matriz y luego las envias al computador... Saludos!


----------



## Pedro140587 (Jul 12, 2014)

Hola dinoelectro, una inquietud sobre el esquematico adjuntado, ¿a donde va conectado el componente J2 (CONN-SIL2), talvez a la fuente que proporciona el usb o a una fuente externa?, gracias por tu respuesta.


----------



## dinoelectro (Jul 13, 2014)

Hola Pedro.. 

J2 sirve para alimentar al circuito con una fuente externa de 9V a 20V asi el 7805 regula la tensión a 5V para alimentar al PIC. Sin embargo; cuando tienes alimentado el circuito a través del puerto USB ya no es necesario que dispongas de ninguna fuente de alimentación .. 

en otras palabras.. esa parte del circuito puede ser omitida.

Saludos!


----------



## broncoo17 (Jul 22, 2014)

Hola a todos estoy buscando ayuda con una tarjeta que estoy haciendo, el problema es que en el tutorial que me base solo activan una entrada y una s*a*lida y no se como puedo agrandar mi programa para usar las demas entradas y salidas.
Tambien cheque otros tutoriales q*ue* hay aqui en el foro y cargo bien el programa y la computadora me detecta bien la tarjeta pero labview no me lo reconoce creo que hay problemas con el sub vi o algo asi, o no se si sea por el win7 de 64 bits
El chiste es que solo he hecho funcionar uno pero solo tiene una entrada y una salida y quiero usar mas, espero me puedan ayudar pronto saludos y gracias 

Aqui dejo la carpeta del programa que quiero agrandarr:


----------



## rafapic (Sep 1, 2014)

Hola dinoelectro, gracias por compartir tus experiencias.
Mira, intento modificar la resolución de las entradas analógicas de la daq a 10 bits y me tira un error de un archivo de la librería del picc.
Ahí subo una imágenes, espero me puedas guiar, así puedo modificar eso.

Ahí espero se vean, 18 errores me salen de la librería.
Sólo  modifiqué adc =8 por adc=10
También adjunto el archivo .c

Seguiré probando, saludos.
Gracias.


----------



## dinoelectro (Sep 7, 2014)

Hola rafaPIC, estoy pensando cuando sacar un tiempito para mejorar el  daq... mientras tanto talvez te interese ver el daq de Mariano Nicolau,  adquiere datos de 10 Bits.. 

Interfaz de control para PICs USB-BULK (LabVIEW - C#)

Fijate en el codigo de Mariano, el truco esta en separar el resultado de  la lectura de 10 bits en dos registros de 8 bits antes de enviarlo al  computador, el programa en labVIEW tambien cambia ligeramente

Suerte! 

Dejo el ejemplo de como adquirir una señal analógica RA0 con resolución de 10 bits y luego graficarla en labVIEW.

Espero te sirva. 



Dejo instrucciones de como instalar el driver en windows 8


----------



## dinoelectro (Sep 7, 2014)

He coseguido adquirir hasta cuatro señales analogicas de diez bits. (si alguien tiene una mejor solucion, por favor comparta)

Adjunto programa que adquiere 4 señales analogicas (AN0,AN1,AN2 y AN3) de 10 bits + ejemplo de adquisicion en labVIEW


----------



## rafapic (Sep 8, 2014)

Hola dinoelectro muchas gracias por responder,te comento que no puedo abrir los VI s, al parecer tu tienes labview 2012 o me equivoco?. yo tengo la 2011 y no me deja abrir jaja. bueno igual lo de mariano nicolau esta muy bueno bien tenga avances les aviso. gracias de nuevo.


----------



## rafapic (Sep 9, 2014)

Hola aquí les traigo un controlador pid con la daq de dinoelectro y algunas modificaciones para realizar el controlador, el controlador pid es un control que funciona en función del error que tomamos al realizar la lectura de una planta mediante un sensor, este proyecto es para el control de temperatura de un invernadero. la lectura la realizamos mediante el lm 35 sensor de temperatura. el control PID reacciona en función del error y para ello ustedes deben calcular las constantes de estas acciones dependiendo de la planta. recordando la acción proporcional es P=e(t)kp, la acción integral I=ki*integral e(t)dt la misma genera una rampa de acciona para anular el error de la planta dependiendo del set point que ustedes pongan y el valor sensado por el lm35, la acción derivativa D=kd*de(t)/dt esta acción se anticipa al error, la suma de estas 3 acciones es un controlador PID que se usa en la mayoría de la industria. en el panel frontal ustedes pueden ingresar las constantes, ademas el control es automático y manual, con la posibilidad de almacenar la temperatura la hora y la fecha como una base de dato. la salida del controlador acciona la etapa de potencia mediante el PWM que envia la señal a un moc 3041 (optotriac) para accionar un triac que activa la carga, que en este caso es un calefactor para mantener la temperatura de la planta. dependiendo de la carga(potencia) deberán calcular el disipador para el triac para no quemarlo. a su vez el triac posee en paralelo la red snuber para evitar los efectos del dV/dt, que son variaciones bruscas de tensión que producen falsos disparos por la red 220v.en la hoja de datos del moc tienen información de como calcular la red snuber. la acción final del controlador dependerá de los valores de las constantes que ustedes les asignen así que cuanto mas suave sea la respuesta mejor sera la acción del mismo. si su carga es resistiva no es necesaria la red snuber ahora si es como mi caso un calefactor (secadora de pelo 1250 W)si la necesitan, si bien no es tan inductivo tiene un motor adentro para hacer circular el aire caliente, esta red depende del factor de potencia de la carga y por lo tanto de ello dependera los valores de la misma. yo primero lo probé sin la red snuber y andaba mal se me disparaba cuando no debia por el dv/dt le puse la red y. bueno adjunto archivos necesarios espero les agrade, luego subiré el vídeo que grabe donde esta funcionando lo debo buscar jaja, en fin se puede mejorar ahora la facu no me da tiempo.saludos


----------



## dinoelectro (Sep 9, 2014)

rafapic dijo:


> Hola dinoelectro muchas gracias por responder,te comento que no puedo abrir los VI s, al parecer tu tienes labview 2012 o me equivoco?. yo tengo la 2011 y no me deja abrir jaja. bueno igual lo de mariano nicolau esta muy bueno bien tenga avances les aviso. gracias de nuevo.



si los VI son echos en labVIEW 2012, otro dia los convierto a 2011 y lo comparto.. Gracias por el aporte, muy bien traido este tema del control PID, puesto que quiero controlar el nivel de luxes que debe haber en una habitacion, tengo pensado utilizar como sensor un LDR y a la salida una interface transistorizada para manejar LEDS de alta potencia. creo que tu VI me sera util para ello.


----------



## dinoelectro (Sep 9, 2014)

lo tengo, finalmente quedo asi;

4 entradas analogicas de 10 bits de resolucion AN0,AN1,AN2 y AN3
8 entradas digitales puerto B
1 contador de 8 bits RA4
2 salidas pwm de 8 bits RC1 y RC2 
8 salidas digitales puerto D

dejo VIS para labVIEW 2010, 2011 y 2012, queda como reto pasar PWMs y Contador a 10 bits


----------



## rafapic (Sep 10, 2014)

gracias dinoelectro por convertir los archivos, mira encontré un vídeo del PID pero pesa como 180Mb y no creo que se pueda subir según el limite máximo es de 5Mb en archivos rar. la otra seria subirlo a you tube y pasarles el link se puede?. ha encontré el primer PID que es la base para el que ya había subido antes, lo comparto quizá les interese; en el ustedes deben ingresar el valor de las constantes kp,ki y kd, las que dependen de la planta a controlar y verán como el sistema reacciona al error e intenta estabilizarse, para mas información sobre esto les recomiendo el libre OGATA¨ ingeniería de control moderna¨. saludos.


----------



## Pedro140587 (Sep 10, 2014)

Hola dinoelectro bueno me anime a construir una DAQ y la hice de manera artesanal bueno quedo como en la figura que adjunto posee ademas del pic un puente H que le añadí y tres leds uno de encendido de la placa y los otros dos que son para el visualizar el estado del enable 1 y 2 del puente H, el problema es el funcionamiento tengo labview 2013 full y mi pic es el PIC18F4550, quise crearme el driver mediante el NI VISA driver wizard pero me pide permisos de administrador (adjunto el error). O de que otra manera puedo generar el driver? gracias de antemano, creo que todo lo que han subido es para versiones anteriores de labview. Cualquier ayuda es bienvenida.

Muchas gracias


----------



## dinoelectro (Sep 10, 2014)

Hola Pedro,felicitaciones te ha quedado espectacular 

En realidad yo tampoco he conseguido generar el driver con NI-VISA, asi que yo uso el driver de microchip, el subVI de mariano nicolau y la libreria mpusbdll. si tienes problemas con la instalacion del driver avisame para guiarte.. pero de NI-VISA no nada.. saludos!


----------



## elhomiloko (Oct 2, 2014)

Hola dinoelectro, antes que nada muchas gracias por compartir tu trabajo con los demas, eres muy dedicado.

Mira, quiero armar tu DAQ para utilizarla con LABVIEW en W7x64, ya descargue el ultimo archivo "DAQ10Bits.rar", y supongo que el ultimo diagrama que subiste en ISIS PROTEUS, nada mas es pasarlo a PCB y montar los componentes. Pero despues de leer y leer me he confundido, en ¿si se instala o no un driver? y ¿como se hace?. ¿O cuales son los pasos a seguir para poder conectar la DAQ al PC y empezar adquirir datos en LABVIEW?. Y ¿Cual .hex le cargo al PIC?, ¿el main.hex?

¿El puerto E no se utiliza ya para nada?, ¿pero el esquemático sigue siendo el mismo verdad? y ¿no es necesario ninguna libreria extra en LABVIEW?

Si me pudieras orientar en estas partes te estaré más agradecido.
Disculpa por tantas preguntas.!
Gracias!!!


----------



## dinoelectro (Oct 2, 2014)

Hola elhomiloko como esta? espero que muy bien.. tratare de responder tus preguntas

1. en el ultimo archivo daq10bits.rar esta todo lo que necesitas(driver mpusbapi.sys, libreria mpusbapi.dll y el main.hex para grabar en el pic)

2. El diagrama es sencillo y solo nececitas es un microcontrolador PIC18F4550  alimentado con 5 voltios y trabajando con un cristal externo de 20MHz. (el puerto E no se utiliza para nada)

3. el labVIEW  tiene que ser obligadamente de 32 bits aunque puedes instalarlo en cualquier windows de 64 bits sin problemas

4. cuando enchufes tu PIC al computador, te aparecera un mensaje diciendo que nuevo hardware ha sido encontrado.

5. ve al administrador de dispositivos e instala el driver manualmente, indicando la carpeta donde se encuetra el mpusbapi.sys

6. ahora ya tu computador reconoce al microcontrolador y estas listo para recibir los datos en labview.. fijate puse ejemplos para distintas versiones de labview.

7. en labview tambien deberas tener presente que se usa una libreria que se llama que se llama mpusbapi.dll la misma que debe estar en la misma carpeta donde guardas el archivo de labVIEW.

espero haberte contestado.. sino hay me cuentas.. saludos!


----------



## elhomiloko (Oct 3, 2014)

Muchas gracias dinoelectro!!
Ya haz disipado todas mis dudas, ahora a empezar a adquirir el material y echarle ganas.
En cuanto la tenga lista te cuento como me fue.
Gracias!!


----------



## Alfredo (Feb 19, 2015)

Gracias por tu excelente esfuerzo Dinoelectro me han funcionado tus ejemplos y he logrado hacerlo funcionar en windows 8!


----------



## dinoelectro (Feb 19, 2015)

Alfredo dijo:


> Gracias por tu excelente esfuerzo Dinoelectro me han funcionado tus ejemplos y he logrado hacerlo funcionar en windows 8!



Me alegro Alfredo, espero te sea haya de utilidad el DAQ y por favor si tienes propuestas o mejoras para el sistema, comparte con nosotros tu experiencia


----------



## Alfredo (Feb 23, 2015)

Ok lo que este a mi alcance lo publicare pero estoy pegado en algo, estoy teniendo problemas con la recepción de datos de las   entradas analógicas del ejemplo del Daq10Bits como puedo obtener el valor  en decimales o (real) de una medición poniendo el ejemplo del uso de un Potenciometro alimentado a 5 volt, a la entrada AN0 o a cualquiera de las entradas analogicas como convierto el valor del RADC (binario) que lee Labview a un valor real?


----------



## dinoelectro (Feb 24, 2015)

Simple Alfredo, el DAQ te da un valor entre 0 y 1024... haces una regla de tres con las funciones matematicas que tiene labview y conviertes los datos a la escala de 0 a 5V. 

No es nada complicado multiplicas el dato que entra por 5 y el resultado lo divides entre 1024. Asi por ejemplo si entra 800

(800 x 5)/1024 = 3.906V

Saludos!


----------



## Alfredo (Feb 24, 2015)

Ok entiendo Dinoelectro aplique eso a el ejemplo del Daq10bits y no se que andara mal, en el programa en Labview integras dos señales de 8 bits para que te el resultado de 16 bits? de la variable original AnalogSignal! Ojala y pudieras hecharme una mano o recomendarme uno de los ejemplos que tu califiques como adecuado para mi problema!


----------



## dinoelectro (Feb 24, 2015)

El PIC lee cuatro señales analógicas AN0, AN1, AN2 y AN3 todas ellas son de 10 bits (no dieciseis) obviamente hasta el computador llegan dos registros de 8 bits. Los 8 bits menos significativos vienen en un registro y los otros dos bits mas significativos vienen en el otro registro. en labview se unen los dos registros para formar el numero de diez bits, como tu mismo lo muestras en la imagen.

lo siento pero ejemplos no te puedo enviar por el momento ya que no tengo instalado el software en mi computador.. y ahora ando fuera de casa... Saludos.


----------



## Alfredo (Mar 2, 2015)

Entiendo Dinoelectro has aclarado mi duda entonces las otras entradas del (puerto A) An4-An7 quedan sin uso puedo usarlo para otros fines al hacerle un arreglo a la programacion? y una pregunta curiosa ya que estoy iniciando en esto y he notado que el valor del ADC varia mucho en la lectura se podra arreglar ese detalle cambiado el valor de los delay_us(xx)!?? 



Cuando tengo en An2 un valor de 2,15 y en An3 no tengo nada conectado este tiende a tomar el valor mas cercano a An2, en el comentario anterior me propusiste que los que no estuviesen en uso los conectara a GND pero cuando conecto en An3 un voltage de 0 - 5 el que tiende a cambiar es An0 unos pocos decimales y al hacer mediciones de sensores creo que afectaria las mediciones reales que me puedes sugerir, Dinoelectro  . De antemano gracias


----------



## dinoelectro (Mar 2, 2015)

Hola Alfredo, puedes colocar buffers a las entradas del PIC. de esta manera las mediciones no se verán afectadas por señales analógicas vecinas o ruido.


----------



## Alfredo (Mar 5, 2015)

Ok. dinoelectro. Veré que tal me va con tu sugerencia. Gracias!


----------



## jmdediosperez (Mar 18, 2015)

Hola, ante todo dar las gracias por este foro y decir que soy novato en este tema. Hace un par de años me dieron una documentacion (la cual adjunto), para controlar un PIC18F4550 mediante VB6. En windows XP ha funcionado correctamente, pero en Windows 7 32/64 no logro hacerlo trabajar. Alguien puede decirme que tengo que modificar o hacer. Gracias, es que en verdad necesito que funcione.


----------



## pandacba (Mar 18, 2015)

El problema es que tus driever del proyecto son para XP deberias buscar los correspondientes para el 7 o intentar hacerlo funcionar en una ventana de compatibilidad.
Es la última carpeta dentro del proyecto
Fijate aqui
http://www.fsays.eu/Blogging/Blog/Details/5
http://ww1.microchip.com/downloads/en/DeviceDoc/Release Notes for MCHPFSUSB v1.3.htm
http://www.doepfer.de/update/en/update_w7.html


----------



## jmdediosperez (Mar 18, 2015)

Pues no encuentro la libreria necesaria para poder untilizar mi PIC18F4550 desde VB6, alguna alma caritativa que me ayude, por favor...  Es decir alguien podia utilizar el fichero anterior PROYECTO.RAR y hacer que funcione en windows 7, x86.

Gracias por vuestra paciencia...


----------



## D@rkbytes (Mar 18, 2015)

jmdediosperez dijo:


> Pues no encuentro la librería necesaria para poder utilizar mi PIC18F4550 desde VB6


No es una librería, son los controladores los que tienes que instalar.
Los archivos están en el tercer enlace que dejó pandacba
*Update Darktime under Windows Vista & Windows 7*


----------



## jmdediosperez (Mar 18, 2015)

Perdonad mi ignorancia. Entiendo que hay 2 archivos principales que son mpusbapi.dll (libreria que no hay que modificar) y el archivo mchpusb.inf (que es el controlador que configura el USB con el ordenador). Alguien tiene estos 2 archivos para que funcione en w7, mi vid_pid del PIC es = "vid_04d8&pid_0011".

Gracias


----------



## D@rkbytes (Mar 18, 2015)

Supongo que con la instalación de los archivos que están en *mchpusb.zip* ya debería funcionar.
Yo uso Windows XP SP3 y por eso no te sé explicar sobre cómo hacerlo en Windows 7.

En este enlace se encuentra la explicación de instalación para Windows XP-SP3, Windows Vista-SP2 (x86/x64) y Windows 7-SP1 (x86/x64)
*MS-official "WinUSB class" driver for XP, Vista and 7*

Ahí también se encuentra otra descarga de archivos.


----------



## Boss06012 (Ene 29, 2017)

Hola, Dinoelectro
Espero te encuentres bien.
Veras, soy un estudiante de ingenieria mecatronica, y este semestre estoy llevando la materia de adq de datos, para ella nos pidieron una tarjeta DAQ. Más sin embargo son muy costosas y mire tus publicaciones de "Algunos proyectos avanzados con microcontroladores PIC" me interese en tu diseño. Pero aun tengo mis dudas. Hasta que versión de LabView es compatible esa tarjeta?
Y que tipo de maquina necesito? ya que veo que hay algunas discrepancias en 64 bits


----------



## wasausky (Mar 8, 2017)

bien amigos estuve soñando con este proyecto sobre todo con labview ya que con el basic ya me habia funcionado pero en hid gracias al gran aporte de dino electro asi como este proyecto,bien como saben a algunos les da el driver y a otros no el cual era mi caso me llenaba la cabeza las mil formas de instalarlo pero descubri que ese no era el problema que la laptop que utilizaba requeria de un driver actualizado asi que encontre la pagina donde se descarga todos los drivers de microchip  

*Microchip Libraries for Applications*

bien le van a la parte final y le cambian a downloads archive e descargan la ultima version para el sistema operativo de su ordnador y lo instalan les genera en el disco c una carpeta (microchip)
e aqui estan los drivers para usb cdc y muchos mas para otros tipos de micros 
en driver que proporciona dino electro se puede instalar de esta forma:

actualizar controlador (supongo que saben a que se refiere)
buscar software en el equipo
elegir una lista de controladores en el equipo
usar disco (en examinar le das el driver mpusch)
y aceptas

quiero aclarar que solo armado me funciona pero en proteus se me va el ordenador en pantalla azul pero al final me funciona bien en la realidad aunque no pueda simularlo
espero que les sirva 
saludos


----------



## JonnyGarcia (Mar 29, 2017)

Hola. si construí el avanzado Dinoelectro es solo que continué la discusión en la otra sala. Tengo Windows 7 y LabView 2015 y no se como instalar el driver en el software porque me aparece que ingrese una contraseña. También quiero saber la función del jumper que esta en el DAQ avanzado con base Pinguino.


----------



## wasausky (Abr 4, 2017)

bien en vista de esos problemas de driver hice otra interfaz inspirado en el proyecto de dino electro en MODO CDC ya que me sentia en deuda por el gran aporte que me enseño mucho, bueno tiene algunos problemas que al probarlo se darán cuenta sugiero que utilicen todos los pines y no los dejen flotando,si tienen alguna mejora respecto a este o alguna duda o sugerencia aqui les pego el grito. 
pdt: al caso de alguien podria facilitarme informacion acerca de labview y su uso en control PID el proyecto quedaria perfecto


----------



## dinoelectro (Abr 4, 2017)

wasausky dijo:


> bien en vista de esos problemas de driver hice otra interfaz inspirado en el proyecto de dino electro en MODO CDC ya que me sentia en deuda por el gran aporte que me enseño mucho, bueno tiene algunos problemas que al probarlo se darán cuenta sugiero que utilicen todos los pines y no los dejen flotando,si tienen alguna mejora respecto a este o alguna duda o sugerencia aqui les pego el grito.
> pdt: al caso de alguien podria facilitarme informacion acerca de labview y su uso en control PID el proyecto quedaria perfecto




Gracias wasausky... voy a probar el proyecto ahora mismo...

Respecto al control PID hay un ejemplo posteado en este mismo hilo.

Saludos amigaso! Da gusto ver que hay tipos como tu que xomparten su conocimiento


----------

