home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca
 
LUCE AUTOMATICA PC tipo: livello:
Una serie di led collegati alla porta parallela del computer in grado di accendersi automaticamente quando viene premuta la barra spaziatrice e di rimanere accesi per un tempo di circa 30 secondi
 
 



Luce automatica per PC

Introduzione

 

Premetto subito che sono alle prime armi in campo di elettronica, questo mio progetto infatti è più informatico che elettronico, o meglio fonde insieme le due cose per una base di partenza,  allo stesso tempo è semplice, realizzabile da chiunque, e comunque utile e funzionale.

 

Questo progetto è nato da una mia esigenza personale, in pratica il problema è che la sera quando sono al computer e devo digitare sulla tastiera, non riesco a vedere bene i tasti sulla tastiera perchè rimanendo sul piano inferiore (quello scorrevole  a scomparsa), non è illuminata da niente, nemmeno il bagliore del monitor riesce ad illuminarla.
 

Certo ho una lampada da tavolo, ma tutte le volte devo accenderla, e poi  spegnerla quando devo solo leggere sul monitor, magari mentre navigo su internet, per poi riaccenderla quando di nuovo devo digitare sulla tastiera.

 

Quindi grazie supratutto ai tutorial letti su questo sito, e grazie anche alla mia minima conoscenza di elettronica e VisualBasic ho creato questo progettino.
 
 
Descrizione
 
 

Il progetto da me proposto consiste in uno o più led accesi direttamente dal computer grazie alla porta parallela, in oltre un piccolo programmino da me compilato permette il funzionamento ON  sempre accesi, OFF  sempre spenti, oppure AUTO, cioè i led si accendono quando viene premuta la barra spaziatrice  e si spengono dopo circa 30 secondi.

 

 
 

Tutto l'occorrente per la realizzazione è un connettore per presa computer parallela LPT, uno o più led, uno spezzone di cavo e in base al tipo di led anche qualche resistenza.

 

Dico in base al tipo di led perchè l'uscita parallela del pc è in grado di fornire una tensione di 5v per una corrente di 25mA, quindi ad esmpio io avendo utilizzato led bianchi e colorati ad alta luminoisità che funzionano a 5v non ho inserito nessuna resistenza.
 
 
 
 

Mi sono procurato  un connettore LPT maschio come quello visibile in foto, uno spezzone di cavo telefonico, ma và benissimo qualsiasi cavo e dei led.

 

 
Come prima cosa vediamo i pin della porta parallela



 

 

I pin che ci interessano sono quelli che vanno dal 02 al 09 denominati DATA0...DATA7, in pratica sono i pin che possiamo pilotare, quindi possiamo portare a livello logico alto +5v o a livello logico basso circa 0v.

 

 

In oltre abbiamo bisogno anche della massa GND ovvero i pin dal 18 al 25, questi pin sono collegati assieme tra di loro, quindi basta collegarne solamente uno.

 

Il collegamento  risulta abbastanza intuitivo e semplice.

 

 


 

Nello schema ho utilizzato solo 2 led collegati ai pin 2 e 9 ovvero il primo data, DATA0, e l'ultimo data, DATA7, e ho utilizzato per la massa il pin 25 GND, premetto che il programma che io ho compilato, porta a livello logico alto tutti gli 8 pin DATA quindi si può collegare i led che vogliamo  tra un pin GND qualsiasi, e un pin DATA qualsiasi.

 

 

Ripeto che io ho utilizzato led che sono in grado di funzionare con i 5v forniti dal computer, per led con tensione di funzionamento inferiore,  c'è da inserire tra il pin della porta parallela ed il led una resistenza calcolabile con la formula

 

 

(5-Vled)/Aled

 

 

dove 5 è la tensione fornita dal pc, Vled è la tensione di funzionamento del led e Aled è la corrente di funzionamento del led, ad esempio volendo utilizzare i classici led rossi o gialli funzionanti a 1,2v con corrente di 20mA il calcola sarà:

 

 

(5-1,2)/0,02= 190 ohm

 

 

 

Ritornando ai collegamenti c'è da sapere che sul connettore maschio quello che utilizzeremo noi, la numerazione dei pin è appositamente invertita rispetto al connettore femmina

 

 


 

 

quindi non dobbiamo preoccuparci, infatti il pin 1 del connettore femmina sul computer corrisponde al pin 1 del nostro connettore maschio,  e così tutti gli altri pin.

 

 

 

Come tutti voi sapete i led devono essere alimentati nel giusto verso, quindi l'anodo che è il postivo del led (sul led è il piedino più lungo) và collegato al pin DATA, mentre invece il catodo che è il negativo del led (sul led è il piedino più corto) và collegato ad un pin GND della porta.

 

 

Una volta effettuati i semplici collegamenti,  dobbiamo far accendere i led portando a livello logico alto i vari pin DATA della nostra parallela.

 

Io ho utilizzato Visual Basic con il comando  DlPortWritePortUchar &H378, 255 

 

dove DlPortWritePortUchar è il comando per scrivere un dato sulla porta,    &H378 è il nuemro che identifica la porta in questo caso la LPT1,    e 255 è il dato che andremo a scrivere.

 

Scrivendo 255 portiamo a livello logico alto tutti gli 8 pin DATA0..DATA7, mentre invece con il comando DlPortWritePortUchar &H378, 0  scriviamo 0 e quindi portiamo a livello basso tutti gli 8 pin.

 

 

Questo avviene perchè il numero che noi andiamo a scrivere, altro non è che la rappresentazione decimale del numero binario  che rappresenta gli otto bit della porta.

 

 

 

Numero
DATA 7
DATA 6 DATA 5 DATA 4 DATA 3 DATA 2 DATA1 DATA0
0  0 0 0 0 0
0 0 0
1 0 0 0 0 0 0 0 1
3 0 0 0 0 0 0
1 1
7 0 0 0 0 0 1 1 1
15 0 0 0 0 1 1
1
1
31 0 0 0 1 1 1 1 1
63 0 0 1 1 1
1 1 1
127 0 1 1 1 1 1 1 1
255 1 1 1 1 1 1 1 1

 

 

Come si può vedere dalla tabella, per portare a livello logico uno o più bit basta rappresentare gli otto bit con un numero binario(colore nero) e poi convertirlo in decimale(colore verde).

 

 

Ad esmpio se volessi portare a livello logico alto il solo bit DATA0 dovrei inviare il numero binario 00000001 che convertito in decimale è 1,  l'istruzione in visual basic sarebbe quindi

 

 

DlPortWritePortUchar &H378, 1

 

 

Vicecersa se volessi portare a livello logico alto il bit DATA1 dovrei inviare il numero binario 00000010 che convertito in decimale è 2 , quindi l'istruzione in Visaul Basic sarebbe

 

 

DlPortWritePortUchar &H378, 2

 

Risulta quindi intuitivo che per portare a livello logico alto tutti gli 8 bit, il numero binario da inviare sarà 11111111 che convertito in decimale è 255, l'istruzione è quindi

 

DlPortWritePortUchar &H378, 255

 

 

 

 

A questo punto non mi rimane che fornire il programmino da me compilato che ho chiamato AutoLed

 

 

Il programma è molto semplice e intuitivo, è composto da 3 pulsanti, ON , OFF,  AUTO

 

 

Cliccando su ON si portano a livello logico alto tutti gli 8 bit con la relativa accensione dei led ad essi collegati,

 

 

Cliccando su  OFF ovviamente si portano a livello logico basso tutti gli 8 bit con il relativo spengimento dei led

 

 

Cliccando su AUTO si abilita il funzionamento Automatico, cioè i led si accenderanno solo quando viene premuta la barra spaziatrice e rimarranno accesi per un tempo di circa 30 secondi, ovviamente premendo nuovamente la barra prima dello scadere dei 30 secondi il timer si azzera e quindi dovranno passare nuovamente 30 secondi.

 

Una scritta rossa ricorda la modalità scelta.

 

Quando viene premuto uno dei 3 pulsanti il programma automaticamente si riduce a icona e rimane in background, cioè rimane attivo nella TrayBar accanto all'orologio.

Questa è la particolarità del mio programma, infatti, se cercate in rete, troverete vari tutorial e programmi già compilati simili al mio, però il mio programma ha la particolarità di lavorare in background, cioè di rimanere attivo e ricevere comandi da tastiera anche quando è ridotto a icona, cosa che normalmente i programmi non fanno.

Questa piccola particolarità è essenziale per il corretto funzionamento, qualsiasi applicazione sarà aperta e attiva, il mio programma anche se ridotto a icona, rimarrà vigile, e farà accendere i led non appena verrà premuta la barra spaziatrice.

 

Aggiungo che utenti di windows XP potrebbero avere problemi perchè la porta potrebbe non essere attiva, per questo in rete esiste un eseguibile per attivare la porta LPT, DLportIO Insatall in tal caso riporto quà il file da scaricare e installare.

Per chi volesse  cimentarsi nella compilazione di programmi in Visual Basic,oltre al form contenente i vari pulsanti, è necessario caricare un modulo per far interagire Visaul Basic con la porta Lpt, il modulo chiamato DlPortIO si trova facilmente in rete, comunque riporto quà il file da scaricare.

 

 

Per maggior chiarezza riporto la lista dei file da scaricare:

AutoLed  è il software da me compilato per il funzionamento del progetto

DlPortIO insatll   è un eseguibile da installare solo se la porta lpt non dovesse essere attivase non è attiva ce ne accorgiamo perchè il  programma restituisce un errore dicendo che non trova il file dlportio.sys

DlPortIO  è il modulo .bas da inserire in Visual Basic per chi volesse cimentarsi nella compilazione di programmi.

Ripeto che sia il file DlPortIO insatll che il file DlPortIO.bas sono file che si trovano gratuitamente in rete per far interagire correttamente Visaul Basic con la porta Lpt.

Io li ho scaricati e postati così come si trovano in rete senza apportare nessuna modifica.



  il parere della community
esprimi il tuo voto approvi questa pagina? promo


  non sei autenticato, per questo non puoi visualizzare i commenti sulla pagina. Se sei registrato accedi oppure registrati.


difficoltà
costo
informazioni
Questa pagina è stata creata da Jasson
il 10/09/2009 ore 19:06
ultima modifica del 26/12/2016 ore 17:05
la pagina è stata visitata 5765 volte




Lo staff di www.grix.it non si assume responsabilità sul contenuto di questa pagina.
Se tu sei l'autore originale degli schemi o progetti proposti in questo articolo, e ritieni che siano stati violati i tuoi diritti, contatta lo staff di www.grix.it per segnalarlo.

   
 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale