Acendedor de leds pela porta paralela
Publicado por Angelito Monteiro Goulart (última atualização em 11/03/2010)
[ Hits: 18.672 ]
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); }
[C++] remover todos os multiplos de 3
Funções de comparação de String
Digitar dados em um vetor, guardando-os sequencialmente em um arquivo texto
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Debian 13 "trixie&... lançado! (44)
Rust é o "C da nossa geração"? (3)
Gerenciador de arquivos é finalizado ao abrir pasta específica (2)