Urielmania
“El Mundo de Uriel… Pero la voz de todos”
“El Mundo de Uriel… Pero la voz de todos”
Si bien el puerto LPT no es muy nuevo que digamos, en algunos casos puede ser útil, sobre todo si queremos alimentar o controlar algún circuito desde la computadora. Si bien hay un montón de tutoriales al respecto y la programación tampoco esta tan difícil, dejo un ejemplo de como controlar este puerto en Linux.
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/io.h> #include <sys/types.h> #include <fcntl.h> #define BASEPORT 0x378 /* Direccion del puerto lpt1 */ int main() { char c; int n, tem; printf("Presione cualquier tecla para detener\n"); /// / Establecer permisos de acceso al puerto if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);} tem = fcntl(0, F_GETFL, 0); fcntl (0, F_SETFL, (tem | O_NDELAY)); /*bucle principal, se detiene al presionar cualquier tecla y hace el parpadeo del led*/ while (1) { //Si presionamos alguna tecla se sale del loop n = read(0, &c, 1); if (n > 0) break; /*Pone en 'on' todos los bits de datos del puerto y espera 1/4 de segundo*/ outb(255, BASEPORT); usleep(250000); /*Pone en 'off' todos los bits de datos del puerto y espera 1/4 de segundo*/ outb(0, BASEPORT); usleep(250000); } fcntl(0, F_SETFL, tem); outb(0, BASEPORT); //Quita permisos al puerto. if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);} exit(0); }
Este código sirve para hacer parpadear un led.
Me gusto mucho el código por que ilustra muy bien como puede abrirse el puerto LPT , pero tengo que decirles que si bien el puerto nos da 5 volts , solo nos da 3mA de corriente algo que tienen que revisar si van a conectar algo que consuma mas amperaje que el mencionado :D.
Aunque esto lo pueden solucionar con algo como esto:
Espero que les sirva el código y sobre todo el diagrama , si tienen dudas no duden en dejar un comentario, tengo que decir que a mi me sirvió mucho :D.