Puerto paralelo problemas

Iniciado por junxcosio, 20 Febrero 2010, 20:16 PM

0 Miembros y 1 Visitante están viendo este tema.

junxcosio

He puedo esto aki pero no se muy bien donde ponerlo si aki o en el de programación. lo primero decir que no tengo ni idea de electronica...pero vi este pequeño manual de como controlar 8 led por el puerto paralelo y lo hice...
http://www.codeproject.com/KB/cs/csppleds.aspx

http://www.highrez.co.uk/Downloads/InpOut32/default.htm

el problema que tengo es que siempre estan encedidos los led...desde el momento que conecto el puerto paralelo los led estan encendidos... y da igual lo qye envies que no pasa de todo...

alguien sabe que es lo que me pasa????

gracias de antemano
"Si se puede imaginar, se puede programar..."

skapunky

Antes de enviar una nueva orden, haz un reset mediante:

CitarC2: This pin is for reset the printer and clear the buffer. Which is called nInit, nInitialize

Quizá hay problemas y se queda la tensión activada, no se si el reset se aplica a todos los pines, pero si así fuera seguro que se soluciona el problema.
Killtrojan Syslog v1.44: ENTRAR

declare

mmm  no se k sistema operativo usas pero como vi la pagina y la dll inpout32 asumo usas windows...
tenes k poner a cero los 8 bits ya k

D7 - D6 - D5 - D4 - D3 - D2 - D1 - D0
0     0     0        0     0     0     0      0 -->binario

o sea envias por el puerto paralelo direccion  378HEX un cero... en visual seria

base = &H378 -->direccin registro de dato o salida de 8 bits paralelos
Out base, &H0

y luego activas la salida k keres  si keres la DO pones un 1 en DO

D7 - D6 - D5 - D4 - D3 - D2 - D1 - D0
0     0     0        0     0     0     0      1-->binario

k corresponde  a uno
base = &H378
Out base, &H1


si keres encender el DO y el D5

D7 - D6 - D5 - D4 - D3 - D2 - D1 - D0
0     0      1        0     0     0     0      1  -->binario

seria 21 en hexadecimal
base = &H378
Out base, &H21

Sldos... espero te ayude .....


Mr.Blue

Bueno mira yo hice una vuelta esto tmb para controlar leds por el puerto paralelo LPT 1
te recomiendo si te interesa que el programa lo programes vos o no como gustes igualmente viene el programa incluido solo necesitas el c++ i lo compilas/ejecutas
te paso la pag y una breve explicacion mas mi codigo propio i como funciona

http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm#tres

en este circuito trae incorporado un cirucito intregrado que impide q cualquier corto circuito que pueda llegar a aver dañe tu puerto paralelo
ATENCION
Queda en tu responsabilidad usarlo o no en caso de q no lo uses trata de tener todo bien aislado para prevenir algun tipo de corto circuito que pueda llegar a dañar el puerto paralelo


es esquema mismo sin el intregrado es igual solo q la salida del puerto a la resistencia y de ahi al led
ahi mismo figura que pines podes usar y cuales no como tmb cual es - (GND)

ACA mi codigo tmb echo en c++

Código (cpp) [Seleccionar]
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

void main (void){

do {
outportb (0x378,255);
delay (1000);
  outportb (0x378,128);
delay (1000);
  outportb (0x378,64);
delay (1000);
  outportb (0x378,32);
delay (1000);
  outportb (0x378,16);
delay (1000);
  outportb (0x378,8);
delay (1000);
  outportb (0x378,4);
delay (1000);
  outportb (0x378,2);
delay (1000);

}while (!kbhit());}

si tenes error en la compilacion por el delay te recomiendo q uses el TC
turbo c

bueno
outportb (0x378,255) lo q hace es mandar la señal al puerto 0x378 (LPT) que encienda el valor 255 por asi decirlo como es esto?

128  64  32  16  8  4  2  1

1     1    1    1  1   1  1  1  ----> la suma da 255

osea q todos los leds van a estar prendidos si queremos prender el led
32 y el 4
lo q tenes q hacer es poner la suma de ellos asi

outportb (0x378,36) y esos dos leds se prenden asi suesivamente podes hacer una secuencia de q prendan en 128 luego se apage i prenda 64 se apage prenda 32 se apage ...............................
y dependiendo el tiempo le vas a dar velocidad delay (1000) es un segundo

bueno esto es todo lo q puedo aportar espero que te sea de ayuda



Meta

Precisamente estoy haciendo el manual sobre el puerto paralelo con Visual C#, del mismo manual tambiñen con Visual Basic .NET y Visual C++.

http://electronica-pic.blogspot.com/2010/01/interfaz-puerto-paralelo.html

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/