Acendedor de leds pela porta paralela
Publicado por Angelito Monteiro Goulart (última atualização em 11/03/2010)
[ Hits: 18.626 ]
Homepage: http://angelitomg.com
Download 1267842472.led.c (versão 2)
Programa com um simples menu onde o usuário pode escolher entre acender ou apagar os leds conectados à porta paralela. Nos comentários do programa segue a dica de como montar o circuito.
Versão 2 - Enviado por Marcelo Paiva em 05/03/2010
Changelog: Segue pequena alteração para carregar numero decimal e acender leds, vai pedir numero em decimal, apos segue sequencia do programa original com menus 1,2, e 3, se digitar 5 vai acender metade dos leds 15 é igual a 0F em hexa e é igual a 00001111 em binario acendendo leds conforme sequencia binaria, vou tentar mandar fotos, tenho pouco tempo e não sei usar ainda ferramentas do site, enfim o mais importante é que a base do programa é 10 e funciona, consegui sucesso no Mandriva 2009 com Gnome e pacotes essential, agora as fotos que vou tentar mandar são no ubuntu9.10 com buid-essential.
/*
* Acendedor de leds pela porta paralela
* Angelito M. Goulart
* Setembro/2009
*
* Esquema Eletrico
*
* Pino2 -> 470R -> LED1
* Pino3 -> 470R -> LED2
*
* Pode-se usar do pino 2 ate o pino 9 para ligar os LEDs
* GND -> Do pino 18 ao pino 25
*
*/
#include
#include
int main(void)
{
int opcao;
int altdec; //variavel adicionada para armazenar numero decimal a ser enviado para porta
ioperm(0x378,3,1); //inicializa a porta paralela
outb(0x00, 0x378);
do
{
printf ("\n=====Entre número em decimal=====\n");
scanf ("%d", &altdec); //carrega decimal
printf ("\n=====Acendedor de Leds=====\n");
printf (" 1.Acender Leds\n");
printf (" 2.Apagar Leds\n");
printf (" 3.Sair\n\n");
printf (" Selecione uma opcao: ");
scanf ("%d", &opcao);
if (opcao == 1)
{
//seta porta com decimal carregado em altdec
outb(altdec, 0x378); //caso a opcao seja 1, acende todos os leds,alterado para altdec
}
if (opcao == 2)
{
outb(0x00, 0x378); //caso a opcao seja 2, apaga todos os leds
}
}while (opcao != 3);
outb(0x00, 0x378);
return (0);
}
Marcelo Paiva
/* * Acendedor de leds pela porta paralela * Angelito M. Goulart * Setembro/2009 * * Esquema Eletrico * * Pino2 -> 470R -> LED1 * Pino3 -> 470R -> LED2 * * Pode-se usar do pino 2 ate o pino 9 para ligar os LEDs * GND -> Do pino 18 ao pino 25 * */ #include <stdio.h> #include <sys/io.h> int main(void) { int opcao; ioperm(0x378,3,1); //inicializa a porta paralela outb(0x00, 0x378); do { printf ("\n=====Acendedor de Leds=====\n"); printf (" 1.Acender Leds\n"); printf (" 2.Apagar Leds\n"); printf (" 3.Sair\n\n"); printf (" Selecione uma opcao: "); scanf ("%d", &opcao); if (opcao == 1) { outb(0xFF, 0x378); //caso a opcao seja 1, acende todos os leds } if (opcao == 2) { outb(0x00, 0x378); //caso a opcao seja 2, apaga todos os leds } }while (opcao != 3); outb(0x00, 0x378); return (0); }
Quantos números primos você quizer!!!
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gravação de tela com temporizador
Eu tive esse erro aqui depois de de baixar o HyprLand Ubuntu na versão... (1)
Como fazer boot em img do debian 12.img da web? (11)
Manjaro 25.0 no permite usar crontab (1)