Glühbirne über RS 232 an den PC anschließen

Im Unterforum Projekte im Selbstbau - Beschreibung: Selbstbau von Elektronik und Elektro

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 30 9 2024  06:15:16      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Projekte im Selbstbau        Projekte im Selbstbau : Selbstbau von Elektronik und Elektro

Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 Nächste Seite )      


Autor
Glühbirne über RS 232 an den PC anschließen

    







BID = 360523

Dombrowski

Stammposter



Beiträge: 450

Moin.

Nee, mit deiner Schaltung wird das nix. Der Stromkreis von der Spannungsquelle her muss über Glühlampe und Schalttransistor geschlossen sein. Mach es eher so wie in dieser Schaltung.
Ein Transistor BC337 reicht bis 400..450 mA für eine Glühlampe. 500 mA ist absolutes Maximum.
Der 100µF-Elko soll die Betriebsspannung im Moment des Ein- oder Ausschaltens puffern und stabil halten - z.B. bei längeren Zuleitungen von der Spannungsquelle. Wenn keine Gefahr droht, dass "empfindliche" Elektronik gestört wird, kann er auch wegfallen.

D.

BID = 360528

mex82

Neu hier



Beiträge: 24
Wohnort: Calw

 

  

Kann mir einer sagen wie die Hardwareschaltung aussehen muss?
Und das mit wenig Fachbegriffen?!
Eine kleine Skizze wäre nicht schlecht!

Merci

BID = 360544

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Oben hat Dombrowsky dir eine gemacht. Du musst dazu allerdings auf den Link klicken .

Tx ist nunmal ein Eingang, da kommt nichts raus. Daher eine Steuerleitung, die als Ausgang fungiert. Anscheined hast du die richtige Steckerbelegung ja schon rausgefunden .

Der Emitter des Transistors muss auf GND und nicht auf Rx .

_________________

BID = 360914

mex82

Neu hier



Beiträge: 24
Wohnort: Calw

Dank euerer Hilfe habe ich mir nun für nur eine Glühbirne eine Schaltung aufgebaut!

Würde dies funktionieren, wenn ich es in den nächsten Tagen über RS 232 steuern kann?

(siehe Anhang/ Bild)




[ Diese Nachricht wurde geändert von: mex82 am 17 Aug 2006 16:25 ]

BID = 360933

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Ja, sollte gehen.

Bedenke, dass die Lampe angeht, wenn man eine logische "0" in das Register schreibt. Wenn eine "1" geschrieben wird, leitet die Diode.

_________________

BID = 360946

clembra

Inventar



Beiträge: 5404
Wohnort: Weeze / Niederrhein
ICQ Status  


Zitat :
Tx ist nunmal ein Eingang, da kommt nichts raus. Daher eine Steuerleitung, die als Ausgang fungiert. Anscheined hast du die richtige Steckerbelegung ja schon rausgefunden.


Nee, Tx steht für Transmit (oder ähnlich), was Senden bedeutet. Und Senden über einen Eingang ist schwer.
Rx ist der Eingang.
Aber Rts (Ready to send) stimmt, das ist (aus PC-Sicht) ein Ausgang

_________________
Reboot oder be root, das ist hier die Frage.

BID = 360979

Dombrowski

Stammposter



Beiträge: 450

Moin.

TXD ist aus PC-Sicht auch ein Ausgang. TXD, DTR und RTS sind die drei Leitungen, die Signale vom PC zur Peripherie übertragen. So eine Zusatzschaltung betrachtet man als DCE (Data Communication Equipment), also genau wie ein Modem. Schon deshalb, damit man ein normales 1:1-Kabel benutzen kann und nicht auf ein Crossover-Kabel angewiesen ist. Ein DCE empfängt ein Signal über den TXD-Pin. (Der Pin des RS232-Steckverbinders ist gemeint!)

TXD kann sehr wohl ein statisches Signal liefern, nämlich indem man eine BREAK-Condition setzt, Bit 6 im Line Control Register. Dass man das Sende-Register (THR) in Ruhe lässt, während eine solche Anwendung läuft, versteht sich ja von selbst.

Und es ist auch in allen drei Fällen keine "0", die man zur Aktivierung ins Registerbit schreiben muss, sondern eine "1"! Bei logisch "0" im Register liegt -12 V (-3..-15 V) am Pin des Kabels; bei logisch "1" entsprechend +12 V (+3..+15 V). Es stimmt natürlich, dass die RS232-Treiber (MAX232, MC1488) invertieren; aus TTL-High machen sie -12 V, usw. Aber die Anschlüsse an den UARTs/SIOs sind bereits Low-aktiv: "1" im Register ergibt TTL-Low am Ausgang; bei Eingängen analog. Und minus mal minus ergibt plus.

Nunja, eine "richtige" Anwendung der seriellen Schnittstelle überträgt echte serielle Daten (die im PC über das THR losgeschickt wurden) und nimmt in der Peripherie einen µC o.ä. zur Auswertung.

D.

[ Diese Nachricht wurde geändert von: Dombrowski am 17 Aug 2006 19:27 ]

BID = 361103

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Mist, zu müde...


Hast natürlich Recht, dass TxD ein Ausgang ist...

_________________

BID = 361156

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein


Zitat :


TXD kann sehr wohl ein statisches Signal liefern, nämlich indem man eine BREAK-Condition setzt, Bit 6 im Line Control Register. Dass man das Sende-Register (THR) in Ruhe lässt, während eine solche Anwendung läuft, versteht sich ja von selbst.

[ Diese Nachricht wurde geändert von: Dombrowski am 17 Aug 2006 19:27 ]

wie lange darf so eine BREAK Condition anliegen?
und wie wird sie "abgeschaltet" = anderer logischer Pegel?

BID = 361159

mex82

Neu hier



Beiträge: 24
Wohnort: Calw

Hallo!

Nun möchte ich mich ein Wenig schlau über die Steuerung übers PC machen.

Wie krieg ich die Glühbirne zum Leuchten übers PC?

Ich weiß nur, dass ich mit der Programmiersprache C und einen Compiler
"Cygwin" die Sache machen kann!

Doch wie wir das genau Ablaufen?

Etwa:
1.) Im Editor einen Programm auf C schreiben
2.) Über Cygwin mit dem Befehl gcc compilieren!

Genügt das um die Glühbirne an zu kriegen?

BID = 361359

Dombrowski

Stammposter



Beiträge: 450

Moin.

Wie lange BREAK? Beliebig lange, denke ich. Ich habe im 16450-Datenblatt nichts Gegenteiliges gesehen. Zurücknehmen einfach durch "0"-setzen des Bits. Mein Google findet auf die Schnelle nichts Passendes, aber die BREAK-Bedingung durch Wechsel von Mark auf Space für mehr als eine Zeichendauer muss schon eine lange Tradition in der Fernschreibtechnik haben.

Die Basisroutinen zum Ein- und Ausschalten können z.B. wie folgt aussehen. Hier für die erste Glühlampe L1, die an DTR hängt.


Code :

#include <stdint.h>

#include <asm/io.h>

/* serial port base address */
#define io_SER 0x03f8
/* line control register */
#define io_LCR (io_SER+3)
#define bit_BRK 6
/* modem control register */
#define io_MCR (io_SER+4)
#define bit_RTS 1
#define bit_DTR 0

/* convenience macro: bit number to bit mask conversion */
#define B2M(b) (1<<b)

void l1_on (void)
{
uint8_t r;
r = inb_p (io_MCR);
r |= B2M(bit_DTR);
outb_p (r, io_MCR);
}

void l1_off (void)
{
uint8_t r;
r = inb_p (io_MCR);
r &= ~B2M(bit_DTR);
outb_p (r, io_MCR);
}
/* .... */


Dies kompiliert unter Linux mit gcc einwandfrei. inb_p() und outb_p() sind die eigentlichen I/O-Routinen; je nach BS und Compiler können sie anders heißen. Das "_p" sorgt für einen zusätzlichen Dummy-I/O-Zugriff, um das Zugriffs-Timing zu entspannen. Ist i.a. ratsam.
Wenn man ein Komplettprogramm drum herum schreibt, muss man unter Linux noch mehr machen - u.a. iopl() ausführen, um den Zugriff auf die IO-Ports freizugeben. Das wiederum geht nur mit root-Rechten. Es ist allerdings unanständig, von einem Userspace-Programm aus direkt auf den IO-Ports mit root-Rechten rumzuholzen. Die richtige Methode wäre ein Kernelspace-Treiber. Ich selber mache solche Experimente unter Good-ol-MSDOS. Mit Windows habe ich nichts am Hut.

D.

BID = 361472

Dombrowski

Stammposter



Beiträge: 450

Moin.

Ich habe spasseshalber mal eine GUI-Anwendung rund um die genannten Funktionen gemacht. Bild. Laufen tut es. (Pegel mit MM am RS232-Stecker gemessen.) Aber wie gesagt, mit einem Direkt-I/O-Zugriff vom Usermode aus werden alle Multitasking-Bemühungen und Sicherheitsmaßnahmen ad absurdum geführt.

D.

BID = 361944

mex82

Neu hier



Beiträge: 24
Wohnort: Calw

Erst mal vielen Dank!

Ich habe das Programm compilieren lassen!

Ich habe es unter Windows laufen lassen!

Folgende Fehlermeldung wird angezeigt:
asm/io.h: no such file or directory

Kannst du mir Literaturtipps geben um die Glühbirne über RS 232 zu steuern?
In Büchern wie "Programmieren in C", "Lehrbuch der Softwaretechnik." oder "Messen Steuern Regeln über RS 233"
gibt es kaum was, dass auch deinem Beispiel ähnlich ist!


BID = 361960

Lui

Gelegenheitsposter


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 96
Zur Homepage von Lui

Die io.h gehört zur io.dll und wird unter nt/Xp für direkten Hardwarezugriff benötigt.
Für die serielle Schnittstelle tun es die 'regulären' Windowsfunktionen aber auch:

int comport=CreateFile('com1',GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
...
EscapeCommFunction(comport, xxxyyy);
//xxx = SET für setzten CLR für löschen
//yyy = DTR/RTS/BREAK für die Leitung (für Tx also BREAK)
...
CloseHandle(comport);// Ordnung muss sein

BID = 361987

mex82

Neu hier



Beiträge: 24
Wohnort: Calw

Hallo!

kann ich RS 232 mit folgendem Programm (im Editor geschrieben und im Cygwin mit dem Befehl gcc compelieren) steuern:


#include <stdint.h>
#include <windows.h>

int comport=CreateFile('com1',GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);

EscapeCommFunction(comport, SETRTS);

CloseHandle(comport);


Vorherige Seite       Nächste Seite
Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 18 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182098406   Heute : 685    Gestern : 6149    Online : 536        30.9.2024    6:15
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0656068325043