|
|
|||||||||||||||||||||||||||||||||||||
|
PRINCIPAL
DOCUMENTOS
PROYECTOS PRODUCTOS
LINKS
CONTACTO *LO
NUEVO*
|
|||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||
|
|
Estamos mudando
uControl. La página que estas viendo en breve va a ser dada de baja,
dado que ya fué migrada al nuevo sitio.
Te invitamos a
que descubras el nuevo ucontrol, y que cambies los links desde tu
pagina o tus favoritos. Perdon por las disculpas, y nos vemos en el
nuevo ucontrol.
INDICE:
Por medio de sensores la computadora es capaz de conocer la situación del mundo exterior. ¿Cómo es esto? Supongamos que estamos mirando el pronóstico meteorológico y nos enteramos que: - Es un
día soleado Las
primeras 3 respuestas se refieren a valores del tipo digital: sol o nubes,
frío o calor, seco o húmedo. Es decir, “si” o “no”, dos valores posibles.
Las dos ultimas son de tipo analógico: la temperatura puede ser de -10.25ºc,
12ºc o 38.5ºc, la humedad puede tener cualquier valor entre 0% y 100%. Dada la naturaleza de la propia computadora, esta forma de representar al mundo es la más natural, dado que todo su funcionamiento se basa en este esquema de “0” y “1”. El “percibir” los infinitos valores que puede tomar una temperatura, un peso, una presión es algo mas complicado, pero perfectamente posible. Muchas señales analógicas se pueden tratar como digitales con circuitos muy sencillos, teniendo en cuenta el cambio que experimenta el sensor utilizado. Por ejemplo, en el circuito de la figura 2 la LDR (un tipo especial de resistencia que varía su valor de acuerdo a la luz que recibe) puede variar entre 10 MΩ en oscuridad hasta 600 MΩ a plena luz. Puesto que la mayoría de los puertos del PC son digitales, las señales analógicas entregadas por este tipo de sensores requerirán la utilización de circuitos de conversión analógico-digital.
>
Actuadores
No se preocupen si todavía no comprenden estos esquemas, cuando llegue el momento los explicaremos paso a paso. Ahora empecemos a conocer a fondo los puertos de la PC.
>
El puerto paralelo En cualquier PC actual podemos encontrar también este puerto, generalmente incluido directamente en el motherboard, y casi siempre desocupado, ya que hoy día las impresoras con conexión USB han reemplazado a las de interfaz paralela. Desde el punto de vista del hardware, el puerto consiste en un conector hembra de 25 pines (DB25) con doce salidas latch y cinco entradas, con ocho líneas de “masa” (o “tierra”). Estos latches funcionan de la siguiente manera: cuando escribimos un valor en la dirección del puerto, este permanece presente en los pines del conector hasta que escribamos otro, sin que debamos mantener nosotros de alguna manera estos valores ahí. Esto simplifica la programación y la construcción de nuestros circuitos. Desde el punto de vista del software, el puerto paralelo consta de tres registros (datos, estado y control) de 8 bits cada uno, que ocupan tres direcciones de E/S. Cada puerto requiere tres direcciones de memoria consecutivas del espacio de E/S (entrada-salida) del procesador para seleccionar todas sus posibilidades. Las direcciones base estándar para los puertos paralelos son 0378h (LPT1), 0278h (LPT2) y 03BCh (LPT3). El puerto paralelo estándar (SPP) consta, como se mencionó antes, de tres registros de 8 bits localizados en direcciones adyacentes del espacio de E/S del PC. Los registros se definen relativos a la dirección de E/S base (LPT_BASE) y son: LPT_BASE + 0: registro de DATOS LPT_BASE + 1: registro de ESTADO LPT_BASE + 2: registro de CONTROL
Como dijimos antes, la función normal del puerto consiste en transferir datos a una impresora mediante 8 líneas de salida de datos, usando las señales restantes como control de la impresora. Sin embrago, puede ser usado como un puerto E/S de propósito general por cualquier dispositivo o aplicación que se ajuste a sus posibilidades de entrada/salida.
Función que cumple cada pin del conector del puerto paralelo.
La figura anterior nos muestra la función de cada “patita” (pin de ahora en adelante) del puerto paralelo. Las etiquetas indican la función de cada pin cuando tiene conectada una impresora. Las señales activas a nivel bajo aparecen con la barra de negación (por ejemplo, Strobe). Cuando se indica alto o bajo se refiere a la tensión en el pin del conector. Alto equivale a +5 V y bajo a 0 V en TTL. Aprendamos que función cumplen cada uno de estos pines, para luego ver como podemos aprovechar esto para construir una sencilla interfase: - 8 líneas (pines) son para salida de datos (bits de DATOS). Sus valores son únicamente modificables a través de software, y van del pin 2 (dato 0, D0) al pin 9 (dato 7, D7). - 5 líneas son de entrada de datos (bits de ESTADO), únicamente modificables a través del hardware externo. Estos pines son: 11, 10, 12, 13 y 15, del más al menos significativo. - 4 líneas son de control (bits de CONTROL), numerados del más significativo al menos: 17, 16, 14 y 1. Habitualmente son salidas, aunque se pueden utilizar también como entradas y, por tanto, se pueden modificar tanto por software como por hardware. - Las líneas de la 18 a la 25 son la tierra. Las 8 líneas de datos en un puerto paralelo moderno son bidireccionales, es decir que tanto podemos escribir un dato en el y leerlo desde nuestra interfaz (usarlo como salida de información) como leer en el los datos que la interfaz escriba en el puerto. Debemos tener presente que la capacidad del puerto de entregar corriente por estos pines es muy limitada, y casi siempre deberemos utilizar un circuito que amplifique esta señal para poder hacer algo útil con ella. Sin embargo, la corriente entregada es suficiente como para por ejemplo encender un led (diodo emisor de luz, ver apéndice al final) que nos sirva como “piloto” para conocer el estado de cada pin. Este será nuestro primer circuito practico.
>
Monitor del puerto paralelo
Circuito de nuestro monitor de puerto paralelo.
En el esquema vemos que cada uno de los pines de datos del puerto se encuentra conectado a una resistencia de 330 ohms, y esta al ánodo del led. El cátodo de cada led se conecta a masa (cualquiera de los pines del 18 al 25). La función que cumplen las resistencias es limitar la corriente que circule por cada led, ya que si los conectamos directamente al puerto circularía por ellos una corriente excesiva y los podríamos quemar. Como se trata de un circuito muy simple, lo construiremos soldando directamente las resistencias y los leds a una ficha DB25, así nos evitamos el construir una plaqueta de circuito impreso. Los componentes necesarios para este circuito los conseguimos en cualquier casa de electrónica, y su costo total difícilmente supere los 3 o 4 u$s. También necesitaremos un soldador de unos 20 o 30 Watts y algo de alambre de estaño con núcleo de resina. Es una buena idea tener a mano un alicate para cortar los terminales de los leds y las resistencias. Primero soldamos uno de los terminales de las resistencias a cada uno de los pines 2 al 9 del conector, y luego el ánodo de cada led al otro extremo de las resistencias. También uniremos entre si todos los terminales correspondientes a los cátodos de los leds y el pin 18 del puerto.
En caso que debido a la posición del CPU sea imposible ver los LEDs conectados de esta manera, podemos comprar un cable de extensión para el puerto paralelo, o bien a un cable de impresora sacarle la ficha del lado de esta y soldar ahí los LEDs y resistencias. En este ultimo caso, hay que usar un teste para identificar a que pin corresponde cada cable, y tener cuidado de aislar bien todos los terminales para evitar que un cortocircuito termine con el puerto.
>
El software En Visual Basic comenzamos un nuevo proyecto, y creamos un modulo que llamaremos MODULE1.BAS con el siguiente contenido:
Declare Sub
Out Lib "inpout16.Dll" Alias "Out16" (ByVal PortAddress As Integer, ByVal
Value As Integer) Importante: si usamos la DLL INPOUT32.DLL deberemos cambiar todos los “16” por “32” en el código anterior. Luego, en el FORM1.FRM deberemos crear dos arrays de botones, con 8 elementos cada uno. El primero llamado ENC(n) y el segundo APA(n). Estos botones permitirán el encendido y apagado de los LEDS en forma individual. También necesitaremos un ComboBox llamado PUERTO que nos permitirá elegir en que LPT tenemos conectado el monitor. El listado del código de este formulario es el siguiente:
Sub Form_Load ()
'Selecciona el LPT1 por
default.
Sub Apa_Click (Index As
Integer)
'Obtiene el valor presente
en el puerto.
'Ejecuta la rutina que pone
en 0 el bit correspondiente.
'Envía el dato al puerto.
Sub Enc_Click (Index As
Integer)
'Obtiene el valor presente
en el puerto.
'Ejecuta la rutina que pone
en 1 el bit correspondiente.
'Envía el dato al puerto.
>
APENDICE: Lógica TTL
>
APENDICE: LED
>
APENDICE:
Componentes a utilizar
|
||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||