SlideShare una empresa de Scribd logo
Tutorial Básico Control Puerto Paralelo con Visual Basic 6.0
Introducción.

Este pequeño tutoríal proporciona los pasos básicos para controlar el puerto paralelo
desde Visual Basic 6.0. Lo que se intenta es poder enviar pulsos o señales por medio de
este y recibir pulsos o señales por medio de el.

La información que se encuentra en este texto fue adquirida en Internet y conocimientos
adquiridos (experiencia del escritor).

Material.

Puerto paralelo.
Microsoft Visual Studio 6.0.
1 Led.

   Empecemos con el puerto paralelo. Este es un conecto DB25 obvio con 25 pines lo
   cuales están numerados y tienen una función especifica cada uno de ellos.




   Podemos ordenar cada uno de los pines o bytes en:

   Dataport

   pin 2 - D0   pin 3 - D1
   pin 4 - D2   pin 5 - D3
   pin 6 - D4   pin 7 - D5
   pin 8 - D6   pin 9 - D7

   Statusport

   pin 10 – ACK       pin 11 - BUSY
   pin 12 - PAPER END pin 13 - SELECT IN
   pin 15 - ERROR



                                                                                     1
ControlPort

   pin 1 – STROBE          pin 14 - AUTO FEED
   pin 16 – INIT           pin 17 - SELECT

   La parte de GND, son los tierra
   del 18 al 25


   1. El Dataport se usa como salida.
   2. El Statusport se usa como entrada.
   3. El controlport se usa de las dos formas anteriores.

Es decir que para encender led’s mandando voltaje al puerto usaremos el Dataport, para
recibir niveles de voltaje usaremos el Statusport.

Es importante no conectar al revés las cosas en el puerto ya que existe la posibilidad de
dañarlo.

En este caso mencionare la forma en que se conecta y controla pero también mencionare
que mi computadora no contaba con puerto paralelo. Una vez adquirido el puerto
paralelo de tipo PC-I fue colocado en la ranura correspondiente y se le instalo el
controlador indicado.

El puerto paralelo maneja direcciones de memoria asignadas por el SO. No se si son
pilas o colas pero son direcciones de memoria, estas direcciones están numeradas en
código hexadecimal y son utilizadas normalmente para enviar ceros o unos a una
impresora. Por ejemplo:

H378

* Donde la H indica que es hexadecimal.
* El 378 es el número hexadecimal.

Una vez dicho y entendido esto se debe tener alguna forma de controlar esto desde el
lenguaje visual Basic, desafortunadamente al ser un lenguaje de alto nivel visual no
tiene la capacidad de controlar hardware por si solo, este tipo de circunstancias se
controlan con C o C++ ya que estos lenguajes tiene esa capacidad.

Afortunadamente para nosotros se puede aprovechar la característica de Windows de
utilizar DLL (Dynamic Linking Library (Bibliotecas de Enlace Dinámico)) y ya que
algún experto programo una DLL en C++ para controlar este dispositivo nosotros
podemos utilizarla en Visual Basic.

Esta DLL mágica es la inpout32 la cual tiene la capacidad de mandar y recibir señales o
pulsos por el puerto paralelo. Existen varias versiones, varias de ellas no funcionan en
XP y mucho menos en Vista, pero después de buscar y buscar por Internet encontré una
que si funciona perfectamente en XP y Vista incluso te da su código y muchas cosas
mas, esta DLL se supone que esta adjunta con este tutorial.



                                                                                        2
Una vez comprendido esto hablemos de las direcciones de memoria anteriormente
mencione la dirección de memoria que utiliza el puerto paralelo para funcionar esta se
puede ver en:

Botón de inicio/Mi PC/botón derecho del ratón/propiedades/hardware/administrador de
dispositivos/puertos (COM & LPT)/doble clic en tu puerto LPT/recursos.




Como se ve en la imagen los primeros intervalos corresponden a Dataport (salidas del
puerto paralelo) es decir:

  Pin         2         3         4         5         6        7          8        9
Memoria      378       379       37A       37B       37C      37D        37E      37F

Como se puede ver se omitió el 0 y también se puede observar que es la misma
dirección que usamos en el ejemplo del código hexadecimal.

El otro intervalo es para el Statusport y funciona de la misma manera.

Esto no quiere decir que para todas las maquinas sea la misma. Como mencione al
principio de este escrito mi PC no contaba con puerto paralelo por lo que le agregue un
PC-I y mis direcciones quedaron de la siguiente manera.




Es muy recomendable siempre checar las direcciones para no presentar errores ni
confusiones, este simple paso ahorra muchos dolores de cabeza.


                                                                                        3
Para la programación se necesita comprender la forma en que serán enviados los datos,
señales o pulsos al puerto y es de la manera siguiente.

Se envían datos binarios y dependiendo del valor son los pines utilizados:

    Pin              2        3        4         5          6           7            8            9
Valor Binario        1       10       100      1000       10000      100000       100000      10000000
                                                                                     0
Valor decimal        1        2        4         8          16          32          64            128

Por ejemplo:

Si queremos mandar señales por el pin 2 y el 5 pues se hace la suma.

1+8=9

Y ese valor es el que se envía en binario 1001.

Digamos que necesitamos el pin 5 y 9 la suma es:

8 + 128 = 136

Y en binario es 10001000.

Si queremos prender todos los led’s conectados al puerto paralelo pues se pone:

Valor.- 1111111 = 255

Si queremos apagar todos los led’s conectados al puerto paralelo pues se pone:

Valor.- 0 = 0


NOTAS:
  • Se puede ver que el pin de menor peso es el numero 2 por lo que hay que
    empezar a contar por hay.
  • Normalmente el puerto paralelo esta enviando señal por todos los pines.
  • No es necesario enviar el dato binario ya que la DLL inpout32 los convierte
    basta con enviar el dato decimal.

Es hora de comenzar.

Para poder enviar datos al puerto paralelo desde visual Basic utilizando la DLL
inpout32 se usa el comando Out:

Su sintaxis es:
out (numero de pin desde donde se desea empezar a contar “pin con menor peso”, dato en decimal o binario).




                                                                                                         4
Por ejemplo:

Out &H378, 255

   Donde: Se omite el paréntesis.
          &H indica que el valor es hexadecimal.
          Se separa con “,”.
          El 255 indica que pines serán usados.

Normalmente se utiliza la primera dirección de memoria y el pin numero 2 como el de
menor peso, de no ser así cambia la suma y los valores adquiridos por los pines que le
siguen al de menor peso.

Programación:

   1) Creamos un nuevo proyecto EXE estándar en VB6 en el formulario agregamos
      2 botones.

                 Nombre                                       Texto
                Command1                                     Prendido
                Command2                                     Apagado




   2) Abrimos el código y agregamos.

       Private Sub Command1_Click()
              Out &H378, 0
       End Sub

       Private Sub Command2_Click()
              Out &H378, 1
       End Sub

Agregamos un modulo “Archivo/agregar modulo” y ponemos.

       Public Declare Function Inp Lib "inpout32.dll" _
       Alias "Inp32" (ByVal PortAddress As Integer) As Integer
       Public Declare Sub Out Lib "inpout32.dll" _
       Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

      Es importante copiar y pegar la DLL inpout32 en C:WINDOWSsystem32 si
      ponemos el código en el modulo tal cual.



                                                                                         5
Yo y mucha gente mas a escuchado la frase “los que es del cesar a l cesar” pues
      en nuestro caso seria “lo que es del SO. Al SO.” A que me refiero con esto no es
      muy recomendable mezclar cosas vitales del SO. Con otras cosas externas por lo
      que nuestra DLL seria mejor ponerla en otro lugar, digamos que se instala
      nuestro programa en una PC pues la DLL debería estar en la carpeta donde se
      instalo, en este caso supongamos que la tenemos en un pendriver o usb con la
      letra H: asignada y una carpeta con nombre serial, pues el código seria el
      siguiente:

       Public Declare Function Inp Lib "H: serialinpout32.dll" _
       Alias "Inp32" (ByVal PortAddress As Integer) As Integer
       Public Declare Sub Out Lib "inpout32.dll" _
       Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)




       Como ven lo único que cambia es el path, ¡que fácil es la vida verdad!

   3) Si corremos el programa y presionamos los botones pues no pasa nada y eso es
      bueno quiere decir que esta bien, lo que pasa es que no esta conectado nada.

   Si te sale un error como este al momento de compilar o apretar un boton.




Pueden ser 2 cosas.

   1) La DLL inpout32 no esta en C:WINDOWSsystem32 o no esta en el path
      indicado.
             Solución.-Verifica que esta en el lugar indicado.




                                                                                     6
2) La DLL inpout32 no es compatible con XP o Vista es una versión anterior que
       solo funciona en sus predecesores de XP. Claro si su SO. Es Windows XP o
       Vista.
              Solución.- Usa la que se encuentra con este tutorial.

Yo e mirado que es necesario para controlar un solo pin o bit que prenda un led lo
siguiente:

Material Necesario

1 Puerto paralelo libre
1 Moc3010m
1 Triac (A los Amperes que trabaje el dispositivo I=P/V)
1 Resistencia 560 Ohms
1 Resistencia 220 Ohms
1 Led
1 Conector Db25 Macho
Cable para interconexiones (Puede ser del de Red de 8 Hilos)
1 Fusible (Al amperaje del dispositivo)
1 Clavija CA con cable


Pues la verdad yo no ocupe tanto, solo use el puerto paralelo libre una extensión de
puerto paralelo es decir un cable de puerto paralelo y un led.

Conectar el led y probar nuestro programa.

1) Conectamos la extensión al puerto paralelo.
2) En el pin 2 conectamos la pata del led (+).
3) En cualquier pin entre 18 y25 conectamos la pata (-).
4) Corremos nuestro programa.
5) Apretamos los botones y miramos.

Para leer un dato desde el puerto se usa la instrucción Inp.

Más información de esto en:

http://foro.elhacker.net/programacion_general/introduccion_a_la_programacion_por_pu
ertos_en_visual_basic-t47786.0.html


Espero que esto le sea de ayuda, cualquier duda comentario o sugerencia escriban a
daco_tutor@hotmail.com

Tutorial Básico Control Puerto Paralelo con Visual Basic 6.0 realizado por:
Ing. Diego Alberto Ortega Carreto




                                                                                     7

Más contenido relacionado

La actualidad más candente

Electrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosElectrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
SANTIAGO PABLO ALBERTO
 
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
Tarun Khaneja
 
secuenciador de luces
secuenciador de lucessecuenciador de luces
secuenciador de luces
leyla
 
Laboratorio de Microcomputadoras - Práctica 05
 Laboratorio de Microcomputadoras - Práctica 05 Laboratorio de Microcomputadoras - Práctica 05
Laboratorio de Microcomputadoras - Práctica 05
Cristian Ortiz Gómez
 
Manual fallas y soluciones de componentes de cómputo.
Manual fallas y soluciones de componentes de cómputo. Manual fallas y soluciones de componentes de cómputo.
Manual fallas y soluciones de componentes de cómputo.
YERANIAL
 
Asignacion unidad ii
Asignacion unidad iiAsignacion unidad ii
Asignacion unidad ii
Yorvy Chirinos
 
Decodificadores multiplexores
Decodificadores multiplexoresDecodificadores multiplexores
Decodificadores multiplexores
Angel Morales
 
FPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLERFPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLER
Varun Kambrath
 
Desensamble y ensamble de la pc de escritorio
Desensamble y ensamble de la pc de escritorioDesensamble y ensamble de la pc de escritorio
Desensamble y ensamble de la pc de escritorio
lasmaslindas1221
 
Arduino - Ejercicios Básicos
Arduino - Ejercicios BásicosArduino - Ejercicios Básicos
Arduino - Ejercicios Básicos
Mario José Platero Villatoro
 
Arduino c++ y puerto serie
Arduino c++ y puerto serieArduino c++ y puerto serie
Arduino c++ y puerto serie
Ángel Acaymo M. G.
 
Memoria prom y eprom
Memoria prom y epromMemoria prom y eprom
Memoria prom y eprom
pollo7
 
Microcontroladores ver2.0
Microcontroladores ver2.0Microcontroladores ver2.0
Microcontroladores ver2.0
ITS EL ORO
 
Unidad Aritmética Lógica (UAL)
Unidad Aritmética Lógica (UAL)Unidad Aritmética Lógica (UAL)
Unidad Aritmética Lógica (UAL)
LuisFerrer46
 
Fault detection and test minimization methods
Fault detection and test minimization methodsFault detection and test minimization methods
Fault detection and test minimization methods
praveenkaundal
 
Interfacing rs232
Interfacing rs232Interfacing rs232
Interfacing rs232
PRADEEP
 
FUENTE DE PODER DE UN PC
FUENTE DE PODER DE UN PCFUENTE DE PODER DE UN PC
FUENTE DE PODER DE UN PC
Carlos Correa
 
Taller de pueba
Taller de puebaTaller de pueba
Taller de pueba
Angelica Casas
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
azhagujaisudhan
 
Manual de soporte técnico a distancia.
Manual de soporte técnico a distancia.Manual de soporte técnico a distancia.
Manual de soporte técnico a distancia.
YahairaReyes
 

La actualidad más candente (20)

Electrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronosElectrónica digital: Tema 7 Sistemas secuenciales síncronos
Electrónica digital: Tema 7 Sistemas secuenciales síncronos
 
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
8051 microcontroller lecture ppt by Tarun Khaneja ( 9034406598 )
 
secuenciador de luces
secuenciador de lucessecuenciador de luces
secuenciador de luces
 
Laboratorio de Microcomputadoras - Práctica 05
 Laboratorio de Microcomputadoras - Práctica 05 Laboratorio de Microcomputadoras - Práctica 05
Laboratorio de Microcomputadoras - Práctica 05
 
Manual fallas y soluciones de componentes de cómputo.
Manual fallas y soluciones de componentes de cómputo. Manual fallas y soluciones de componentes de cómputo.
Manual fallas y soluciones de componentes de cómputo.
 
Asignacion unidad ii
Asignacion unidad iiAsignacion unidad ii
Asignacion unidad ii
 
Decodificadores multiplexores
Decodificadores multiplexoresDecodificadores multiplexores
Decodificadores multiplexores
 
FPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLERFPGA IMPLIMENTATION OF UART CONTTROLLER
FPGA IMPLIMENTATION OF UART CONTTROLLER
 
Desensamble y ensamble de la pc de escritorio
Desensamble y ensamble de la pc de escritorioDesensamble y ensamble de la pc de escritorio
Desensamble y ensamble de la pc de escritorio
 
Arduino - Ejercicios Básicos
Arduino - Ejercicios BásicosArduino - Ejercicios Básicos
Arduino - Ejercicios Básicos
 
Arduino c++ y puerto serie
Arduino c++ y puerto serieArduino c++ y puerto serie
Arduino c++ y puerto serie
 
Memoria prom y eprom
Memoria prom y epromMemoria prom y eprom
Memoria prom y eprom
 
Microcontroladores ver2.0
Microcontroladores ver2.0Microcontroladores ver2.0
Microcontroladores ver2.0
 
Unidad Aritmética Lógica (UAL)
Unidad Aritmética Lógica (UAL)Unidad Aritmética Lógica (UAL)
Unidad Aritmética Lógica (UAL)
 
Fault detection and test minimization methods
Fault detection and test minimization methodsFault detection and test minimization methods
Fault detection and test minimization methods
 
Interfacing rs232
Interfacing rs232Interfacing rs232
Interfacing rs232
 
FUENTE DE PODER DE UN PC
FUENTE DE PODER DE UN PCFUENTE DE PODER DE UN PC
FUENTE DE PODER DE UN PC
 
Taller de pueba
Taller de puebaTaller de pueba
Taller de pueba
 
8051 microcontroller
8051 microcontroller8051 microcontroller
8051 microcontroller
 
Manual de soporte técnico a distancia.
Manual de soporte técnico a distancia.Manual de soporte técnico a distancia.
Manual de soporte técnico a distancia.
 

Destacado

Interfaz puerto paralelo LPT
Interfaz puerto paralelo LPTInterfaz puerto paralelo LPT
Interfaz puerto paralelo LPT
Ángel Acaymo M. G.
 
Apagar y encender led con arduino y visual studio 2015
Apagar y encender led con arduino y visual studio 2015Apagar y encender led con arduino y visual studio 2015
Apagar y encender led con arduino y visual studio 2015
Ángel Acaymo M. G.
 
Interfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduinoInterfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduino
Ángel Acaymo M. G.
 
Manual Ic Prog
Manual Ic ProgManual Ic Prog
Manual Ic Prog
Ángel Acaymo M. G.
 
Entrada digital con arduino y visual studio 2015
Entrada digital con arduino y visual studio 2015Entrada digital con arduino y visual studio 2015
Entrada digital con arduino y visual studio 2015
Ángel Acaymo M. G.
 
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84APic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
Ángel Acaymo M. G.
 
Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular Senpir
Ángel Acaymo M. G.
 
Formulario windows con visual c++
Formulario windows con visual c++Formulario windows con visual c++
Formulario windows con visual c++
Ángel Acaymo M. G.
 
Puerto paralelo en c
Puerto paralelo en cPuerto paralelo en c
Puerto paralelo en c
morriz1
 
Curso de visual basic 6
Curso de visual basic 6Curso de visual basic 6
Curso de visual basic 6
William Monsalve
 
Microsoft Visual C++
Microsoft Visual C++Microsoft Visual C++
Microsoft Visual C++
Carolina Suárez Guerra
 
ARDUINO: Plataforma de hardware libre
ARDUINO: Plataforma de hardware libreARDUINO: Plataforma de hardware libre
ARDUINO: Plataforma de hardware libre
Luis Manuel Diaz
 
Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017
Ángel Acaymo M. G.
 
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AManual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Ángel Acaymo M. G.
 
Arduino + ethernet shield (1)
Arduino + ethernet shield (1)Arduino + ethernet shield (1)
Arduino + ethernet shield (1)
INVERSIONES MARK'S
 
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicPasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Maybel_Lopez
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
drakatiadiaz
 
Crear formulario windows form con visual c++ 2015
Crear formulario windows form con visual c++ 2015Crear formulario windows form con visual c++ 2015
Crear formulario windows form con visual c++ 2015
Ángel Acaymo M. G.
 
Interfaz java y arduino
Interfaz java y arduinoInterfaz java y arduino
Interfaz java y arduino
Ángel Acaymo M. G.
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
Ángel Acaymo M. G.
 

Destacado (20)

Interfaz puerto paralelo LPT
Interfaz puerto paralelo LPTInterfaz puerto paralelo LPT
Interfaz puerto paralelo LPT
 
Apagar y encender led con arduino y visual studio 2015
Apagar y encender led con arduino y visual studio 2015Apagar y encender led con arduino y visual studio 2015
Apagar y encender led con arduino y visual studio 2015
 
Interfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduinoInterfaz visual basic 6 y arduino
Interfaz visual basic 6 y arduino
 
Manual Ic Prog
Manual Ic ProgManual Ic Prog
Manual Ic Prog
 
Entrada digital con arduino y visual studio 2015
Entrada digital con arduino y visual studio 2015Entrada digital con arduino y visual studio 2015
Entrada digital con arduino y visual studio 2015
 
Pic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84APic Rs232 puerto serie con PIC16F84A
Pic Rs232 puerto serie con PIC16F84A
 
Luz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular SenpirLuz por detector de movimiento y crepuscular Senpir
Luz por detector de movimiento y crepuscular Senpir
 
Formulario windows con visual c++
Formulario windows con visual c++Formulario windows con visual c++
Formulario windows con visual c++
 
Puerto paralelo en c
Puerto paralelo en cPuerto paralelo en c
Puerto paralelo en c
 
Curso de visual basic 6
Curso de visual basic 6Curso de visual basic 6
Curso de visual basic 6
 
Microsoft Visual C++
Microsoft Visual C++Microsoft Visual C++
Microsoft Visual C++
 
ARDUINO: Plataforma de hardware libre
ARDUINO: Plataforma de hardware libreARDUINO: Plataforma de hardware libre
ARDUINO: Plataforma de hardware libre
 
Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017Formulario windows con visual c++ 2017
Formulario windows con visual c++ 2017
 
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84AManual Interfaz con VC++ y VB para puerto serie y PIC16F84A
Manual Interfaz con VC++ y VB para puerto serie y PIC16F84A
 
Arduino + ethernet shield (1)
Arduino + ethernet shield (1)Arduino + ethernet shield (1)
Arduino + ethernet shield (1)
 
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicPasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
 
Php basico y avanzado
Php basico y avanzadoPhp basico y avanzado
Php basico y avanzado
 
Crear formulario windows form con visual c++ 2015
Crear formulario windows form con visual c++ 2015Crear formulario windows form con visual c++ 2015
Crear formulario windows form con visual c++ 2015
 
Interfaz java y arduino
Interfaz java y arduinoInterfaz java y arduino
Interfaz java y arduino
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
 

Similar a Tutorial básico control puerto paralelo con visual basic 6.0

El AT mega8 es un microcontrolador excelente
El AT mega8 es un microcontrolador excelenteEl AT mega8 es un microcontrolador excelente
El AT mega8 es un microcontrolador excelente
Jose Alva
 
Manual basico arduino
Manual basico arduinoManual basico arduino
Manual basico arduino
Ketoc2k3
 
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Leida Zuñiga
 
Netduino
NetduinoNetduino
Netduino
David Matias
 
Taller practico iot fundación telefónica
Taller practico iot fundación telefónicaTaller practico iot fundación telefónica
Taller practico iot fundación telefónica
Sara Alvarellos Navarro
 
Tutorial proton ide plus part 1
Tutorial proton ide plus part 1Tutorial proton ide plus part 1
Tutorial proton ide plus part 1
dar851112
 
Programacion portafolio
Programacion portafolioProgramacion portafolio
Programacion portafolio
alvarisnky
 
Práctica 10 Sistemas de Comunicación IDe
Práctica 10 Sistemas de Comunicación IDePráctica 10 Sistemas de Comunicación IDe
Práctica 10 Sistemas de Comunicación IDe
UsuiTakumi17
 
Hack x crack_cuaderno_arduino
Hack x crack_cuaderno_arduinoHack x crack_cuaderno_arduino
Hack x crack_cuaderno_arduino
Juan Jose Garcia Sanchez
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
Erwin Joel Espinoza Delgado
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
Erwin Joel Espinoza Delgado
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
Edwin4321
 
Arduino
ArduinoArduino
Programación básica de Arduino
Programación básica de Arduino Programación básica de Arduino
Programación básica de Arduino
SANTIAGO PABLO ALBERTO
 
Arduino: programación básica de Arduino
Arduino: programación básica de ArduinoArduino: programación básica de Arduino
Arduino: programación básica de Arduino
SANTIAGO PABLO ALBERTO
 
Tutorial proton ide plus part 1
Tutorial proton ide plus part 1Tutorial proton ide plus part 1
Tutorial proton ide plus part 1
Alicia De Sousa
 
Puerto Paralelo
Puerto ParaleloPuerto Paralelo
Puerto Paralelo
Bertha Vega
 
Puertoparalelooooo
PuertoparaleloooooPuertoparalelooooo
Puertoparalelooooo
Gerardo Hernandez
 
53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus
Deysi Zamata Ccari
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
cemento chimborazo
 

Similar a Tutorial básico control puerto paralelo con visual basic 6.0 (20)

El AT mega8 es un microcontrolador excelente
El AT mega8 es un microcontrolador excelenteEl AT mega8 es un microcontrolador excelente
El AT mega8 es un microcontrolador excelente
 
Manual basico arduino
Manual basico arduinoManual basico arduino
Manual basico arduino
 
Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.Contador de leds con puerto paralelo macho db 25 cu zumpango.
Contador de leds con puerto paralelo macho db 25 cu zumpango.
 
Netduino
NetduinoNetduino
Netduino
 
Taller practico iot fundación telefónica
Taller practico iot fundación telefónicaTaller practico iot fundación telefónica
Taller practico iot fundación telefónica
 
Tutorial proton ide plus part 1
Tutorial proton ide plus part 1Tutorial proton ide plus part 1
Tutorial proton ide plus part 1
 
Programacion portafolio
Programacion portafolioProgramacion portafolio
Programacion portafolio
 
Práctica 10 Sistemas de Comunicación IDe
Práctica 10 Sistemas de Comunicación IDePráctica 10 Sistemas de Comunicación IDe
Práctica 10 Sistemas de Comunicación IDe
 
Hack x crack_cuaderno_arduino
Hack x crack_cuaderno_arduinoHack x crack_cuaderno_arduino
Hack x crack_cuaderno_arduino
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
 
Cuaderno_Arduino.pdf
Cuaderno_Arduino.pdfCuaderno_Arduino.pdf
Cuaderno_Arduino.pdf
 
Arduino
ArduinoArduino
Arduino
 
Programación básica de Arduino
Programación básica de Arduino Programación básica de Arduino
Programación básica de Arduino
 
Arduino: programación básica de Arduino
Arduino: programación básica de ArduinoArduino: programación básica de Arduino
Arduino: programación básica de Arduino
 
Tutorial proton ide plus part 1
Tutorial proton ide plus part 1Tutorial proton ide plus part 1
Tutorial proton ide plus part 1
 
Puerto Paralelo
Puerto ParaleloPuerto Paralelo
Puerto Paralelo
 
Puertoparalelooooo
PuertoparaleloooooPuertoparalelooooo
Puertoparalelooooo
 
53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus
 
Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
 

Tutorial básico control puerto paralelo con visual basic 6.0

  • 1. Tutorial Básico Control Puerto Paralelo con Visual Basic 6.0 Introducción. Este pequeño tutoríal proporciona los pasos básicos para controlar el puerto paralelo desde Visual Basic 6.0. Lo que se intenta es poder enviar pulsos o señales por medio de este y recibir pulsos o señales por medio de el. La información que se encuentra en este texto fue adquirida en Internet y conocimientos adquiridos (experiencia del escritor). Material. Puerto paralelo. Microsoft Visual Studio 6.0. 1 Led. Empecemos con el puerto paralelo. Este es un conecto DB25 obvio con 25 pines lo cuales están numerados y tienen una función especifica cada uno de ellos. Podemos ordenar cada uno de los pines o bytes en: Dataport pin 2 - D0 pin 3 - D1 pin 4 - D2 pin 5 - D3 pin 6 - D4 pin 7 - D5 pin 8 - D6 pin 9 - D7 Statusport pin 10 – ACK pin 11 - BUSY pin 12 - PAPER END pin 13 - SELECT IN pin 15 - ERROR 1
  • 2. ControlPort pin 1 – STROBE pin 14 - AUTO FEED pin 16 – INIT pin 17 - SELECT La parte de GND, son los tierra del 18 al 25 1. El Dataport se usa como salida. 2. El Statusport se usa como entrada. 3. El controlport se usa de las dos formas anteriores. Es decir que para encender led’s mandando voltaje al puerto usaremos el Dataport, para recibir niveles de voltaje usaremos el Statusport. Es importante no conectar al revés las cosas en el puerto ya que existe la posibilidad de dañarlo. En este caso mencionare la forma en que se conecta y controla pero también mencionare que mi computadora no contaba con puerto paralelo. Una vez adquirido el puerto paralelo de tipo PC-I fue colocado en la ranura correspondiente y se le instalo el controlador indicado. El puerto paralelo maneja direcciones de memoria asignadas por el SO. No se si son pilas o colas pero son direcciones de memoria, estas direcciones están numeradas en código hexadecimal y son utilizadas normalmente para enviar ceros o unos a una impresora. Por ejemplo: H378 * Donde la H indica que es hexadecimal. * El 378 es el número hexadecimal. Una vez dicho y entendido esto se debe tener alguna forma de controlar esto desde el lenguaje visual Basic, desafortunadamente al ser un lenguaje de alto nivel visual no tiene la capacidad de controlar hardware por si solo, este tipo de circunstancias se controlan con C o C++ ya que estos lenguajes tiene esa capacidad. Afortunadamente para nosotros se puede aprovechar la característica de Windows de utilizar DLL (Dynamic Linking Library (Bibliotecas de Enlace Dinámico)) y ya que algún experto programo una DLL en C++ para controlar este dispositivo nosotros podemos utilizarla en Visual Basic. Esta DLL mágica es la inpout32 la cual tiene la capacidad de mandar y recibir señales o pulsos por el puerto paralelo. Existen varias versiones, varias de ellas no funcionan en XP y mucho menos en Vista, pero después de buscar y buscar por Internet encontré una que si funciona perfectamente en XP y Vista incluso te da su código y muchas cosas mas, esta DLL se supone que esta adjunta con este tutorial. 2
  • 3. Una vez comprendido esto hablemos de las direcciones de memoria anteriormente mencione la dirección de memoria que utiliza el puerto paralelo para funcionar esta se puede ver en: Botón de inicio/Mi PC/botón derecho del ratón/propiedades/hardware/administrador de dispositivos/puertos (COM & LPT)/doble clic en tu puerto LPT/recursos. Como se ve en la imagen los primeros intervalos corresponden a Dataport (salidas del puerto paralelo) es decir: Pin 2 3 4 5 6 7 8 9 Memoria 378 379 37A 37B 37C 37D 37E 37F Como se puede ver se omitió el 0 y también se puede observar que es la misma dirección que usamos en el ejemplo del código hexadecimal. El otro intervalo es para el Statusport y funciona de la misma manera. Esto no quiere decir que para todas las maquinas sea la misma. Como mencione al principio de este escrito mi PC no contaba con puerto paralelo por lo que le agregue un PC-I y mis direcciones quedaron de la siguiente manera. Es muy recomendable siempre checar las direcciones para no presentar errores ni confusiones, este simple paso ahorra muchos dolores de cabeza. 3
  • 4. Para la programación se necesita comprender la forma en que serán enviados los datos, señales o pulsos al puerto y es de la manera siguiente. Se envían datos binarios y dependiendo del valor son los pines utilizados: Pin 2 3 4 5 6 7 8 9 Valor Binario 1 10 100 1000 10000 100000 100000 10000000 0 Valor decimal 1 2 4 8 16 32 64 128 Por ejemplo: Si queremos mandar señales por el pin 2 y el 5 pues se hace la suma. 1+8=9 Y ese valor es el que se envía en binario 1001. Digamos que necesitamos el pin 5 y 9 la suma es: 8 + 128 = 136 Y en binario es 10001000. Si queremos prender todos los led’s conectados al puerto paralelo pues se pone: Valor.- 1111111 = 255 Si queremos apagar todos los led’s conectados al puerto paralelo pues se pone: Valor.- 0 = 0 NOTAS: • Se puede ver que el pin de menor peso es el numero 2 por lo que hay que empezar a contar por hay. • Normalmente el puerto paralelo esta enviando señal por todos los pines. • No es necesario enviar el dato binario ya que la DLL inpout32 los convierte basta con enviar el dato decimal. Es hora de comenzar. Para poder enviar datos al puerto paralelo desde visual Basic utilizando la DLL inpout32 se usa el comando Out: Su sintaxis es: out (numero de pin desde donde se desea empezar a contar “pin con menor peso”, dato en decimal o binario). 4
  • 5. Por ejemplo: Out &H378, 255 Donde: Se omite el paréntesis. &H indica que el valor es hexadecimal. Se separa con “,”. El 255 indica que pines serán usados. Normalmente se utiliza la primera dirección de memoria y el pin numero 2 como el de menor peso, de no ser así cambia la suma y los valores adquiridos por los pines que le siguen al de menor peso. Programación: 1) Creamos un nuevo proyecto EXE estándar en VB6 en el formulario agregamos 2 botones. Nombre Texto Command1 Prendido Command2 Apagado 2) Abrimos el código y agregamos. Private Sub Command1_Click() Out &H378, 0 End Sub Private Sub Command2_Click() Out &H378, 1 End Sub Agregamos un modulo “Archivo/agregar modulo” y ponemos. Public Declare Function Inp Lib "inpout32.dll" _ Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" _ Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) Es importante copiar y pegar la DLL inpout32 en C:WINDOWSsystem32 si ponemos el código en el modulo tal cual. 5
  • 6. Yo y mucha gente mas a escuchado la frase “los que es del cesar a l cesar” pues en nuestro caso seria “lo que es del SO. Al SO.” A que me refiero con esto no es muy recomendable mezclar cosas vitales del SO. Con otras cosas externas por lo que nuestra DLL seria mejor ponerla en otro lugar, digamos que se instala nuestro programa en una PC pues la DLL debería estar en la carpeta donde se instalo, en este caso supongamos que la tenemos en un pendriver o usb con la letra H: asignada y una carpeta con nombre serial, pues el código seria el siguiente: Public Declare Function Inp Lib "H: serialinpout32.dll" _ Alias "Inp32" (ByVal PortAddress As Integer) As Integer Public Declare Sub Out Lib "inpout32.dll" _ Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) Como ven lo único que cambia es el path, ¡que fácil es la vida verdad! 3) Si corremos el programa y presionamos los botones pues no pasa nada y eso es bueno quiere decir que esta bien, lo que pasa es que no esta conectado nada. Si te sale un error como este al momento de compilar o apretar un boton. Pueden ser 2 cosas. 1) La DLL inpout32 no esta en C:WINDOWSsystem32 o no esta en el path indicado. Solución.-Verifica que esta en el lugar indicado. 6
  • 7. 2) La DLL inpout32 no es compatible con XP o Vista es una versión anterior que solo funciona en sus predecesores de XP. Claro si su SO. Es Windows XP o Vista. Solución.- Usa la que se encuentra con este tutorial. Yo e mirado que es necesario para controlar un solo pin o bit que prenda un led lo siguiente: Material Necesario 1 Puerto paralelo libre 1 Moc3010m 1 Triac (A los Amperes que trabaje el dispositivo I=P/V) 1 Resistencia 560 Ohms 1 Resistencia 220 Ohms 1 Led 1 Conector Db25 Macho Cable para interconexiones (Puede ser del de Red de 8 Hilos) 1 Fusible (Al amperaje del dispositivo) 1 Clavija CA con cable Pues la verdad yo no ocupe tanto, solo use el puerto paralelo libre una extensión de puerto paralelo es decir un cable de puerto paralelo y un led. Conectar el led y probar nuestro programa. 1) Conectamos la extensión al puerto paralelo. 2) En el pin 2 conectamos la pata del led (+). 3) En cualquier pin entre 18 y25 conectamos la pata (-). 4) Corremos nuestro programa. 5) Apretamos los botones y miramos. Para leer un dato desde el puerto se usa la instrucción Inp. Más información de esto en: http://foro.elhacker.net/programacion_general/introduccion_a_la_programacion_por_pu ertos_en_visual_basic-t47786.0.html Espero que esto le sea de ayuda, cualquier duda comentario o sugerencia escriban a daco_tutor@hotmail.com Tutorial Básico Control Puerto Paralelo con Visual Basic 6.0 realizado por: Ing. Diego Alberto Ortega Carreto 7