BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: LED lampeggiante con la porta parallela (e il C) Ven Set 28, 2007 4:04 pm | |
| In un momento di ozio ho avuto questa idea oggi, quella di fare un circuito semplicissimo per illuminare un LED a intermittenza collegandolo alla porta parallela del pc. Il circuito è il seguente (semplicissimo, e si può usare per un numero a piacere di LED in parallelo): Il codice C per pilotarlo (sotto Linux) è un semplice codice che, in questo caso, scrive sulla porta parallela il valore binario 0000 0001 (ovvero attiva solo il primo data pin della porta, supponendo che il LED è collegato ad esso). In tal modo il LED viene alimentato in diretta con una corrente di +5V, entra in conduzione e si illumina. Dopo un secondo viene scritto sulla porta il valore binario 0000 0000, e il LED viene spento, e così via. In pratica la porta parallela può essere usata come un generatore di onde quadre. Volendo si può fare quello che si vuole, aumentare o diminuire gli intervalli on/off, collegare più LED in parallelo e giocare con i valori scritti sulla porta per accenderli e spegnerli, collegarlo ad un circuito integratore con operazionale in modo da avere un'onda triangolare a partire da un'onda quadra e avere quindi un LED che si accende gradualmente... Eccovi il mio codice in C: - Codice:
-
#include <stdio.h> #include <stdlib.h> #include <asm/io.h>
#define PORT 0x378
main() { // Attivo la porta if (ioperm(PORT,3,1)<0) exit(1);
while (1) { // Scrivo 1111 1111 sulla porta // in modo da alimentare tutti i data pin outb(0xFF,PORT);
// Aspetto un secondo sleep(1);
// Disattivo i data pin scrivendo 0000 0000 sulla porta outb(0,PORT);
// Aspetto un secondo sleep(1); } } Buon hacking. | |
|