Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11

    ECCOCI

    Allora ho la seriale al cui c'è connesso un circuitino fatto apposto per questo da un negoziante che crea queste cose e mi ha detto che è funzionante

    Mi ha detto che per far scattare il relè bisogna modificare lo stato del PIN 4 (RTR)

    In tutto ci sono attaccati 3 PIN

    1) DCD
    4) RTR - segnale
    5) GND - terra

    Sai dirmi come si fa in vb.net ad inviare un segnale al PIN 4????

    Ciao e grazieeeeeeee
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  2. #12
    Per cambiare lo stato di un singolo pin e tenerlo costante dovresti usare una porta parallela, non una seriale... con la seriale puoi solo inviare dati, per cui il pin RTR finisce con il cambiare stato più volte ad ogni byte che invii...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #13

    Va bene

    Originariamente inviato da MItaly
    Per cambiare lo stato di un singolo pin e tenerlo costante dovresti usare una porta parallela, non una seriale... con la seriale puoi solo inviare dati, per cui il pin RTR finisce con il cambiare stato più volte ad ogni byte che invii...
    Va bene la seriale, perchè devo far scattare un tondello, quello per gli ingressi

    Quindi quando arriva l'impulso mi sbocca l'ancoretta, e l'utente entra e si riblocca da solo
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  4. #14
    Ho controllato lo standard RS-232 e da quanto vedo sul connettore DB9 al pin 4 corrisponde il segnale DTR (Data Terminal Ready), che non saprei proprio come attivare da VB.NET (dovrebbe occuparsene il sistema, visto che si tratta di un segnale inerente il livello più "basso" della comunicazione). Secondo me ti converrebbe usare un UART per convertire i segnali della seriale in una serie di segnali paralleli e usare quindi uno di questi segnali per controllare il relè. A questo punto sarebbe molto semplice inviare i segnali da VB.NET, semplicemente inviando degli specifici byte alla porta seriale.
    ---EDIT---
    Però se si tratta di aprire solo un cancelletto (per cui basta che prima o poi si apra, e non importa se il relè si aziona più volte) forse basterebbe collegare il pin TD (attraverso ovviamente un transistor) al relè e inviare sequenze di byte come 00 00 00 00 FF FF FF FF per accendere e spegnere rapidamente il relè.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #15
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da MItaly
    Per cambiare lo stato di un singolo pin e tenerlo costante dovresti usare una porta parallela, non una seriale... con la seriale puoi solo inviare dati, per cui il pin RTR finisce con il cambiare stato più volte ad ogni byte che invii...
    Non e' cosi' ... esistono segnali nella RS232 che sono costanti e sono utilizzati per l'handshaking ... DTR e' uno di questi ...

    Originariamente inviato da marco.santilli
    Allora ho la seriale al cui c'è connesso un circuitino fatto apposto per questo da un negoziante che crea queste cose e mi ha detto che è funzionante

    Mi ha detto che per far scattare il relè bisogna modificare lo stato del PIN 4 (RTR)

    In tutto ci sono attaccati 3 PIN

    1) DCD
    4) RTR - segnale
    5) GND - terra

    Sai dirmi come si fa in vb.net ad inviare un segnale al PIN 4????
    Come gia' ti ha detto MItaly, il pin 4 e' il DTR (non RTR, che non esiste ...).

    Prova ad usare questo codice ...

    codice:
    Imports System.Runtime.InteropServices
    Imports System.Text
    Imports System.Threading
    Imports System.ComponentModel
    Imports System.IO
    
    Module Module1
        Private Const GENERIC_READ As Integer = &H80000000
        Private Const GENERIC_WRITE As Integer = &H40000000
        Private Const OPEN_EXISTING As Integer = 3
    
        Private Const SetDtr = 5
        Private Const ClearDtr = 6
    
        <DllImport("kernel32.dll", SetlastError:=True, CharSet:=CharSet.Auto)> Private Function CreateFile(ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As IntPtr
        End Function
    
        <DllImport("kernel32.dll", SetlastError:=True)> Private Function CloseHandle(ByVal hObject As IntPtr) As Boolean
        End Function
    
        <DllImport("kernel32.dll", SetlastError:=True)> Private Function EscapeCommFunction(ByVal hFile As IntPtr, ByVal ifunc As Int32) As Boolean
        End Function
    
        Sub Main()
            Dim hRS As IntPtr = New IntPtr(0)
    
            hRS = CreateFile("\\.\COM1", GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0)
    
            EscapeCommFunction(hRS, SetDtr) 
    
            EscapeCommFunction(hRS, ClearDtr)
    
            CloseHandle(hRS)
        End Sub
    
    End Module
    Considera che devi usare la

    EscapeCommFunction(hRS, SetDtr)

    oppure la

    EscapeCommFunction(hRS, ClearDtr)

    per attivare/disattivare il segnale.

    Ovviamente devi cambiare la porta ... (ho messo COM1 per esempio) ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.