DAQ USB con pic 18f4550

hola muchisimas gracias, si la verdad es que necesito grafica una onda seno en labview con los datos que lleguen efectivameneres envio caracteres ascii y lo que deseo ver son numeros decimales para poder graficar e indicar el valor de una medicion

Hola amigos del foro, vengo ahora con un tema bastante bueno... se trata de una tarjeta de adquisicion y control de datos similar a la de National Instruments, el costo para construirla es de unos 20 dolares... economica teniendo en cuenta el costo de las tarjetas comerciales

Las prestaciones son las siguientes;

· 8 entradas analógicas resolución 10 bits (Puerto RA0:RE2)

· 8 entradas digitales (Puerto RB0:RB7)

· 8 salidas digitales (Puerto RD0:RD7)

· Comunicación USB (emulando RS232)

Acepto todo tipo de critica que vaya en bien del desarrollo de este proyecto... suguerencias y comentarios son bienvenidos y si pueden mejorarlo, quedare eternamente agradecido

Incluyo agradecimiento a paginas amigas que me dieron toda la informacion para desarrollar el proyecto,..el credito es todo de ellas"



hola me parece demasiado bueno tu proyecto podrias hacerme el favor de enviar el link de la pagina donde lo tienes ???????, desafortunadamente no puedo ver las imagenes y me gustaria guiarme de este, muchas gracias
 
Última edición:
aqui te dejo el archivo todo detallado;...cualquier consulta no dudes en preguntar
saludos!!!
 

Adjuntos

  • DAQ con pic 18F4550.pdf
    1.2 MB · Visitas: 772
HOLA muchisimas gracias definitivamente muy buen trabajo

y en especial tu colaboración en todo momento.

espero terminar este proyecto y asi compartirlo en este foro :)
 
yurimilena en el código escrito en c para el pic hay un problema en el momento de enviar el dato ya que el adc esta definido de 10 bits por tanto el dato adquirido y almacenado en a es de 10bits, la funcion printf(usb_cdc_putc,a) imprime un dato tipo char(8 bits) en ese caso el dato enviado serán los 8 bits menos significativos de 'a'.

puedes definir la resolución del adc de 8 bits con eso puedes enviar datos de 1 solo byte, declaras la variable 'a' como un tipo de dato char o int8. con eso podras enviar los datos de a un byte. Luego, en cuanto a labview, lastimosamente no tengo al versión 9 pero si quieres exportarla o guárdala para la versión 8 y con gusto te ayudo.
en el siguiente link hay un vídeo en donde explico un trabajo realizado enviando datos de forma serial con xbee a labview (que operacional mente es lo mismo que estas haciendo )si quieres podría facilitarte la interfaz en labview.

http://ecginalabrico.blogspot.com/2011/11/electrocardiografo-inalambrico.html
 
Última edición:
HOLA CARLOS MUCHISIMAS GRACIAS POR TU AYUDA voy a probarlo de nuevo como tu me indicas.

y por lo de la interfaz claro que si

Por otro lado me surge una inquietud, yo necesito enviar desde labview varias ordenes al pic para que de acuerdo a esto el pic tome la decision de la magnitud va a medir para el caso tendria solo 3 (V,I,R), lo que sucede es que cuando yo ejecuto el programa y coloco la x (como si fuera la opcion que necesito digamos voltaje ) el programa le indica al pic que lea el adc pero si al momento coloco la y (que tiene otra opcion por ejemplo corriente) el programa en labview se demora mucho para mostrar la informacion, de acuerdo a la configuracion del pic e incluso cuando ya he seleccionado la otra opcion (y) el cambio no es rapido sino que sigue mostrando la info de la opcion (x).

Bueno voy a seguir tus indicaciones y de nuevo muchas gracias

luego posteo para que veas los resultado que obtuve
 
Hola yurimilena la interfaz la acabo de subir al blog en el mismo link que te deje en el anterior mensaje http://ecginalabrico.blogspot.com/, espero te sea útil.

En cuanto a lo que quieres hacer va a ser un poco lenta la respuesta debido a que el el micro tienes retardos que si los sumas te dan algo mas de 1.5s, podrías cambiar e retardo para esperar la conversión analógica digital a mucho menos digamos solo 10us, por otra parte seria algo mejor enviar un dato desde labview cada vez para indicar cual es el dato que quieres adquirir por ejemplo si envías 'x' desde labview el micro te responde con el dato de Voltaje, si envías 'y' el micro te responde con el de corriente y etc. en ese orden de ideas puedes usar el programa de labview que subí y antes de entrar al while donde se reciben los datos pones un visa write y envías la opción que quieras, también podrías repetir el proceso 3 veces para recibir todos los datos al tiempo. a continuación dejo aun forma "opcional" de como lo puedes hacer en el micro.

if(usb_cdc_kbhit()){ // en espera de nuevo(s) caracter(es) en el buffer.

switch(usb_cdc_getc()) {

case 'x':
set_adc_channel(0);
delay_us(100);
a=read_adc();
printf(usb_cdc_putc,a);

break;
case 'y':
set_adc_channel(1);
delay_us(100);
a=read_adc();
printf(usb_cdc_putc,a);

break;
case 'z':
set_adc_channel(2);
delay_us(100);
a=read_adc();
printf(usb_cdc_putc,a);

break;
default:
}

Me dices si no me hice entender.
 
Última edición:
HOLA DE NUEVO GRACIAS Y ESTA DE MARAVILLA TU PRODUCTO espero tambien postear el mío tan pronto lo termine porque gracias a personas como tu como dinoelectro, entre otros he podido ir desarrollandolo poco a poco.,

BUENO seguire en pruebas y ya les cuento como me fue
 
Excelente carlos097.. estoy muy interesado en construir un electrocardiografo?? en cuanto al equipo XBee .. es facil conseguir?? cuanto podria costar??? en dolares... gracias de antemano

supongo para acondicionar la senal utilizas un amplificador instrumental AD620.. o no??
 
Última edición:
Hola amigos, acabo de unirme q este interesante post, felicitar en primer lugar a dinoelectro por su aporte, muchas gracias amigo. Yo estaba buscando informacion de como realizar una tarjeta de adquiscion de datos, y bueno me topé con este lugar. GRacias. voy a ver tu archivo, y esperopueda construir mi propia tarjeta. Bueno aqui les dejo mi pequeña pagina que por ahora solo tiene simuladores en labview, http://www.facebook.com/Simulacionconfralver gracias , muchas gracias.

Gracias a todos ustedes por este aporte.
 
Última edición:
Hola a todos...No se si pueden ayudarme con esta pregunta
Estoy trabajando en una tarjeta similar a al que realista `pero ademas necesito salidas analogicas.
Mi pregunta es si es posible colocar a la salida de un DAC0800 un amplificador LM324 en lugar a algun otro que use alimentacion positiva y negativa; ya que el puerto usb de la compu da 5v y no se como alimentar algun otro amplificador que no sea el LM324 con dicho voltaje.

O existe otro conversor digital analogo que pueda utilizar en la tarjeta

Anticipada gracias por sus respuestas..
 
Hola diegmv el problema es que aunque este Amp puede trabajar solo con voltaje positivo tiene el mismo problema que la mayoria de los amp solo trabajan en un rango de hasta Vcc-1.5v eso en tu caso seria un voltaje maximo de 3.5V, pero si lo que quieres es obtener un voltaje no es necesario el amp, este se usa cuando lo que se necesita es obtener una salida de corriete.en caso de que de todas maneras necesites el amp te recomiendo buscar uno que sea rail to rail. exitos
 
Hola amigo estoy muy emcionado por este proyecto, wauu , gracias por este aporte, sabes, quisiera hacerte algunas preguntas. Bueno estoy en cero diria yo en lo que son los Pics, pero como estuve haciendo algunos simuladores en labview, y pues tambien trabajando con una daq usb 6008, jejeje lastima no era mio. es de mi facultad. entonces quise construir una daq, y me encontre con tu post. Nose amigo si podrias detallarme paso a paso de como puedo hacer este proyecto, ya q estoy leyendo de como quemar un pic, y todo eso, recien como le menciono estoy empezando en esto, ademas vi en tu articulo que publicastes, q tambien trabajastes con sensores de temperatura , humedad, -- mi siguiente pregunta seria, los sensores los conectas directo o hicistes algun acondicionamiento a la señal. Gracias. MUchas gracias. Y tambien quisiera si existe algun lugar donde pueda encontrar como fabricar un quemador de Pics.
 
hola dinoelectro disculpa por no haberte contestado antes, los xbee segun el tipo, pueden costar entre 35 y 50 dolares los que trabajan sobre 2.4Ghz que tienen un alcance de 100m a 1 milla hay otros que pueden trabajar el bandas de mas baja frecuencia 430Mhz y tienen alcances de hasta 20Km pero estos son un poco mas costosos y requieren de algunas antenas para aumentar ganancia http://www.digi.com/technology/wireless/products lo puedes comprar en http://www.sparkfun.com/products/8742
 
HOLA CHICOS vengo con una inquietud si tengo un delay de 500 ms es mucho tiempo para que el conversor haga todo el proceso y lugo me transmita los 8 bits al pc????

es que los datos que veo en el pc se demoran mucho en llegar aprox 20 s y estoy utilizando com usb por bulk transfer, no deberia ser mas rápido que cdc????

la verdad estoy algo confundida en esta etapa agradezco a ustedes me puedan orientar
 
gracias por tu respuesta carlos, osea sino utilizo un amplificador tendria ya una salida de voltaje y esta podria ser de rango de 0v a 5v, y si sabes de algun circuito me lo podrisas faciltar porfa...
He trabajo con tarjetas como la labjack U3 y esta tarjeta tenia la posibilidad de darme 0 a 5v pero no se si saben que tipo de conversion utiliza ademas tiene muy buena resolucion.

ah otra pregunta a ver si pueden ayudarme estoy en la tarjeta utilizando comucniacion usb cdc con lavbiew para la obtencion de datos no tengo ningun problema pero al momento de enviar solo puede enviar un dato de 8 bits, es decir un caracter en ascci para recibir en el micro con la funcion usb_cdc_getc, como podría enviar una cadena de caracteres empleando la misma funcion de visa write en labview y recibirla mediante el comando usb_cdc_getc en el micro....
gracias por su ayuda :)
 
Última edición:
Hola amigo estoy muy emcionado por este proyecto, wauu , gracias por este aporte, sabes, quisiera hacerte algunas preguntas. Bueno estoy en cero diria yo en lo que son los Pics, pero como estuve haciendo algunos simuladores en labview, y pues tambien trabajando con una daq usb 6008, jejeje lastima no era mio. es de mi facultad. entonces quise construir una daq, y me encontre con tu post. Nose amigo si podrias detallarme paso a paso de como puedo hacer este proyecto, ya q estoy leyendo de como quemar un pic, y todo eso, recien como le menciono estoy empezando en esto, ademas vi en tu articulo que publicastes, q tambien trabajastes con sensores de temperatura , humedad, -- mi siguiente pregunta seria, los sensores los conectas directo o hicistes algun acondicionamiento a la señal. Gracias. MUchas gracias. Y tambien quisiera si existe algun lugar donde pueda encontrar como fabricar un quemador de Pics.

El acondicionamiento es muy sencillo para un sensor de temperatura LM35 o similar... si te bajas la hoja de datos de este integrado veras algunos circuitos que pudieran servirte.... yo acondicione luz y temperatura y tuve buenos resultados con este DAQ casero :LOL:

Respecto al grabador puedes armarte PICKit2 en este foro mismo he publicado PICKit2 + HIDBootloader... buscalo
pero desde ya te anticipo, construir PICKIT te sale casi por el mismo precio que comprar el original, a lo mucho te ahorras unos 20 dolares... yo lo construi con 45 dolares para ser exacto.

hola dinoelectro disculpa por no haberte contestado antes, los xbee segun el tipo, pueden costar entre 35 y 50 dolares los que trabajan sobre 2.4Ghz que tienen un alcance de 100m a 1 milla hay otros que pueden trabajar el bandas de mas baja frecuencia 430Mhz y tienen alcances de hasta 20Km pero estos son un poco mas costosos y requieren de algunas antenas para aumentar ganancia http://www.digi.com/technology/wireless/products lo puedes comprar en http://www.sparkfun.com/products/8742

Gracias Carlos por la info... para experimentar comenzare con el mas economico... todavia no me contestas??? que circuito integrado utilizaste para acondicionar la senal de tu electrocardiografo???? :LOL::aplauso::aplauso::aplauso::aplauso:
 
Última edición:
Hola Dinoelectro, me encanto tu contribución, y aunque soy nuevo en esto de la programación por pic, estoy interesado en armar un tarjeta DAQ para labview, y tengo todos los materiales necesarios, solo que yo utilizo siempre para programar el pickit3 pero lo uso en lenguaje .ASM, uso el Mplab del fabricante para la programación y la configuración de bits. En este proyecto me podrías decir como grabo (quemo) la información en el PIC? Soy nuevo en este tema del HID bootloader y demas... Veo que suministras un archivo .Hex para la simulación en proteus, puedo usar este mismo para programar el pic? MUCHAS GRACIAS DE ANTEMANO!
 
Para acondicionar la señal se uso un ina128 de Texas Instrument con una configuracion de filtros recomendados en el datashet del opa333 en ñla pagina 11, luego adquiero la señal en un pic18f4550 y realizo un filtro rechasabanda(60hz) digital IIR en el mismo, labview solo se encarga de visualizar.
 
Buenas tardes a todos, Ya solucione el problema con el pickit3 y ya pude programar, lo único que se me ha complicado es que la configuración de bits del 18f4550 con pickit 2 es la mencionada en el archivo, pero con el pickit3 es diferente, alguien me podría colaborar??
 
Atrás
Arriba