# Adquisicion de datos a traves de serial o puerto paralelo



## Victor Jaramillo

Hola, que bien esta este foro, esta clase de grupo es lo que necesitamos

Les escribo para preguntar si alguien puede colaborarme con información para realizar la asquisicion de datos con PIC16F877, mediante serial o puerto paralelo y con programacion en Pic basic, me seria de muchisima ayuda.

Hasta luego y gracias


----------



## Evjair

Oiga, bueno, pues no creo que sea de mucha ayuda, ya que yo ando en lo mismo, en realidad tengo que diseñar una tarjeta de adquisicion de datos con el PIC16F877 a travez de puerto serie.. tengo un trabajo que me prestaron si quiere se lo paso...

Tambien me ayudaria todas las ideas o soluciones que usted pueda tener...

Eso si, no esta programado para PICBasic si no para MPLab que es el software que uso.


----------



## joeblack

yo se que es dificil conseguir esainformación y mas un programa que te genere una interfazentre la PC y el microcontrolador pero si no encontraras como hacerla tienes una opcion muy facil que en verdad a mi me funciono para salir del problema busca los microcontroladores PICAXE se programan mediante diagramas de flujo y no nesecitas quemador para programarlos solo es cuestion de un puerto serial y ademas la interfaz entre la PC y el micro se hace mas sencilla con un programita de Visual basic 6 y creeme que es mucho mas sencillo hacerlos funcionar asi aaaaaaa se me olvidaba ademas el circuito que te permite hacer la interfaz entre el micro y la PC es el MAX232 para que lo puedas conectar atravez del puerto serial ojala y esto les sea de ayuda
saludos.


----------



## joeblack

yo se que es dificil conseguir esainformación y mas un programa que te genere una interfazentre la PC y el microcontrolador pero si no encontraras como hacerla tienes una opcion muy facil que en verdad a mi me funciono para salir del problema busca los microcontroladores PICAXE se programan mediante diagramas de flujo y no nesecitas quemador para programarlos solo es cuestion de un puerto serial y ademas la interfaz entre la PC y el micro se hace mas sencilla con un programita de Visual basic 6 y creeme que es mucho mas sencillo hacerlos funcionar asi aaaaaaa se me olvidaba ademas el circuito que te permite hacer la interfaz entre el micro y la PC es el MAX232 para que lo puedas conectar atravez del puerto serial ojala y esto les sea de ayuda
saludos.


----------



## maunix

Amigos, antes que nada, poco puedo hacer para ayudarles con el picbasic ya que yo programo en assembly de los PICs.

El punto en cuestión es que está pregunta está puesta en el foro de interfases, y tal vez el mejor lugar sea en el de sistemas embebidos.

Más alla de eso, cuales son los requerimientos? de velodidad, precision? 

El programa correrá continuamente o habrá algo que le diga "empezá, detenete"...

Se leeran los 8 canales A/D del pic en cuestión o solo los que se distingan por el software exterior?

La interfaz con la pc es simple si la haces con el puerto serie, si utilizas el paralelo, ya dependes muuuucho más del tipo de puerto con que cuente tu pc.

Uno de los principales inconvenientes a la hora de empezar un proyecto, es  tener bien en claro que es lo que se desea hacer.... sino , se harán numerosos reintentos, vueltas para atras, hasta incluso cambios en toda la programación!

Es por eso que les pido que aclaren bien que quieren hacer.


----------



## fgomezv1980

Les escribo para preguntar si alguien puede colaborarme con información para realizar la adquisicion de datos con PIC16F877 o con dspic30f4013 y dspic30f6014, mediante puerto serial o puerto paralelo (configuracion hardware) y para ser programado en lenguaje c. asimismo quisiera saber con cual de ellos es mas facil trabajar?. y si se necesita de hardware y/o componentes adicionales para construir la interfase respectiva?. BUENO, LES ESCRIBO PORQUE NO ENCUENTRO INFORMACION AL RESPECTO. por favor, cualquier ayuda al respecto sera bienvenido. gracias.


----------



## EinSoldiatGott

fgomezv1980 dijo:
			
		

> Les escribo para preguntar si alguien puede colaborarme con información para realizar la adquisicion de datos con PIC16F877 o con dspic30f4013 y dspic30f6014, mediante puerto serial o puerto paralelo (configuracion hardware) y para ser programado en lenguaje c. asimismo quisiera saber con cual de ellos es mas facil trabajar?. y si se necesita de hardware y/o componentes adicionales para construir la interfase respectiva?. BUENO, LES ESCRIBO PORQUE NO ENCUENTRO INFORMACION AL RESPECTO. por favor, cualquier ayuda al respecto sera bienvenido. gracias.



Hola, en este foro alguien puclicó algo de como obtener datos.

Lo más fácil es el paralelo.

Busque ese tema, creo que esta bien explicado.

Saludos

Mire lo encontré
https://www.forosdeelectronica.com/f19/puerto-paralelo-entrada-2150/


----------



## Martini

estoy haciendo un proyecto similar de fin de semestre pero soy novato y no se bien que hacer, a mi entrada de mi pic, en cualquiera de sus puertos meter una señal y esta enviarla a una computadora por medio del puerto serial y en la computadora graficar la señal de entrada del pic. estoy atorado en la parte de como enviar los datos por el puerto serial y como graficarlos en la pc.


----------



## ncoliv

te agradeceria mucho si me remitieras el trabajo de adquisicion con pic 16f877, ando tbien en lo mismo y con muchas ganas de trabajar en esto o cualquier información que me puedas brindar, desde ya muchas gracias.


----------



## Martini

hey! pues claro para eso es esta comunidad, tengo el codigo, lo que necesitas es un integrado llamado Rs232, es el que convierte el voltaje de salida del pic en voltaje TTL para el puerto serial.
El diagrama ya no lo tengo, pero es simple, pero he aqui el codigo que use, solo es configurar el PWM y el USART dentro del pic, alguna duda


----------



## Javier Rambaldo

Esta es una forma "barata" de conectarse a un puerto serie de una PC, desde un microcontrolador (por ejemplo un PIC).

http://www.pablin.com.ar/electron/circuito/mc/ttl232/

Aqui tienen el MAX232 para hacer lo mismo. Utiliza un conversor CC interno de 5V a +/-12V para generar las señales segun norma RS232.

http://robots-argentina.com.ar/Comunicacion_max232.htm

Salu2.


----------



## ncoliv

Gracias por la respuesta , pero me comentarias como realiza la adquisicion, por favor


----------



## ZOH

Ya sabiendo que necesitam usar el max232 para la conversión de voltaje, les voy a dejar un ejemplo en C para el micro:

#include <16F877A.H>
#include <stdlib.H>
#use delay(clock = 20000000)
#fuses XT,NOWDT,NOPROTECT
#use rs232(baud=57600,xmit=PIN_C6,rcv=PIN_C7)


void main( void )
   {
   int sig, del;
   //-----------------------------
   del = 500;
   //-----------------------------
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_adc_ports(ALL_ANALOG);
   while(true)
      {
      //-----------------------------
      set_adc_channel(0);
      delay_ms(del);
      sig = read_adc();
      printf("Cha_0 = %x\n\r",sig);
      delay_ms(del);
      //-----------------------------
      set_adc_channel(1);
      delay_ms(del);
      sig = read_adc();
      printf("Cha_1 = %x\n\r",sig);
      delay_ms(del);
      //-----------------------------
      }
   }

COn eso ya envia lo que adquiere en el canal 0 y 1 al puerto serial


----------



## Lord John

Hola  , como estan tengo un problema, programe en C un pic 16F877A logre la comunicacion por medio del Hyperterminal pero en la ventana de este deberia mostrar un titulo de tres lineas pero lo muestra en una sola linea . La pregunta es ¿Como hago para que el texto se vea en la ventana del Hyperterminal en tres lineas?. En la simulacion en el Virtual Terminal del Programa Proteus, si salen las tres lineas. Ahi adjunto mi programita el programa que utilizo es el PCWH Compiler.

------------------------------------------------------------------------------------------------------------------------------------------------
void main()
{
   char c;
   int m=0;
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(FALSE);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   // TODO: USER CODE!

   printf("  Proyecto \r      ");// Problema
   printf("  Estudiante: \r  ");//Problema
   printf("  PETER  \r         ");//Problema

   while (1)
   {
      c=getchar();
      output_D(m);
      delay_ms(1000);
      output_D(c);
    }
}

Se supone que \r hace Enter o nueva linea y lo que sale en el Hyper es  esto PETERiante

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

Gracias.


----------



## sangreaztk

Checando la siguiente tabla ascii: http://www.asciitable.com/
nos indica que para hacer un salto de linea es enviando el valor 10decimal. Y además, recuerdo que en C para imprimir un salto de linea era con '\n', por lo menos en el C tradicional.
Buena Vibra!


----------



## Lord John

Tenes razon    \n para el c tradicional, pero con PIc C compiler es \r, pero ya encontre la solucion Grabe en el micro una cadena de caracteres y con "puts" logre imprimir las lineas que queria.

Gracias


----------



## pedrov

hola a todos yo necesito obtener datos de forma serial y transformarlos a su salida en paralelo si alguien me ayuda me seria de mucha ayuda


----------



## josoft

puedes usar un microcontrolador QG8
programado en c lee una senal analoga y atravez de un max 232 hacia la pc utiliza labview si quieres tratar la senal sino solo veela en la hiperteminal


----------



## pedrov

ok gracias aunque a la final use un 877 y tuve que programarlo en asemble gracias de todos modos


----------



## djxero

yo estoy trabajando en algo parecido con un 16f84a.....


----------



## Lovak

Con respecto a la adquisicion de datos usando el puerto paralelo, hago una practica de controlar leds por medio de una interfase de labview, me serviria usar el buffer 74ls244?, eso use para hacer lo mismo pero utilizando matlab.
Si me ayudaria mucho poder diseñar una tarjeta de adquisicion de datos enfocado en lo que es el NI LabView.
Muchas Gracias


----------



## kaymar

ZOH dijo:


> Ya sabiendo que necesitam usar el max232 para la conversión de voltaje, les voy a dejar un ejemplo en C para el micro:
> 
> #include <16F877A.H>
> #include <stdlib.H>
> #use delay(clock = 20000000)
> #fuses XT,NOWDT,NOPROTECT
> #use rs232(baud=57600,xmit=PIN_C6,rcv=PIN_C7)
> 
> 
> void main( void )
> {
> int sig, del;
> //-----------------------------
> del = 500;
> //-----------------------------
> setup_adc(ADC_CLOCK_INTERNAL);
> setup_adc_ports(ALL_ANALOG);
> while(true)
> {
> //-----------------------------
> set_adc_channel(0);
> delay_ms(del);
> sig = read_adc();
> printf("Cha_0 = %x\n\r",sig);
> delay_ms(del);
> //-----------------------------
> set_adc_channel(1);
> delay_ms(del);
> sig = read_adc();
> printf("Cha_1 = %x\n\r",sig);
> delay_ms(del);
> //-----------------------------
> }
> }
> 
> COn eso ya envia lo que adquiere en el canal 0 y 1 al puerto serial



Disculpa, a que puerto manda la salida?? y en cuanto a los baudios y todo eso, cuanto o cómo??

Saludos y gracias!!!!!


----------



## Chico3001

Revisaste el codigo?



> #use rs232(baud=57600,xmit=PIN_C6,rcv=PIN_C7)


----------



## kaymar

Una molestia mas, si quisiera escribir  algo o mejor dicho enviar algún dato???

usaría write (por así decirlo)?

Saludos y gracias de antemano


----------



## EDWIN MALPUD

hola buenos dias....soy estudiante de electronica y estoy desarrollando un tarjeta de adquision de datos con 4 entradas analogas, como microcontrolador uso el ATMEGA16 en lenguaje ensamblador. les agradezco su ayuda y pronta respuesta...DIOS LOS BENDIGA.


----------



## Fogonazo

EDWIN MALPUD dijo:


> hola buenos dias....soy estudiante de electronica y estoy desarrollando un tarjeta de adquision de datos con 4 entradas analogas, como microcontrolador uso el ATMEGA16 en lenguaje ensamblador. *les agradezco su ayuda y pronta respuesta*...DIOS LOS BENDIGA.



¿ Y cual es la pregunta ?

1) Publica el esquema de la placa que desarrollaste.
2) Publica el programa.


----------



## EDWIN MALPUD

la pregunta mia es...como comunico el ATmega16 con la memoria externa?...yo trabajo en lenguaje ensamblador


----------

