Hallo, ich arbeite an einem Projekt, bei dem ich mit Hilfe von einer Software (Thermalkamerasoftware) bei bestimmten Bediengugen (falls die Temperatur des Körpers höher als kritische Temperatur ist, was durch meine Software definiert ist) einen 5v Triggersignal schicken möchte um ein Gerät (Erhitzung) auszuschalten. Also falls die Temperatur > Tkritisch ist, löst sich die Alarmfunktion aus. Nur jetz kommt die Frage! :) Zum Auschalten meines Gerätes brauche ich einen 5V Signal von der RS232 Schnittstelle. Soviel ich weiss, muss ich erstmal meinen Rs232signal in TTL- Logik umwandeln, was mit Hilfe von Max232 möglich ist. Ich habe im Internet eine Max232Platte gefunden, die aber externe Stromquelle braucht (http://www.tigal.at/product/1245). Ist das denn überhaupt möglich? Und wie? An welche Pins der seriellen Schnittstelle soll ich mit meinem Code die Daten schicken, damit ich die weiter in 5v umwandeln könnte?
Du kannst einfach die RTS Leitung nehmen. Die geht von ca. -10 bis +10 Volt. Bei RTS=ON hat sie -10 V. Du kannst die ans Gate eines FETs führen (z.B. BS170). Drain über 22k an 5V. Source an Masse. Dann bekommt du deinen 5V Pegel bei RTS=ON und sonst 0V. Alternativ, nimm einen MAX232, der macht dir auch Logik-Pegel aus dem COM-Port Pegeln. Ist aber Oversize für deine Anwendung. gruß cyblord
Da der serielle Port des PC weder eine Stromversorgungs-Leitung noch 5V Pegel hat, brauchst Du einen Wandler mit eigener Stromversorgung. Im einfachsten Fall kann man das auch mit Transistoren machen, was ich bevorzugen würde, wenn wirklich nur ein Ausgang auf 5V herabgesetzt werden soll. Alternativ könntest Du auch einen Optokoppler verwenden. Dessen Leuchtdiode schließst Du mit Vorwiderstand an eine Steuerleitung der seriellen Schnittstelle an (z.B. DTR). Den Ausgangs-Transistor des Optokopplers verbindest Du mit dem Eingang der digitalen Schaltung. Eventuell ist dazu noch ein Pull-Up Widerstadn nötig, das hängt von den Eigenschaften des Einganges ab.
Ne er kann auch das zweite Handshake-Signal (DTS??) nehmen und es auf OFF bringen (=+10V), dahinter nen Festspannungsregler 5V, z.B. LP2950. So bekommt er seine 5V ohne externe Spannung. Wirklich Strom kann man aber natürlich darüber nicht ziehen. Für einen 5V Logikpegel reichts aber allemal. gruß cyblord
Erstmal danke für die schnelle Antwort! Cyblord, macht es überhaupt Sinn eine solche MAX232Platte, die ich gefunden habe, zu verwenden? Ich kenne mich nicht gut mit Elektrotechnik aus, und Oversize ist für mich kein Problem, wenn es einfacher ist! Besonders, wenn es viel mehr zu MAX232 als zu FET gibt :) Kann ich die Platte verwenden, die ich oben erwähnt hatte (oder etwas ähnliches)? Stefan, danke für die Idee mit dem Optokoppler! Gibts wahrscheilich ein Schaltschema dazu irgendwo?
Filthy Lucre schrieb: > Cyblord, macht es überhaupt Sinn eine solche MAX232Platte, die ich > gefunden habe, zu verwenden? Ich kenne mich nicht gut mit Elektrotechnik > aus, und Oversize ist für mich kein Problem, wenn es einfacher ist! > Besonders, wenn es viel mehr zu MAX232 als zu FET gibt :) Ja nimm die fertige Platine. Die geht. Auf dem Bild sieht man dass die Handshakeleitungen (RTS, CTS) rausgeführt sind. Damit bekommst du dein Logik-Pegel. Nur du brauchst halt eine externe 5V Spannung irgendwoher. Gut und günstig bekommt man sowas aus einem Handy-Ladegerät. gruß cyblord
cyblord, also mit dem Code RTS Leitung anschalten, mit der Plattine verbinden, externe Stormquelle finden, das Engerät mit dem Output 5v auf der Plattine verbinden. Danke! :)
Sorry für eine dumme Frage, aber bevor ich die Platine bestelle, wollte ich genau wissen, wie es damit geht. Man verbindet also den Femaleconnector DB9 mit der seriellen Schnittstelle des Rechners. Die externe Stromquelle wird, nehme ich mal an, mit dem 5V Pin verbunden. Durch meine Software wird bei der Auslösung der Alarmfunktion die RTS Leitung zu ON gesetzt, sodass ich am Ende einen Ausgangssignal von 5 v bekomme. An welchem Pin? Oder habe ich was falsch verstanden? Danke im Voraus!
Ja das ist so richtig. Das müsste am Pin RTS sein. Kommt drauf an wie rum die Platine beschriftet ist. Ansonsten am CTS Pin. Kannst ja probieren. Und GND/Masse muss natürlich auch verbunden werden. Sonst stimmt alles. Jetzt bestell und probiers aus. Was kommt eigentlich danach? Was machst du mit einem Logik-Pegel? Wo geht der hin? Und mach das 2,2MB Monster da oben weg. Machs kleiner. Machs als Bild. Tu was.
Ne einzelne Z-Diode reicht auch. RTS TXD und DTR sind alle auf ca. 20mA begrenz und dauerhaft kurzschlußfest. Über die Z-Diode stellt sich dann die entsprechende Spannung ein. Vorteil besteht nur aus einem Bauteil. Man sollte jedoch noch als Schaltunbgverbesserung nen vorwiderstand von 1K Ohm vor die Z-Diode packen. Die negative Spannung wird auf ca. -0.7V begrenzt.
Filthy Lucre schrieb: > Sorry für eine dumme Frage, aber bevor ich die Platine bestelle, wollte > ich genau wissen, wie es damit geht. Weil darüber noch nicht näher gesprochen wurde: neben der Hardware brauchst Du natürlich auch eine Möglichkeit, das Steuersignal, das Du verwenden willst (RTS oder DTR), per Software zu beeinflussen. Gruß Dietrich
Man könnte auch nen FT232 Breakout-Board nehmen, da hat man direkt 5V-Pegel (je nach Board) ;D
Dietrich, dafür ändere ich meine Software so, dass die RTS Leitung bei der Auslösung der Alarmfunktion angeschaltet wird und dann wieder ausgeschaltet. Ich habe schon ein Program gemacht, das bei der Auslösung ein Bit an die serielle Schnittstelle sendet. Damals wusste ich aber nicht, dass ich einfach die RTS Leitung an/ausschalten soll. Ich glaube das ist eben das, was du gemeint hast. Gruß
Filthy schrieb: > Ich glaube das ist eben das, was du gemeint hast. Ja. Daten senden hilft bei dieser Lösung eben nicht. Gruß Dietrich
Filthy Lucre schrieb: > Zum Auschalten meines Gerätes brauche ich einen 5V Signal von der RS232 > Schnittstelle. Hast du schon geguckt, ob dein PC überhaupt noch eine serielle Schnittstelle hat. Die Dinger stehen schon seit einiger Zeit auf der Roten Liste.
Ja, habe ich eins! :) Das Problem waere aber mit PCIcard loesbar :)
Hallo, Ich habe noch eine kurze Frage zu meinem Problem. Wie das schon mal oben erwähnt wurde, muss ich meine RTS Leitung irgend wie einschalten. Wie macht man das am einfachsten? Geht es auch mit c++? Gibts auch Tutorials dazu? Danke im Voraus!
Wenn du aus der seriellen ein paar Zeichen raus schubst, wackelt doch auch der TX-Pin. Filthy schrieb: > Geht es auch mit c++? > Gibts auch Tutorials dazu? Ich nehme jetzt mal an, dein Betriebssystem ist POSIX-compliant: http://www.easysw.com/~mike/serial/serial.html mfg mf
Hallo Mini Float, Danke für so einen guten Link, damit mache ich jetzt weiter. Habe aber noch eine kurze, aber grundlegende Frage: Ich habe gerade eine Leuchtdiode mit gnd und rts verbunden und die hat geleuchtet, d.h. es gibt eine negative Spannung zwischen den beiden Pins auch ohne Datenübertragung. Wenn ich aber + und - gewechselt habe, leuchtet meine Diode nicht mehr. Logischerweise muss dann eine Postivive Spannung vorliegen, wenn ich die Daten an meine Ser. Schnittstelle sende? Habe ich das richtig verstanden? Danke!
Ich habe es so verstanden, dass wenn man den ComPort öffnet, wird schon automatisch die RTSLeitung eingeschaltet, d.h. es muss eine positive Spannung vorliegen, also muss die Led nicht mehr leuchten, was bei mir leider nicht der Fall ist :(
Filthy schrieb: > Ich habe es so verstanden, dass wenn man den ComPort öffnet, wird schon > automatisch die RTSLeitung eingeschaltet, d.h. es muss eine positive > Spannung vorliegen, also muss die Led nicht mehr leuchten, was bei mir > leider nicht der Fall ist Ist auch nicht so. Die Flusssteuerung musst du immer mit deiner Applikation übernehmen. Die billigste Lösung wird vermutlich wirklich die TX-Leitung sein. Die bleibt auf Ruhepegel, bis man was sendet. Eine dort angehängte LED müsste dann alo flackern. Da muss man einfach nur was in das entsprechende Device in dev rein schreiben... mfg mf
Jupp, habe ich ausprobiert! Danke! Die Led flackert, wenn Daten übertragen werden. Jetzt kommt die Frage, wie hoch ist denn die Spannung am Ausgang und ob ich mit meiner Platine (Max232) am Ausgang eine Spannung von 5v bei TxD habe.
Filthy schrieb: > Jetzt kommt die Frage, > wie hoch ist denn die Spannung am Ausgang 1. Com-Port: Ruhepegel: -12V bis -3V, manche Notebooks und USB-seriell-Adapter spucken 0V aus entspricht einer logischen 1 "Signal"-Pegel: +3V bis +12V entspricht einer logischen 0 2. Max232: Ruhepegel ist die logische 1, also 5V "Signal"pegel ist logisch 0, also 0V Die absolut billigste Methode wäre einfach, ein 0x00 mit geringer Geschwindigkeit zu senden. Dann bekommt man am Comport ein +12V-Impuls raus. Den kann man mit nem Widerstand und einer Z-Diode begrenzen. Notfalls tun es auch zwei grüne LEDn in Reihe, die dann die Spannung auf ca. 4,5V begrenzen. Zum Abfangen des Negativen Ruhepegels muss zu den LEDn noch eine normale Diode antiparallel.
1 | ___ 3k3 |
2 | TXD o----|___|-----*--------------o Trigger |
3 | _|_ |
4 | / Z-Diode |
5 | /_\ 5.1V |
6 | | |
7 | GND o--------------*--------------o GND |
8 | |
9 | ___ 3k3 |
10 | TXD o----|___|-----*-----*--------o Trigger |
11 | | _|_ |
12 | _|_ _V_ LED1 |
13 | D1 /_\ _|_ |
14 | | _V_ LED2 |
15 | | | |
16 | GND o--------------*-----*--------o GND |
mfg mf
Mini Float, danke erst mal fuer Erklaerungen und das Schema, wobei ich aber gar keinen Umwandler sehe. Ich habe dazu dennnoch eine Frage: Wenn die Spannung keine Rolle spielt und ich moechte einfach durch einen solchen Signal mein Geraet ausschalten, auch mit einem 12V-Signal, geht es auch ohne einen rs232-to-Ttl Umwandler?
Also ich würde da "was Solides" machen: - ein Arduino Nano (komp.) kostet 15 Euro - hat einen USB-Anschluss - kann auch ext. Geräte/Schaltungen mitversorgen - hat an die 10+ Pins, als Ein- oder Ausgang zu nutzen - ist plattform-unabhängig zu verwenden (Mac, PC, Linux) - keine obsolete Bastelei an der Hardware des Rechners ...
Das Problem ist aber, dass ich schon in meine Software die Comportsteuerung eingebaut habe. Und das gibt schon einen Signal aus, mit dem ich jetzt weiter arbeiten möchte. Ich bin gar kein Elektrotechniker, aber ich setze voraus, dass wenn eine Diode durch Datenübertragung flackert (also 1 sekunde, kann man aber länger haben durch Änderung von Baudrate), dann gibts eine Möglichkeit die Spannung auch weiter geben und dadurch das erwünschte Ergebniss triggern.
Also, kann ich mit dem Signal, den ich jetzt habe, also +12V, ein einfaches Gerät ausschalten, oder brauche ich unbedingt einen Umwandler?
Die von mir als hässliche ASCII-Schaltpläne geposteten Lösungen gehen direkt an den COM-Port. Die Platine brauchst du dann nicht. Ein 0x00 macht bei 300bps einen Impuls von genau 30ms. Reicht das? Vielleicht kannst du auch einen "break" senden. Da weiß ich aber nicht, wie lang der ist. Sonst eben die Statusleitungen hernehmen. mfg mf
Danke Mini Float, das ist eben das, wass ich wissen wollte! Danke noch mal!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.