PDA

View Full Version : Porta COM e Visual Basic


leon84
14-01-2003, 13:20
Vorrei realizzare un semplice circuito costituito da una batteria ed una lampadina da 5 volt . Vorrei aprire e chiudere il circuito per mezzo di una porta com . In visual basic so che esiste l'oggetto COM , ma come aprire e chiudere il circuito . Mi spieghereste ?

pnx
14-01-2003, 14:51
Se hai la parallela libera ti cosiglio di utilizzare quella anzichè la COM ;)

leon84
14-01-2003, 16:45
Originally posted by "pnx"

Se hai la parallela libera ti cosiglio di utilizzare quella anzichè la COM ;)

Per quale motivo ? E quale sarebbe l'oggetto Visual Basic per gestire questa porta ? E come si fà ?

pnx
14-01-2003, 19:15
Con la porta parallela ti basta collegare un pin corrispondente a un uscita a un transistor collegato alla tua lampadina (a grandi linee).
Da VB la gestione della parallela non è un problema, magari domani ti dico come si fa.

Con la seriale è invece più complessa la faccenda perche il segnale che esce è conpreso tra +12V e -12V e il dato che esce è ovviamente di tipo seriale, quindi non puoi mantenerlo su un livello fisso, ti servirebbe comunque in convertitore SIPO (seriale/parallelo), o comunque un circuito particolare.

leon84
15-01-2003, 13:37
Mi dici come si fà ?

pnx
15-01-2003, 15:53
Comincia dando un'occhiata QUA (http://www.planet-source-code.com/vb/scripts/ShowZip.asp?lngWId=1&lngCodeId=33141&strZipAccessCode=ow%5Ft331418111).

leon84
15-01-2003, 15:59
OK , poi ?

pnx
15-01-2003, 16:11
Praticamente per controllare la porta basta dare il comando

OUT address, data

Devi sapere l'indirizzo della parallela, hai la scelta tra 3 indirizzi (prova a fare una ricerca in rete, ma dovresti riuscire a leggerlo anche dalle proprietà della porta parallela da Gestione Periferiche), comunque generalmente è H378.

Col comando "out &h378, 25" tu metti sui pin di uscita della parallela il numero 25, che in binario è "11001".
Vuol dire che i pin 0, 3 e 4 avranno 5V mentre gli altri saranno a 0.

Visto che a te serve comandare un pin solo puoi mettere sulla porta il valore 0 per spegnere e 1 per accendere:

out &h378, 0

out &h378, 1


In questo caso il pin che cambia tensione è il D0 (vedi immagine del documeto).

Però non puoi collegare direttamente il pin alla lampadina, perchè anche se ci sono 5V non esce sufficiente corrente e rischieresti inoltre di danneggiare la parallela.

Per questo devi usare un piccolo e semplicissimo circuito con un transistor.

leon84
15-01-2003, 16:21
Fin qui tutto chiaro .... Dovrei allora costruire un circuito con transistor BJT facendolo funzionare nella zona attiva giusto ? In pratica dovrei realizzare un amplificatore per piccoli segnali ? Saresti così cortese da disegnarmi questo circuito con il modello di transistor , valore delle resistenze ecc... . Ti sarei molto grato

pnx
15-01-2003, 16:22
Per l'indirizzo della porta:

http://www.visual-basic.it/uploads/articoli/tecnici/agvbhw01.png




Il circuito potrebbe essere così:

http://www.vincenzov.net/tutorial/spp/spp5.gif


Nel circuito ci sono altre cose che non c'entrano, a noi interessa il tansistor in basso (bc547) col suo resistore da 3,3k (va bene anche da 4,7K, forse meglio), il grosso cerchio (che è la tua lampadina) e il generatore (la batteria), cioè quello in basso a destra.
Il resto escludilo.

Inoltre il resistore si deve collegare, come detto prima, al pin D0, che sarebbe il numero 2. In questo schema invece è sul 9.

leon84
15-01-2003, 16:22
Un 'altra cosa : ma oltre a 25 , posso anche riportare in uscita una lettera facendo riferimento al codice ascii ?

pnx
15-01-2003, 16:25
Sì, VB accetta anche numeri esadecimali (come quello dell'indirizzo della porta), basta che gil metti davanti &H

Per esempio puoi dare il comando:

out &h378, &HFF

per mettere tutti e gli 8 bit a 1.

leon84
15-01-2003, 16:29
Senti , ma con Visual Basic .NET l'istruzione OUT non mi funziona . Che dici installo il 6.0 ?

pnx
15-01-2003, 16:31
Io mi trovo bene col 6.0 e non ho mai utilizzato il .NET.
Comunque se fai una ricerca trovi anche delle DLL o delle OCX che puoi aggiungere al progetto che ti permettono di controllare la porta parallela.

In rilievo trovi dei link molto interessanti.
Eccotene uno: http://www.planet-source-code.com/

leon84
15-01-2003, 17:10
Ma la VCC quanto deve essere ? E prima di alimentare il transistor , non dovrei collegare qualche resistenza ?

cionci
15-01-2003, 17:45
Riecco che appare la CreateFile :)

Puoi Aprire la porta LPT1 con la CreateFile e scriverci con la WriteFile :

HANDLE hFile;
char pOut[]="ciao";
DWORD number;

hFile=CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, NULL, NULL);

if(hFile==INVALID_HANDLE_VALUE)
errore("Invalid LPT or LPT1 is not open");
else
{
if(!WriteFile(hFile,pOut,strlen(pOut),&number,NULL))
errore("Fail to send data.");
}

CloseHandle(hFile);

leon84
15-01-2003, 18:02
Originally posted by "cionci"

Riecco che appare la CreateFile :)

Puoi Aprire la porta LPT1 con la CreateFile e scriverci con la WriteFile :

HANDLE hFile;
char pOut[]="ciao";
DWORD number;

hFile=CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING, NULL, NULL);

if(hFile==INVALID_HANDLE_VALUE)
errore("Invalid LPT or LPT1 is not open");
else
{
if(!WriteFile(hFile,pOut,strlen(pOut),&number,NULL))
errore("Fail to send data.");
}

CloseHandle(hFile);


Senti cionci ... diverse volte ho provato a creare qualche interfaccia grafica a finestre con Visual C++ ma non ci sono mai riuscito . Potresti dirmi come si fà ? Con VB è semplicissimo ; si trascinano gli oggetti sul form . Ma con C++ come si fà ?

leon84
15-01-2003, 18:07
Se io ad esempio voglio attivare la funzione che hai postato al click del mouse su di un pulsante come devo fare ?

cionci
15-01-2003, 18:39
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
(ByVal lpFileName As String,
ByVal dwDesiredAccess As Long,
ByVal dwShareMode As Long,
ByVal lpSecurityAttributes As Long,
ByVal dwCreationDisposition As Long,
ByVal dwFlagsAndAttributes As Long,
ByVal hTemplateFile As Long) As Long

Declare Function WriteFile Lib "kernel32"
(ByVal hFile As Long,
lpBuffer As Any,
ByVal nNumberOfBytesToWrite As Long,
lpNumberOfBytesWritten As Long,
lpOverlapped As OVERLAPPED) As Long

Declare Function ReadFile Lib "kernel32"
(ByVal hFile As Long,
lpBuffer As Any,
ByVal nNumberOfBytesToRead As Long,
lpNumberOfBytesRead As Long,
lpOverlapped As OVERLAPPED) As Long

Declare Function CloseHandle Lib "kernel32"
(ByVal hObject As Long) As Long

Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const OPEN_EXISTING = 3
Public Const FILE_FLAG_OVERLAPPED = &H40000000

'********************
Type OVERLAPPED
Internal As Long
InternalHigh As Long
offset As Long
OffsetHigh As Long
hEvent As Long
End Type

All'inerno dell'onclick del bottone ci emtti questa roba :

Dim hFile As Long
Dim ret As Long
Dim number As Long
number = 0

hFile=CreateFile("LPT1", GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0)

If hFile <> INVALID_HANDLE_VALUE Then
ret = WriteFile(hFile, "Ciao", 4, number, 0)
CloseHandle(hFile)
End If

Comunque non lo posso provare...

leon84
15-01-2003, 18:43
Non ci capisco niente !!!!!!!!!!! Che cosa sono tutte quelle funzioni !!!!! VB su questo lato è veramente molto , ma molto più semplice .

cionci
15-01-2003, 18:50
Quello è VB...
La prima parte serve per importare le API...la seconda apre la porta e ci spedisce "Ciao"...

leon84
15-01-2003, 18:51
Originally posted by "cionci"

Quello è VB...
La prima parte serve per importare le API...la seconda apre la porta e ci spedisce "Ciao"...

Ma l'istruzione OUT non si può rimediare in alcun modo ? Sono parecchie le cose che sono cambiate nella versione .NET !!!

cionci
15-01-2003, 19:02
Originally posted by "leon84"

Ma l'istruzione OUT non si può rimediare in alcun modo ? Sono parecchie le cose che sono cambiate nella versione .NET !!!
Sinceramente io la istruzione out non l'ho mai vista in VB6... Sarà merito di qualche OCX o DLL...perchè se in VB6 provi a scrivere Out dice che è inesistente... E poi in ogni caso Windows 2000/XP non permettono l'accesso diretto all'hardware...

leon84
15-01-2003, 19:05
Originally posted by "cionci"


Sinceramente io la istruzione out non l'ho mai vista in VB6... Sarà merito di qualche OCX o DLL...perchè se in VB6 provi a scrivere Out dice che è inesistente... E poi in ogni caso Windows 2000/XP non permettono l'accesso diretto all'hardware...

Assodato che volgio utilizzare VB per fare questa cosa , oltre ad OUT non ti viene in mente niente ? Perché ho intenzione di fare un programma con interfaccia grafica e certo che non mi mettero a guardare come l'interfaccia grafica si relaizza in c ( è difficile ) .

cionci
15-01-2003, 19:08
Il metodo che ti ho scritto sopra è in VB...
Ci sono altri metodi, ma fanno uso di librerie esterne...

leon84
15-01-2003, 19:10
Originally posted by "cionci"


Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"
(ByVal lpFileName As String,
ByVal dwDesiredAccess As Long,
ByVal dwShareMode As Long,
ByVal lpSecurityAttributes As Long,
ByVal dwCreationDisposition As Long,
ByVal dwFlagsAndAttributes As Long,
ByVal hTemplateFile As Long) As Long

Declare Function WriteFile Lib "kernel32"
(ByVal hFile As Long,
lpBuffer As Any,
ByVal nNumberOfBytesToWrite As Long,
lpNumberOfBytesWritten As Long,
lpOverlapped As OVERLAPPED) As Long

Declare Function ReadFile Lib "kernel32"
(ByVal hFile As Long,
lpBuffer As Any,
ByVal nNumberOfBytesToRead As Long,
lpNumberOfBytesRead As Long,
lpOverlapped As OVERLAPPED) As Long

Declare Function CloseHandle Lib "kernel32"
(ByVal hObject As Long) As Long

Public Const GENERIC_READ = &H80000000
Public Const GENERIC_WRITE = &H40000000
Public Const OPEN_EXISTING = 3
Public Const FILE_FLAG_OVERLAPPED = &H40000000

'********************
Type OVERLAPPED
Internal As Long
InternalHigh As Long
offset As Long
OffsetHigh As Long
hEvent As Long
End Type

All'inerno dell'onclick del bottone ci emtti questa roba :

Dim hFile As Long
Dim ret As Long
Dim number As Long
number = 0

hFile=CreateFile("LPT1", GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0)

If hFile <> INVALID_HANDLE_VALUE Then
ret = WriteFile(hFile, "Ciao", 4, number, 0)
CloseHandle(hFile)
End If

Comunue non lo posso provare...

Quindi questo è in VB ? Ora lo provo subito .... ma tutte quelle dichiarazioni vanno nell'evento load ?

cionci
15-01-2003, 19:12
No...le dichiarazioni vanno in cima al file della form...all'esterno di tutte le procedure...

Non ti assicuro niente... In ogni caso se non funzionasse la strada è comunque quella... CreateFile, WriteFile e CloseHandle...

leon84
15-01-2003, 19:22
Purtroppo con .NET mi dà un sacco di errori . Come faccio ? Volendo arrangiarmi con C++ (DOS) cosa devo fare ? Quella procedura che mi hai postato prima ?

leon84
15-01-2003, 19:30
Originally posted by "pnx"

Praticamente per controllare la porta basta dare il comando

OUT address, data

Devi sapere l'indirizzo della parallela, hai la scelta tra 3 indirizzi (prova a fare una ricerca in rete, ma dovresti riuscire a leggerlo anche dalle proprietà della porta parallela da Gestione Periferiche), comunque generalmente è H378.

Col comando "out &h378, 25" tu metti sui pin di uscita della parallela il numero 25, che in binario è "11001".
Vuol dire che i pin 0, 3 e 4 avranno 5V mentre gli altri saranno a 0.

Visto che a te serve comandare un pin solo puoi mettere sulla porta il valore 0 per spegnere e 1 per accendere:

out &h378, 0

out &h378, 1


In questo caso il pin che cambia tensione è il D0 (vedi immagine del documeto).

Però non puoi collegare direttamente il pin alla lampadina, perchè anche se ci sono 5V non esce sufficiente corrente e rischieresti inoltre di danneggiare la parallela.

Per questo devi usare un piccolo e semplicissimo circuito con un transistor.

Ma usi qualche OCX per utilizzare il comando out ?

pnx
15-01-2003, 19:39
Purtroppo è passato un po' di tempo da quando ho fatto l'ultimo progetto che utilizza la parallela e non mi ricordo bene se ho usato qualche dll aggiuntiva e inoltre non riesco più a trovare quel progetto (tra l'altro adesso non sono neanche al mio PC).

Se però cerchi su questo sito: http://www.planet-source-code.com/ trovi numerose OCX che ti permettono di controllare la parallela (e non solo) anche sotto 2000 e XP.

Fai un cerca nella sezione Vbasic ;)

leon84
15-01-2003, 19:47
Originally posted by "pnx"

Purtroppo è passato un po' di tempo da quando ho fatto l'ultimo progetto che utilizza la parallela e non mi ricordo bene se ho usato qualche dll aggiuntiva e inoltre non riesco più a trovare quel progetto (tra l'altro adesso non sono neanche al mio PC).

Se però cerchi su questo sito: http://www.planet-source-code.com/ trovi numerose OCX che ti permettono di controllare la parallela (e non solo) anche sotto 2000 e XP.

Fai un cerca nella sezione Vbasic ;)

Cosa devo cercare ? Ti chiedo troppo se me la trovi tu questa OCX ?

leon84
15-01-2003, 19:50
Ho trovato questo : (guarda allegato)

cionci
16-01-2003, 08:31
Primo non funziona sotto Windows 2000/XP ;)
Secondo quella DLL non si sa dove trovarla...

cionci
16-01-2003, 08:37
C'è questo che potrebbe andare perchè sfrutta librerie Win32 : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=21535&lngWId=1

leon84
16-01-2003, 09:01
Originally posted by "cionci"

C'è questo che potrebbe andare perchè sfrutta librerie Win32 : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=21535&lngWId=1

L'ho scaricato . E con questo come dovrei fare per scrivere sulla porta LPT1 ?

cionci
16-01-2003, 09:09
Scusa, intendevo questo : http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=12410&lngWId=1

pnx
16-01-2003, 10:34
Dai un'occhiata anche a questo: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=33181&lngWId=1

cionci
16-01-2003, 11:54
Almeno quello la DLL ce l'ha : http://www.driverlinx.com/DownLoad/dnload.htm#Windows%2095/NT%20Port%20I/O%20Driver

leon84
16-01-2003, 16:33
Si ma cosa devo scaricare e quali sono le istruzioni da implementare ?

cionci
16-01-2003, 17:18
Le funzioni sono quelle importate dalla DLL...
Devi scaricare la DLL ed il progetto di prova da Planet-Source-Code (che ti ha linkato pnx)...e vedere come funziona...

pnx
16-01-2003, 17:21
Adesso mi ricordo di aver usato un DLL, che appunto implementava l'utilizzo dell'istruzione OUT.

leon84
16-01-2003, 20:22
Ho provato la dll e mi pare di aver capito il suo funzionamento . Ora devo solo montare il circuito e vi farò sapere .... Ma se alla porta LPT1 collego un cavetto LAPLINK i piedini svolgono funzioni diverse ?

pnx
16-01-2003, 21:17
Infatti, se usi il cavo laplink ti conviene controllare con un tester come sono i collegamenti (soprattuto per vedere se il pin che utilizzi corrisponde).

cionci
17-01-2003, 09:33
Il cavo LapLink è così : http://www.hwb.acc.umu.se/cable/parallel/interlink.html

leon84
17-01-2003, 14:00
Ho effettuato la seguente prova : Ho aperto il cavetto parallelo e ho inviato tutti 11111111 e dai rispettivi pin escono i 5v . Quando pongo il tutto a 00000000 non vi è differenza di potenziale . Sembra che funzioni . Ma ora stavo pensando . Invece di utilizzare il transistor BC547 per amplificare la corrente di uscita , non posso direttamente utilizzare un relé ? La corrente della lampadina verrà generata da una batteria esterna : il relé dovrà semplicemente fare da interruttore . Cosa ne dite ? A proposito . Ma ogni volta che accendo il pc , lo stato dei pin della parallela cambia . Voglio dire che di default gli viene assegnato un certo valore . E' normale questo ? Se posso utilizzare un relé potreste spiegarmi che modello acquistare ? Grazie

pnx
17-01-2003, 15:41
Allora, diciamo il valore gli viene assegnato di default, presumo tutti 1, finchè non lo vai a modificare col software.

Se usi un relè deve essere a "stato solido" perchè se non la parallela non ce la fa, perchè non esce sufficiente corrente per pilorare la bobina.

Quindi quello che ti serve è un "relè monostabile a stato solito con comando TTL, di tipo NA (normalmente aperto)".
Poi magari spiega al negoziante cosa intendi pilotare col relè. ;)

leon84
17-01-2003, 18:01
Il problema è che ho acquistato il relé e l'unico che ho trovato è quello da 12 V . La corrente della parallela è troppo bassa e la bobina non riesce a chiudere il circuito . Ho provato invece con un trasformatore e tutto ok . E poi vallo a spiegare al negoziante che già ci capisce poco il relé che mi hai detto . Volendo usare questo non posso fare nessun artificio ?

pnx
17-01-2003, 19:22
Devi usare un transistor che piloti il relè.

cionci
18-01-2003, 10:42
Bene...sono contento che funzioni :)

leon84
18-01-2003, 12:59
Originally posted by "cionci"

Bene...sono contento che funzioni :)

Si funziona alla perfezione . L'unica cosa che ho riscontrato è che se ad esempio scrivo 11111111 sulla porta parallela andando a leggere i dati con il pulsante di destra mi compare tutt'altro . Ma il pulsante legge lo stato o i dati ?

cionci
18-01-2003, 13:10
Credo che legga solamente i bit di stato (quei 4 verdi)....

leon84
20-01-2003, 09:42
Ho acquistato un altro relé però a 6 V ma nemmeno ce la fa .... Devo per forza usare il transistor ?

pnx
20-01-2003, 13:09
Usi il transistor per pilotare il relè, usando una tenzione esterna, tipo 12V.

leon84
20-01-2003, 13:28
Originally posted by "pnx"

Usi il transistor per pilotare il relè, usando una tenzione esterna, tipo 12V.

Cioè vuoi dire che la VCC dello schema che mi hai postato deve essere uguale a 12 V ? Senti una cosa e scusa la mia ingoranza in elettronica , in fondo ne studio poco a scuola siccome l'inidirizzo è informatica . Ma io so che un transistor deve essere polarizzato affinché possa funzionare nella zona attiva delle caratteristiche . Con questo transistor non devo fare la stessa cosa ? Ti risulta sto fatto ?

leon84
20-01-2003, 17:57
Mi disegneresti lo schema di collegamento relé e transistor ? Per cortesia

pnx
20-01-2003, 22:42
http://www.vincenzov.net/tutorial/spp/spp5.gif


Nello stesso schema che ho postato prima è anche presente il circuito col transistore che pilota il relè (indicato con REALY).
E' molto semplice.

In questo caso non occorre nessun particolare dimensionamento in quanto il transistor non ci server per amplificare un segnale, e quindi non ci serve farlo lavorare nella zona di transizione.
Ci serve usarlo come un interruttore, on/off, saturazione/interdizione.

Basta mettere un resistore da 4,7K (o anche 3,3K come in figura) sulla base ;)

leon84
21-01-2003, 07:34
Scusa , ma se il transistor non funziona da amplificatore come fa a pilotare il relé se la corrente della parallela è insufficiente ?

pnx
21-01-2003, 08:59
Diciamo che amplifica la corrente, ma che non ci serve la linearità, non ci seve farlo lavorare nella zona di transione.

L'unica cosa che fa è saturazione/interdizione, quindi non ci serve alcun particolare dimensionamento, ma solo quel resistore da 3,3K. ;)

Inoltre la cosa migliore sarebbe mettere quel diodo in parallelo sul relè anzichè sul transistor, sempre col catodo verso Vcc. Può andare bene un 1N4007.

leon84
21-01-2003, 10:55
Originally posted by "pnx"

Diciamo che amplifica la corrente, ma che non ci serve la linearità, non ci seve farlo lavorare nella zona di transione.

L'unica cosa che fa è saturazione/interdizione, quindi non ci serve alcun particolare dimensionamento, ma solo quel resistore da 3,3K. ;)

Inoltre la cosa migliore sarebbe mettere quel diodo in parallelo sul relè anzichè sul transistor, sempre col catodo verso Vcc. Può andare bene un 1N4007.

Ti chiedo troppo se mi ridisegneresti il circuito ? Inizio a non capirci più nulla

pnx
21-01-2003, 11:34
http://digilander.libero.it/pnx/spp.gif

leon84
21-01-2003, 14:22
Originally posted by "pnx"

http://digilander.libero.it/pnx/spp.gif

Mi spiegheresti la funzione di quel diodo ? Se non ce lo metto cosa succede ?

pnx
21-01-2003, 14:33
Serve a far scaricare la bobina del relè quando lo disattivi.
Teoricamente senza il relè si scarica sul transistor, e potrebbe provocarne la rottura. ;)

leon84
21-01-2003, 14:49
Originally posted by "pnx"

Serve a far scaricare la bobina del relè quando lo disattivi.
Teoricamente senza il relè si scarica sul transistor, e potrebbe provocarne la rottura. ;)

Mi dici il modello del diodo ?

pnx
22-01-2003, 08:23
1N4007 o 1N4001 vanno bene, ma diciamo che va bene qualsiasi tipo di diodo normale ;)

leon84
22-01-2003, 12:59
Originally posted by "pnx"

1N4007 o 1N4001 vanno bene, ma diciamo che va bene qualsiasi tipo di diodo normale ;)

E la VCC q quanto deve essere uguale ?

pnx
22-01-2003, 15:17
Dipende dal relè. Se è quello a 6V allora 6V o poco più. ;)

leon84
22-01-2003, 16:13
Originally posted by "pnx"

Dipende dal relè. Se è quello a 6V allora 6V o poco più. ;)

Ma di entrambi i modelli di relé che mi hai indicato ce ne sono di diverso voltaggio ?

pnx
22-01-2003, 19:01
Originally posted by "leon84"



Ma di entrambi i modelli di relé che mi hai indicato ce ne sono di diverso voltaggio ?

Quali relè ti ho consigliato?

leon84
22-01-2003, 19:05
Originally posted by "pnx"



Quali relè ti ho consigliato?

Scusa volevo dire diodi non relé . ;)

leon84
24-01-2003, 13:22
Volendo utilizzare quel relé di cui tu prima mi parlavi (a stadio solido se non erro) e siccome non sono riuscito a far capire al negoziante cosa mi servisse , io ora ti posto l'indirizzo del sito della finder (nota casa produttrice di relé ) all'interno del quale puoi fare una ricerca dei relé a seconda delle caratteristiche tecniche che richiedi . Saresti così cortese da farmi questa ricerca e dirmi il modello del relé da acquistare ? Il modello è del tipo 40.35 . Siccome la finder è vicina alle mie parti potrei recarmici e richiedere il transistor . Ti ricordo che il relé che mi serve deve essere attivcato direttamente dalla parallela che ha una corrente bassissima . L'indirizzo dove puoi fare la ricerca è questo :

http://www.finder.it/it/products/search.php?lang=it&gruppo=gruppo1&PHPSESSID=327aec677064938c6c1e069c2fae8bff

Fammi sapere . Grazie

pnx
24-01-2003, 16:56
Mi dovresti dire cosa che carico devi pilotare, la tenzione da pilotare, quanti Watt, o almeno la corrente ;)

leon84
24-01-2003, 17:42
Originally posted by "pnx"

Mi dovresti dire cosa che carico devi pilotare, la tenzione da pilotare, quanti Watt, o almeno la corrente ;)

Pensa che voglio collegare una lampadina da 5 Volt o 12 . Quanto ai watt non ti so dire . E' sufficiente questa informazione ?

pnx
24-01-2003, 19:10
OK, il carico è molto piccolo.

Adesso il sito è DOWN, appena torna faccio una ricerca.
Comunque penso sia difficile trovare un relè, anche se a stato solido, pilotabile direttamente con la porta parallela.
Da un foglio tecnico risulta che la massima corrente di uscita è di 2,6mA che è davvero molto poco.

Se non trovassi un relè a stato solido che è possibile pilotare direttamente, allora l'unica soluzione è quella del relè.
Anzi, devo dire che se i 12V sono in continua, non ci sarebbe bisogno neanche del relè, ma basterebbe il solo transistor. In ogni caso potresti usare entrambi alimentando il transistor con gli stessi 12V della lampadina (ma questo solo se alimenti in continua).

Comunque, aspetto che il sito torni attivo ;)

pnx
24-01-2003, 19:24
Adesso il sito si vede, ma non ho trovato nulla di pilotabile con 2,6mA.
Quello con minore assorbimento sembra essere un relè della serie 34 che assorbe 170mW, che tradotti in mA dovrebbero essere un 7mA.

Non ce ne sono a stato solido pilotabili a 5V, quindi la cosa migliore resta sempre quella del BJT.

leon84
24-01-2003, 19:40
Originally posted by "pnx"

Adesso il sito si vede, ma non ho trovato nulla di pilotabile con 2,6mA.
Quello con minore assorbimento sembra essere un relè della serie 34 che assorbe 170mW, che tradotti in mA dovrebbero essere un 7mA.

Non ce ne sono a stato solido pilotabili a 5V, quindi la cosa migliore resta sempre quella del BJT.

Si ma il BJT sempre pilotando il relé ?

pnx
25-01-2003, 08:23
Originally posted by "leon84"



Si ma il BJT sempre pilotando il relé ?

Sarebbe la cosa migliore. ;)
I 12V li puoi tirare fuori anche dal PC! :)

Tortellone
25-01-2003, 22:44
Levami una curiosità Leon.....
a quale itis stai esattamente ???

leon84
26-01-2003, 11:36
Originally posted by "Tortellone"

Levami una curiosità Leon.....
a quale itis stai esattamente ???

Ettore Majorana di Somma Vesuviano . E tu ?

Tortellone
28-01-2003, 22:35
io all' VIII° Righi ke sta a Viale Kenney dopo l'Edenlandia a Fuorigrotta

matpez
31-01-2003, 21:04
Scusate una domanda....se volessi fare la stessa cosa...ma invece che accendere una lampadina...interpormi fra la spina della 220V ad un apparecchio elettronico si potrebbe realizzare???

grazie 1000000 :)

pnx
01-02-2003, 08:13
Originally posted by "matpez"

Scusate una domanda....se volessi fare la stessa cosa...ma invece che accendere una lampadina...interpormi fra la spina della 220V ad un apparecchio elettronico si potrebbe realizzare???

grazie 1000000 :)

Certo. Soluzione con un transistor e un relè. ;)

leon84
01-02-2003, 13:01
Originally posted by "matpez"

Scusate una domanda....se volessi fare la stessa cosa...ma invece che accendere una lampadina...interpormi fra la spina della 220V ad un apparecchio elettronico si potrebbe realizzare???

grazie 1000000 :)

Certo che lo puoi fare . Una volta che riesci a pilotare un relé puoi fare di tutto . Se riesci a chiudere ed aprire il circuito con in relé , il circuito a monte poi può essere qualsiasi

pnx
01-02-2003, 15:25
Originally posted by "leon84"



Certo che lo puoi fare . Una volta che riesci a pilotare un relé puoi fare di tutto . Se riesci a chiudere ed aprire il circuito con in relé , il circuito a monte poi può essere qualsiasi

Per essere precisi diciamo che dipende dalle caratteristiche elettriche del relè utilizzato. ;)

leon84
01-02-2003, 20:39
Originally posted by "pnx"



Per essere precisi diciamo che dipende dalle caratteristiche elettriche del relè utilizzato. ;)

Si questo è chiaro . Ma se riesci a controllare il relé in genere puoi fare parecchie cose

leon84
06-02-2003, 14:39
Originally posted by "pnx"



Sarebbe la cosa migliore. ;)
I 12V li puoi tirare fuori anche dal PC! :)
Senti pnx , in questi giorni ho avuto modo di provare il progetto . Ho saldato il tutto e mi sono accorto che il relé si chiudeva sempre anche se inviavo sulla parallela tutti 0 . Però mi sono accorto di aver saldato il transistor in modo errato scambiano l'emettitore con il collettore . Ho rimesso a posto e questa volta il relé non viene proprio pilotato . Può essere che sbagliano la saldatura di prima ho bruciato il transistor ?

pnx
06-02-2003, 15:19
Può darsi, ma può darsi anche di no.
Dovresti provare diminuendo il valore della esistenza sulla base, magari mettendone una uguale in parallelo.

leon84
06-02-2003, 16:33
Originally posted by "pnx"

Può darsi, ma può darsi anche di no.
Dovresti provare diminuendo il valore della esistenza sulla base, magari mettendone una uguale in parallelo.

Tu dici che la resistenza è troppo elevata ? Se ne metto in parallelo due da 3,3 KW secondo te la resistenza totale è troppo bassa ? Posso rischiare di bruciare qualcosa ?

Se non erro la resistenza totale dovrebbe essere :

(3,3*3,3)/(3,3+3,3)=1,65 KW . E' troppo bassa secondo te ?

leon84
06-02-2003, 19:54
Ah ... scusa ho risolto . Non avevo collegato la massa . Cmq funziona alla perfezione . E' fantastico come da software si riesce a controllare l'hardware . Grazie di tutto pnx .

pnx
07-02-2003, 08:14
Originally posted by "leon84"

Ah ... scusa ho risolto . Non avevo collegato la massa . Cmq funziona alla perfezione . E' fantastico come da software si riesce a controllare l'hardware . Grazie di tutto pnx .

Bene ;)
Sono contento che funzioni :)

matpez
13-02-2003, 01:05
Originally posted by "pnx"

Dai un'occhiata anche a questo: http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=33181&lngWId=1

Ho provato il tuo esempio consigliato ma mi da il seguente errore...che cosa é??????

http://www.ublteam.com/Immagine.jpg

Grazieeeeeeeeeeeeeeee :)

leon84
13-02-2003, 09:43
Hai provato ad installare il driver che ti ho inviato ? se vuoi mandare 111 prova anche a scrivere "00000111" può anche darsi che sia questo .

matpez
13-02-2003, 18:04
Certo che gli ho messi...ma sembra che su win2k non gli piacciono per niente!!

Nessuno conosce un prg per la porta parallela che giri sotto 2000/XP ???

Vi ringrazio molto!! ;)

cionci
13-02-2003, 18:13
Originally posted by "matpez"

Certo che gli ho messi...ma sembra che su win2k non gli piacciono per niente!!

Nessuno conosce un prg per la porta parallela che giri sotto 2000/XP ???

Vi ringrazio molto!! ;)
In effetti i .sys vanno solo sotto Windows 95/98/Me...
In Windows 2k/XP dovresti usare la DLL...

matpez
13-02-2003, 18:40
Qc ha questa famosa DLL ?

cionci
13-02-2003, 18:51
Nello zip scaricabile al link all'interno del Readme.txt non c'è ?

leon84
14-02-2003, 12:11
Originally posted by "cionci"

Nello zip scaricabile al link all'interno del Readme.txt non c'è ?

Ragazzi , ma io il programma l'ho fatto girare su Win Xp e non mi ha dato alcun problema

davidino80
17-04-2003, 12:55
Allora.. visto che questa discussione mi prende particolarmente.. ho trovato fuori tutto il necessario.

Per l'istru "OUT" in VB è necessaria la "inpout32.dll" o "hwinterface.ocx".
Potete scaricarle entrambi (+ progetto dimostrativo) da:
http://www.logix4u.cjb.net/

Vanno benissimo per win2000/NT/XP

Per la dll:
- copiatela nel solito posto c:\winnt\system32
- registratela: regsvr32 inpout32.dll

Per l'ocx:
- copiatela nel solito posto c:\winnt\system32
- importatela dal menù "componenti aggiuntivi" di VB


La dll l'ho provata e funziona correttamente tramite OUT (address,data)
L'ocx devo ancora provarla.. se mai lasciate una traccia dei vostri test!

Alla prox! :D

pnx
17-04-2003, 14:55
"inpout32.dll"

Usai proprio quella libreria. Ecco perchè mi ricordavo fosse un comando e non un OCX (era un DLL)! ;)

davidino80
17-04-2003, 15:33
pnx c'è modo di stampare tutte queste 5-6 pagine di discussione in una volta?
mi interesserebbe come archivio.
grazie

pnx
17-04-2003, 15:53
Originally posted by "davidino80"

pnx c'è modo di stampare tutte queste 5-6 pagine di discussione in una volta?
mi interesserebbe come archivio.
grazie

No, purtroppo non è possible. Sono impostati di default 20 post per pagina e non è possibile cambiare questo valore temporaneamente. ;)

davidino80
17-04-2003, 19:51
ufff... cantato troppo presto.
Il programma funziona tranquillamente, invio e leggo il dato correttamente...
.. solo che il circuitino che ho messo sulla porta parallela non va!

semplicissimo.. un LED collegato al pin 2 (DATA 0) e l'altro sul pin 25 (GROUND).. ma non si accende un bel niente. :muro:

come mai? il cavo è giusto.. controllato.

davidino80
17-04-2003, 20:54
oopppsss risolto! :eek:
colpa del cavo laplink.. devo guardarlo al contrario! :D

ora funziona!

leon84
18-04-2003, 07:05
Sono contento che hai risolto .... E' troppo forte vero !!!! .... La cosa bella è che ora si potrebbe controllare di tutto ...