proyectos labview con pic basic pro y ccs compiler (serie-paralelo y usb)

Que tal compañeros habro este nuevo hilo para efectuar proyectos con conunicacion serial, puerto paralelo y usb, empezando con el protocolo de comunicacion rs 232, los proyectos consistiran en visualizacion de temperatura , graficacion, manejo de puertos del pic por medio de labview, luces secuenciales, semaforos,visualizacion de mensajes en lcd digitado desde el computador a traves de labview, control de motores dc,servos y pap, manejo de asecensores ludicos,entre otros, se acepta sugerencias.
 
Que tal amigos iniciaremos con los proyectos labview y pic tomando como referencia el pic 16f877A y la comunicacion por el protocolo rs 232, para ello se manejara ladview como lenguaje grafico de proceso por lo que anexo documento de manejo de array, cluster y string ,asi como documento de utilizacion de puertos serie y paralelo con labview en formato pdf y comprimido.

Por ultimo anexo explicacion detallada del puerto usart del pic 16f877A para el desarrollo de los proyectos.

Esta es la informaciónramcion base para comenzar.
 

Adjuntos

  • info labview-pic(2).zip
    921.4 KB · Visitas: 2,937
  • DESCRIPCION DETALLADA DEL PUERTO USART PIC 169F877A.pdf
    173.8 KB · Visitas: 2,560
Con la idea de aclarar dudas y comenzar con un proyecto sencillo realizo la siguiente introduccion donde especifico el compilador a utilizar.

Serial PIC

La interfaz entre los dispositivos electrónicos utilizados es mediante comunicación asincrónica RS-232, cada equipo trabaja con distinta velocidad de transmisión así como diferente tecnología y protocolo de enlace, denotando que la comunicación entre los componentes es la parte más compleja del sistema desarrollado.

La interfaz RS-232 es el estándar más usado en las comunicaciones seriales, enlaza dos dispositivos conectando la línea transmisora de un equipo con la línea receptora del otro.

Ambos terminales pueden conversar simultáneamente (full duplex), además, puede haber líneas de protocolo destinadas a controlar las comunicaciones, pero su implementación varía ampliamente y no se utiliza en muchos casos.

El enlace RS-232 envía señales de tensión por las líneas, con referencia a tierra, dispone de un alcance máximo de 15 metros entre equipos y un amplio rango de velocidades de transmisión de datos.

RS-232 permite agregar o borrar bits al tren de datos seriales, los bits que se emplean son de inicio, parada y paridad, además son controladas independientemente la transmisión, recepción, estados de línea, configuración de datos e interrupciones.

Las características de la interfaz serie son totalmente programables y emplea los siguientes parámetros:

1. 6, 7 u 8 bits por carácter.
2. Detección de paridad par, impar o no paridad.
3. Generación de 1, 1.5 o 2 bits de parada.
4. Generación de velocidades altas de transmisión.


COMPATIBILIDAD

Cuando se intenta comunicar dos dispositivos usando la interfaz RS-232, se deben cuidar 4 aspectos de compatibilidad entre los sistemas:

1. La designación funcional de los dispositivos (DTE o DCE).
2. La velocidad de la transferencia de los datos (bit por segundo o baudios).
3. El formato de los datos, es decir, bits de inicio, paridad, y parada.
4. Las líneas de control que usan ambos dispositivos.

VELOCIDAD DE TRANSMISIÓN

Uno de los parámetros más importantes que se deben establecer correctamente entre los dos dispositivos que se comunican a través de una interfaz es la velocidad de transferencia de los datos.

La única norma de datos utilizado en aplicaciones computacionales es el código
ASCII (American Estándar Code for Information Interchange), este es un código de 7 bits que puede representar hasta 128 caracteres separadamente, existen 96 caracteres imprimibles y 32 caracteres de control.

Aunque se utilizan 7 bits para representar un carácter ASCII, se usan comúnmente 8 bits, el octavo bit es designado como un bit de paridad y se utiliza para chequear los errores que pudieran producirse entre la creación de un string y su lectura, siempre se pone a (1L) o (0L) de modo que el número total de bits 1L es siempre par o impar. Si por ejemplo, se selecciona paridad par y se detecta un número impar de bits 1L en el byte del carácter transmitido, este byte debe contener un error.

La adición del bit de paridad al byte de datos es un mecanismo simple para aumentar la confiabilidad de los datos transferidos. Este bit es generado por el controlador asincrónico y es chequeado por el receptor, el cual debería ser configurado para un formato de datos similar al del transmisor. El chequeo de la paridad no es parte de la norma RS-232 y debe ser parte del software que se utilice en la comunicación. Las posibilidades de paridad en la transferencia de datos es la siguiente:

• Ninguna.- No se incluye paridad en el byte transferido.
• Par.- Se agrega un bit al byte total de modo que el carácter completo incluyendo los bits de partida término, información y de paridad tenga un número par de bits.
• Impar.- El string completo tiene un número impar de bits.
• Uno.- Se agrega siempre un bit 1L a todos los caracteres transferidos.
• Cero.- Se agrega un 0L a todos los caracteres transferidos.

El compilador PicBasic Pro (PBP) es un lenguaje de programación que permite realizar rápidamente programas en micro controladores PIC. El lenguaje Basic es más fácil de leer y escribir, además como es un compilador real los programas se ejecutan mucho más rápido.

El PBP permite programar una variedad de micro controladores de diferente número de pines y que disponen de convertidores A/D, temporizadores y puertos seriales.

PBP genera programas sobre la base de un PIC con un cristal de 4 Mhz. Todas las instrucciones asumen un tiempo de 1 microsegundo para sus retardos y los comandos para transmisión serial disponen de baud rate exactos.

Para utilizar otro oscilador se debe indicarle al PBP que cambie los parámetros que no son los encontrados por defecto, con el siguiente comando:

@ device XT_OSC 20 ;Oscilador de 20 MHz tipo cristal
DEFINE OSC 20

Los programas que se desarrollan en esta aplicación tienen como base la comunicación serial asincrónica y para este propósito el programa PBP es de mucha ayuda, ya que se puede emplear una sola instrucción para ejecutar la comunicación serial con un dispositivo, además la salida o entrada de datos se efectúa por el pin que se especifique y no es necesario utilizar driver RS-232 debido a que PBP puede invertir la señal de los bits.

Para la comunicación con el receptor Computador el comando ejecutado es el SERIN y SERIN2 y la transmisión SEROUT y SEROUT2.

SERIN y SERIN 2

Con estos comandos se puede recibir datos asincrónicamente por determinado pin, la instrucción tiene la estructura compuesta por:

“SERIN2Data pin, Mode,[datos] o SERIN2 Data pin, Mode,[datos]””

• Data pin.- Es el pin seleccionado como entrada
• Mode.: Utilizado para especificar el baud rate y los parámetros de operación de la transferencia serial.
• Datos: Es la información recibida

El parámetro Mode se emplea para especificar el baud rate y los parámetros de operación de la transferencia serial, para encontrar su valor se resuelve la ecuación:

Mode = (1000000/baud rate)-20

El valor decimal encontrado se convierte a número binario, posteriormente se completan los bits que corresponden a los demás parámetros de comunicación como sigue:
Los 13 bits de menor orden seleccionan el baud rate
El bit 13 selecciona paridad ó no paridad.

• Si el bit13=1 equivale a paridad par
• Si el bit13=0 equivale a sin paridad

El bit 14 selecciona el nivel de los pines de datos y de control de flujo.
• Si el bit 14=0, los dato se reciben en forma normal y se utiliza drivers RS-
232.
• Si el bit 14=1, los datos se reciben invertidos evitando emplear drivers RS-
232
El bit 15 no se utiliza.
Una vez completados los 15 bits se convierten a número decimal y se coloca en la instrucción.


SEROUT y SEROUT2.

SEROUT Pin, Mode, [Item [, Item...}] o SEROUT2 Pin, Mode, [Item [, Item...}]
Envía uno ó más Ítems a Pin, en formato estándar asincrónico usando 8 bits de datos sin paridad y 1 stop bit (8N1) .
Pin es automáticamente colocado como salida. Pin puede ser una constante, 0 - 15, ó una variable que contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0)
Los nombres Mode (p.ej. T2400) están definidos en el archivo MODEDEFS.BAS.
Para los, se agrega la línea:
Include “modedefs.bas” al comienzo de su programa PBP.
Se puede realizar comunicacion sin la MAX 232 con PBP configurando el Mode a "N" por ejemplo N9600 en el caso que deseemos transmitir utilizaremos una resistencia de 330 Ohms en el pin del pic que realizara la operacion, en cuanto a la recepcion nos valdremos de un resisitencia alta 2.2 K Ohms conectada al resipectivo pin del pic que urtilizaremos.
 
Que tal amigos vamos con el desarrollo de nuestro primer proyecto el cual consiste en la visualizacion por el puerto B del pic 16f877A de un dato enviado desde Labview con extensión de 255 a traves de LEDs la información pertinente al proyecto esta en formato adjunto pdf donde se explica el desarrollo del proyecto.
 

Adjuntos

  • Proyecto 1.pdf
    651.4 KB · Visitas: 3,036
en el buscador de google encuentras lo que necesitas

Que tal vamos con el segundo proyecto "manejar el PuertoB del pic 16f877A desde labview a traves de controles booleanos. El mismo montaje del proyecto anterior el mismo programa de pbp lo unico que cambia es la interfaz desde labview , luego vere como subo los videos de los circuito funcionando ya que ni se como es que se hace les anexo explicacion de labview.

Les adelando el tercero un semaforo desde labview visualizado a traves de leds por medio del pic 16f877A.
 

Adjuntos

  • Proyecto 2.pdf
    181.8 KB · Visitas: 1,989
Última edición:
Que tal amigos vamos con el proyecto 3 semaforo de dos interceppciones utilizartemos el mismo programa y pic de los proyectos anteriores
 

Adjuntos

  • eagle.zip
    75.3 KB · Visitas: 1,139
que tal el siguiente proyecto es escribir mesajes desde pc y visualzarlos en lcd 2x16 todo a traves de labview con pic 16f877A:

@ DEVICE XT_OSC
DEFINE OSC 4
INCLUDE "MODEDEFS.BAS"
DATO VAR BYTE ;VARIABLE DE ALMACENAMINETO DESDE LABVIEW
' Define LCD registers and bits
Define LCD_DREG PORTA
Define LCD_DBIT 0
Define LCD_RSREG PORTE
Define LCD_RSBIT 1
Define LCD_EREG PORTE
Define LCD_EBIT 0
ADCON1 = 7 ' PUERTO A Y E COMO DIGITALES
LCDOUT $FE,1,"LCD LISTO"
LCDOUT $FE,$C0,"MICROCONTROLADOR"
Pause 2000
LCDOUT $FE,1

loop:


SERIN PORTC.7,N2400,DATO ; esperar dato de labview y guarda en variable
LCDOUT,DATO ; mostrar dato en lcd
Goto loop '
End

les dejo en formato imagen el entorno de labview
 

Adjuntos

  • labview lcd.zip
    34.8 KB · Visitas: 1,206
hola a todos.

mecatrodatos serias tan amable de ayudarme con un error que me sale cuando monto el proyecto 1. Ya revise que la configuracion del control paridad se 1. None, 2. Odd etc... pero sigue diciendo: "You have two or more enumeration data types wired together, but the enumerations are different. The list of items in the enumerations must be exactly the same." muchas gracias por tu aporte, me esta siendo de gran ayuda. dos cositas mas, me ayudarias mucho con una tutorial para hacer el lector del puerto serial, y segundo me gustaria saber si hay alguna forma de probar sin el microcontrolador algo asi como un terminal virtual, gracias.
 

Adjuntos

  • error.jpg
    error.jpg
    55.5 KB · Visitas: 448
Última edición:
Que tal amigo george mason si tenes el hypeteminal , el entorno de microcode o proton realiza lo siguiente para ver si se reciben y transmiten datos sin necesidad de pic conectas al puerto serie de tu computadora un cable de transmision y puenteas los pines 2 y 3 , con hyperteminal habres el puerto y escriber cual quier dado si el puerto esta bien en la mantalla de recpcion aparecera lo que trasnmitiste, lo mismo sucede en el entorno de Serial Communicator de pic basic pro como en proton.

Realiza esto y me cuentas como te fue , esto es para probar la comunicacion del puerto serial y descartar si es el microcontrolador, software o la interfaz de labview , el mismo procedimento lo puedes hacer en labview siempre y cuando este configurada la lectura y escritura del puerto a utilizar con la velocidasd de transmision.

Amigo robinson te anexo documento de labview del proyecto 1 como explicacion y montaje en proteus espero te sirva , lo que te pasa es que no estas utilizando el icono correspondiente en el documento te lilustro como decia un tutor mio el conocinemto se capta mejor con imagenes .

el labview que utilizo es el 8.0

Mirare como puedo subir los videos de los proyectos , pero no se como hacerlo, todos los que he postado funcionan 100%
 

Adjuntos

  • software.zip
    3.2 KB · Visitas: 1,211
  • hardware.zip
    3.3 KB · Visitas: 1,017
  • labview y proteus.zip
    592 KB · Visitas: 1,630
Última edición:
hola mecatrodatos estan bien vacanes los proyecto ps pero me sale un error en labviwe cuando intento iniciar ps me sale algo como que falta la libreria visa, el labwive que uso ees el 8.5 podrias ayudarme
gracias
 
Que tal la unica seria que encontraras en Google los driver de visa para la versio 8.5 trabajo con la 8.0 por que no he logrado encontrar en la red la 8.5 que funcione bien con vVISA, la otra seria que estuviera mal instalado.
 
hola mecatrodatos estuve leyendo lo de los temas de comunicacion ps me dejaron untrabajo ( estudio en senati - peru) esun proyecto en el cual debo de comunican el pic 16f877 con el labwive, en el cual en la entrada analogica del pic 16f877 debo poner un sensor de temperatura y los datos debo enviarlos al labwive para poder visualizarlo y cuandollege a un cirto limite el lawive le mande un dato pal pic y que prensa un led en el puerto B, bueno me estoy ayudando dee tus proyectos ps pero si puedieras ayudarme de esta manera espesifica te agradeceria muxo , ademas no me sale la parte de visa resorce name osea la parte de control donde sale I/O SI PUDIERAS AYUDAREM DE MANERA GRAFICA PARA PODER HACERLO TE LOA GRAECERIA AUN MAS, PERO SINO EXPLICAME COMO LO DEBERIA HACER MUXAS GRACIAS :)
 
Yo baje el instalador visa que pesa mas de 300MB, y ya funciono el puerto serial.
Mi problema es con labview mando daros del adc en forma continua los datos de 3 caracteres separados con mas el byte espaciador, como hago que labview lea caracter por caracter y detectar el espaciador (0x20), por que lo lee de corrido.
Lo necesito para repecentar un termometro.
 
hola como estas mecatrodatos mira estan vacannes los proyectos con el puertos serial pero cuando mando a iniciar el proceso mesale un error como "Error -1073807202 occurred at Property Node (arg 1) in VISA Configure Serial Port (Instr).vi->puerto serial.vi" yn loes estoy practicando para poder hacer lo que te expuse anterior mente pero nada que siempre me sale este error y abajo de ese error me sale "LabVIEW: (Hex 0xBFFF009E) VISA or a code library required by VISA could not be located or loaded. This is usually due to a required driver not being installed on the system."
ojala puedean ayudarme graCIAS
 

Adjuntos

  • Serial.jpg
    Serial.jpg
    73.1 KB · Visitas: 338
Última edición:
Que tal amigo pavel subi el proyecto 1 montado en labview 8.0 descargalo y ponlo a correr en el labview que tienes , si sigues con el error es porque no tienes instalados los driver para utilizar el puerto serie a traves de Visa la unica opcion que veo es que los bajes de la pagina que facilito nuestro amigo uagav, ya que al principio cuando desarrolle algunos ejemplos me arrogaba estos errores y era porque la version que tenia no trabaja bien con Visa y un amigo me facilito el labview 8.0 y todos los proyectos que creia estaban mal funcionaron perfectamente bajo esta version.

otra opcion es la siguiente en labview busca open ejercicios serial habre uno y pon lo a correr si sigue el error no hay mas que hacer toca conseguir la version que tenga los driver para trabajar con Visa SERIAL
 
Última edición:
hola estuve intentando ver lo de tus proyectos pero pomas que
descargo los instaladores , pero mecatrodatos tu dice que con la version labview 8 no te genero prolemas verdad, me podrias decir como lo descargaste.
Espero que me ayudes gracias
 
Atrás
Arriba