Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Stromzählermodul PZEM-004T auslesen
Gehe zu Seite Zurück  1, 2, 3, 4
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 46
Wohnort: Herzogenaurach

BeitragVerfasst am: 29.12.2017, 21:07    Titel: Antworten mit Zitat

Hallo dreael,

Windows-Gerätemanager unter "Anschlüsse" bei mir „Hardware“

Bei „Ressourcen“ kommt auch beim Gerätemanager bei COM1.
E/A-Bereich 03F8-03FF
IRQ 04

Bei COM4 gibt es „Ressourcen“ gar nicht.

######

Hallo grindstone,

das mit dem Programm von Sebastian hab ich ja mit COM4 schon ausprobiert und das hat ja auch geklappt.
Die Eingänge CDS, DSR, RING (RI) und RLSD (DCD) kann man geschmeidig abfragen.

Für das EIN und AUS schalten von RTS und DTR ist ja noch etwas an „Veränderungen“ nötig.

Zumindest geht das LED an RTS zu GND est mal AUS nach Programmstart und nach Programm Ende wieder EIN, also schaltet das IC auf dem USB Pegelwandler zu TTL den RTS.

Jetzt braucht am noch eine „Eingabe“ für RTS und auch für DTR, EIN oder AUS.

Gruß
Code:

' Programm von Sebastian 29.12.2017, 12:23
' Testet dem USB zu COM4 ZU TTL Umsetzer und ist auch OK
' Die Eingänge CDS, DSR, RING (RI) und RLSD (DCD) kann man abfragen.
' Ausgabe am Monitor
' 1 = Verbindung zu GND
' 0 = keine Verbindung zu GND



#Include Once "windows.bi"

Dim hCom As handle
Dim PortNr As String = "COM4" ' COM1, COM2, COM3 oder COM4
Dim modemStat As Dword

'Serielle Schnittstelle öffnen:
hCom = CreateFile(PortNr, GENERIC_READ Or GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL)
Print "Handle = "; hCom

'Fehlerbehandlung, falls Öffnen fehlschlägt:
If hCom = INVALID_HANDLE_VALUE Then
  Print "Fehler beim Oeffnen von "; PortNr
  Sleep
  End
 Else
  Print PortNr; " geoeffnet"
Endif

'Alle Ausgangsleitungen auf positive Spannung setzen:
EscapeCommFunction(hCom, SETRTS)    'RTS +12V
EscapeCommFunction(hCom, SETDTR)    'DTR +12V
EscapeCommFunction(hCom, SETBREAK)  'TxD +12V (Break)

Print
Print
Print "Ende mit [Esc]"
Print "Verbindung zu GND = 1       keine Verbindung zu GND = 0"

'Eingangsleitungen per Polling abfragen:
Do
  GetCommModemStatus(hCom, @modemStat)
  Locate 8,1
  If modemStat And MS_CTS_ON  Then Print "CTS  (USB=CTS 8) = 1" Else Print "CTS  (USB=CTS 8) = 0"
  If modemStat And MS_DSR_ON  Then Print "DSR  (USB=RSD 6) = 1" Else Print "DSR  (USB=RSD 6) = 0"
  If modemStat And MS_RING_ON Then Print "RING (USB=R1  9) = 1" Else Print "RING (USB=R1  9) = 0"
  If modemStat And MS_RLSD_ON Then Print "RLSD (USB=DCD 1) = 1" Else Print "RLSD (USB=DCD 1) = 0"
  Sleep 5
Loop Until Inkey = Chr(27)

'Alle Ausgangsleitungen auf negative Spannung zurücksetzen:
EscapeCommFunction(hCom, CLRRTS)    'RTS -12V
EscapeCommFunction(hCom, CLRDTR)    'DTR -12V
EscapeCommFunction(hCom, CLRBREAK)  'TxD -12V

'Serielle Schnittstelle schließen:
CloseHandle(hCom)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 29.12.2017, 21:26    Titel: Antworten mit Zitat

Hehe, da muss ich den Ruhm aber ein bisschen abtreten. Das Code-Beispiel zum Auslesen/Setzen der Statusleitungen im FreeBASIC-Portal ist nicht von mir. Ich habe es dir nur verlinkt. Der Autor ist jemand anderes (Steini). Steht im Portal auch so angegeben.

Zitat:
Bei COM4 gibt es „Ressourcen“ gar nicht.

Das klingt für mich einleuchtend. Wie sollte ein Knoten bzw. Busteilnehmer, der am USB hängt, auch eine x86-I/O-Bus-Port-Basisadresse haben. neutral
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 46
Wohnort: Herzogenaurach

BeitragVerfasst am: 29.12.2017, 21:47    Titel: Antworten mit Zitat

Zitat:
Frage 1 von grindstone : Gibt es zu dem Adapter irgendeine Dokumentation, wo solche Details beschrieben sind?


Am IC steht CN480661
Das IC ist von der Firma FTDI mit der Bezeichnung FT232RL

Auf der Rückseite von der Platine steht YP-05 da findet man auch einige Sachen und Bilder.

Ehrlich gesagt wenn man das bei google überfliegt was da so alles bei FT232RL angezeigt wir ist man verwirrender als vorher.


Zitat:
Frage 2 von grindstone : Gehört zu dem Adapter ein Treiber, den du zusätzlich installieren musstest?

Treiber ist keiner nötig, so hab ich das von den Chinesen verstanden.

############

Hallo Sebastian,

da steht was von Autor: Steini63.
O.K.
Nur gefunden hätte ich das nicht ohne deine Hilfe, Danke.

Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 849
Wohnort: Ruhrpott

BeitragVerfasst am: 30.12.2017, 12:09    Titel: Antworten mit Zitat

eeg-grimm hat Folgendes geschrieben:
Am IC steht CN480661
Das IC ist von der Firma FTDI mit der Bezeichnung FT232RL
Hmmm...
http://www.rudiswiki.de/wiki/FTDIWildWest

Nach dem Datenblatt des FT232RL müsste sich der USB - Adapter direkt (ohne Pegelwandler / Inverter) an das Messmodul anschliessen lassen.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 46
Wohnort: Herzogenaurach

BeitragVerfasst am: 31.12.2017, 12:31    Titel: Antworten mit Zitat

Hallo grindstone,

den USB - Adapter schließe ich direkt (ohne Pegelwandler an) an das Stromzählermodul PZEM-004T und das auslesen der z.B. Spannung geht ja einwandfrei, mit dem Programm von Sebastian (16.12.2017, 01:30) mit COM1 und auch mit USB=COM4.

Die Anfrage wegen RTS und auch für DTR als Ausgang schalten mit FreeBASIC hab ich ja nur gestellt weil ich eine Verbindung zur Außenwelt brauch um was EIN und AUS zu schalten.
Bei erreichen oder unterschreiten von Messwerten soll ja was geschalten werden.

#

Mit dem Eingebauten COM1 geht ja die Messung mit dem PZEM-004T und auch das schalten von RTS und DTR, alles mit FreeBASIC.

Bei Verwendung vom FreeBASIC und USB (COM4) geht das PZEM-004
aber nicht das schalten von RTS, DTR.

Nur mit dem „Spezialprogramm“ von Sebastian 29.12.2017, 12:23 zeigt RTS, DTR zumindest eine Reaktion.
Die Eingänge CDS, DSR, RING (RI) und RLSD (DCD) kann man abfragen an der USB Platine.

#

volta, hat am 19.12.2017, 16:39 (Seite 1) noch ein Programm eingestellt für:
Volt, Anper, Watt und kWh

Ist mir aber mir noch nicht klar wie das komplette Programm dann aussieht um V, A, W und kWh zu bekommen von Stromzählermodul PZEM-004T.


Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Steini63



Anmeldungsdatum: 11.11.2004
Beiträge: 28
Wohnort: 30926 Seelze

BeitragVerfasst am: 31.12.2017, 16:48    Titel: Statusleitungen per WinAPI schalten Antworten mit Zitat

eeg-grimm hat Folgendes geschrieben:

Bei Verwendung vom FreeBASIC und USB (COM4) geht das PZEM-004
aber nicht das schalten von RTS, DTR.


Doch, das machen doch die folgenden Zeilen:

Code:
'Alle Ausgangsleitungen auf positive Spannung setzen:
EscapeCommFunction(hCom, SETRTS)    'RTS +12V
EscapeCommFunction(hCom, SETDTR)    'DTR +12V

Code:
'Alle Ausgangsleitungen auf negative Spannung zurücksetzen:
EscapeCommFunction(hCom, CLRRTS)    'RTS -12V
EscapeCommFunction(hCom, CLRDTR)    'DTR -12V


Das kannst du beliebig oft im Programm durchführen, so lange der entsprechende COM-Port geöffnet ist. Der Unterschied beim TTL USB-seriell Wandler ist, dass die Spannungen 0V (statt -12V) und 5V (statt 12V) betragen; TTL-Pegel eben.
_________________
Viele Grüße Steini
http://www.FrankSteinberg.de +++++++ Planung ist das Ersetzen des Zufalls durch den Irrtum +++++++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 849
Wohnort: Ruhrpott

BeitragVerfasst am: 31.12.2017, 21:11    Titel: Antworten mit Zitat

Steini63 hat Folgendes geschrieben:
...dass die Spannungen 0V (statt -12V) und 5V (statt 12V) betragen; TTL-Pegel eben.
Achtung: Das gilt nur für die Steuerleitungen (DTR und RTS). Bei TxD und RxD ist es umgekehrt: L - Pegel (0V / TTL) entspricht +12V / RS232, H - Pegel (5V / TTL) entspricht -12V / RS232. Entschuldigung, wenn ich hier etwas besserwisserisch erscheine, aber hinter genau diesem Fehler (oder besser: Irrtum) habe ich einmal fast 2 Wochen hergesucht. mit dem Kopf durch die Mauer wollen

Allerdings lassen sich beim FT232R die TTL - Pegel bei Bedarf invertieren (siehe Datenblatt, Seite 35).

Gruß und guten Rutsch
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
eeg-grimm



Anmeldungsdatum: 19.04.2006
Beiträge: 46
Wohnort: Herzogenaurach

BeitragVerfasst am: 01.01.2018, 13:34    Titel: Antworten mit Zitat

Hallo,
erst ein gesundes neues Jahr.

Der Kopf brummmmmmt noch aber alle Finger sind noch dran.

######

grindstone schreibt:
Entschuldigung, wenn ich hier etwas besserwisserisch erscheine

Das ist nicht besserwisserisch, mein wissen ist nicht besser, meine Fragen sind ja auch manchmal etwas komisch, verwirrend.


Hab ja nur Basiswissen bei QBasic, so für den Hausgebrauch und da bin ich für jeden Tipp dankbar.
Deshalb auch nur Basic = Basiswissen.

Auch auf der Internetseite von Steini63 hol ich mir seit Jahren immer wieder mal den einen oder anderen Tipp.
Ich bin ja noch nicht in der Hochgeschwindigkeit-Datenverarbeitung angekommen aber nur mit COM am PC ist ja auch ein Auslaufmodell.

Die Ausgänge RTS und DTR sind genau umgedreht bei der Spannungsausgaben an der USB Platine.

„EscapeCommFunction(hCom, SETRTS) 'RTS +12V“
RTS +12V = L (RTS mit einem LED verbunden mit GND LED=AUS)

„EscapeCommFunction(hCom, SETDTR) 'DTR +12V“
DTR +12V = L (DTR mit einem LED verbunden mit GND LED=AUS)

„EscapeCommFunction(hCom, CLRRTS) 'RTS -12V“
RTS -12V = +5V H (RTS mit einem LED verbunden mit GND, LED=EIN )

„EscapeCommFunction(hCom, CLRDTR) 'DTR -12V“
DTR -12V = +5V H (DTR mit einem LED verbunden mit GND LED=EIN)

Ich hab ja jetzt zwei Leitungen die H und L Signale liefern über einem I2C-Bus mit einem IC PCF8574 dann verschiedene Sachen EIN und AUS schalten.

Gruß
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4
Seite 4 von 4

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz