Encender un LED mediante RS232 o Redireccionar USB_LPT1 en linux

#1
Hola a todos soy nuevo en este foro en electronica, no se mucho de eso pero me llama la atencion

Lo que quiero lograr es encender un simple LED ya sea por puerto serial o USB_LPT

tengo este codigo que me funciona a la perfeccion pero en una pc que ya tiene incorporado el LPT, los pines que uso son el 2,3

Código:
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include <sys/io.h>


#define DATAPORT 0x378

int main (void)
{
        int n;

        //Obtenemos permiso de acceso para la direccion de DATAPORT y
        //las 2 siguientes
  
        if (ioperm(DATAPORT, 3, 1)) {perror("ioperm"); exit(1);}
printf("EL LED ESTA ACTIVO\n");
         outb(2, DATAPORT);
         sleep(3);
         outb(0, DATAPORT);

        if (ioperm(DATAPORT, 3, 0)) {perror("ioperm"); exit(1);}

  return 0;
}
No me interesa usar un pic o PLC porque soy novato en esto, alguien sabe como hacerlo para rs232 o Redireccionar el USB_LTP.

Gracias. ...
 
Última edición:
#2
#!/usr/bin/perl

use Device::SerialPort;
my $port=Device::SerialPort->new("/dev/ttyS0");
my $STALL_DEFAULT=10; # how many seconds to wait for new input
my $timeout=$STALL_DEFAULT;
$port->read_char_time(0); # don't wait for each character
$port->read_const_time(1000); # 1 second per unfulfilled "read" call
my $chars=0;
my $buffer="";
while ($timeout>0) {
my ($count,$saw)=$port->read(255); # will read _up to_ 255 chars
if ($count > 0) {
$chars+=$count;
$buffer.=$saw;
# Check here to see if what we want is in the $buffer
# say "last" if we find it
}
else {
$timeout--;
}
}

if ($timeout==0) {
die "Waited $STALL_DEFAULT seconds and never saw what I wanted\n";
}


por 10 segundos apaga el LED en el pin 6,7

el detalle es que el LED siempre esta encendido al ejecutar este script lo unico que hace es que me lo apaga por 10 segundos y lo vuelve a encender pero debe de ser al reves debe de estar apagado y con el script encenderlo.
 
Arriba