Forum: PC-Programmierung Spannung regeln Computer (C++)


von t4ggno (Gast)


Lesenswert?

Hallo,

vor kurzem habe ich das Studentenkompendium für C++ durchgelesen. Da 
wurde kurz eine kleine Spielerrei gezeigt. Und zwar das steuern von 
3Leds über den Seriell-Port. Diese Idee finde ich genial und deshalb kam 
ich auf eine eigene Idee. Das steuern meiner Kaltlichkatoden zur Musik 
(EQ). Ist der Ton laut, soll es hell leuchten. Ist der Ton (bzw. bass) 
leiser soll es weniger hell leuchten (also sogesagt dämmern). Da ich 
gelesen habe, dass Seriell nur zwei zustände kann "an (~0V)" und "aus 
(~5V)", suche ich nun irgend ein Bauteil, bei welchem ich die Spannung 
drosseln kann und so meine zwei Kaltlichtkatoden ansteuern kann. Gibt es 
da irgendwas? Außerdem, wie kann ich meine Kaltlichtkatoden dann in die 
Schaltung integrieren (muss das Gerät dann Saft für 2 Kaltlichtkatoden 
leifern?)?

Entschuldigt mein fehlendes Wissen bei Hardware :)

Der Technikunterricht von der Realschule ist schon eine Weile her :/

Gruß
t4ggno

von Andreas B. (andreas_b77)


Lesenswert?

t4ggno schrieb:
> Da ich
> gelesen habe, dass Seriell nur zwei zustände kann "an (~0V)" und "aus
> (~5V)"

Das ist schon mal falsch. Die Zustände an einem seriellen Port (RS-232) 
werden über eine positive (+3 – +15 V) und eine negative (-3 – -15 V) 
Spannung repräsentiert.

von Karl H. (kbuchegg)


Lesenswert?

Und um Andreases Antwort noch etwas zu präzisieren:

Nein, du kannst dir die Spannung nicht aussuchen.


Du brauchst eine externe Schaltung, die die Spannung erzeugt und die vom 
PC aus den Befehl erhält, eine bestimmte Spannung zu erzeugen. Dazu gibt 
es mehrere Möglichkeiten, aber rein nur mit PC Bordmitteln geht das 
nicht.

von t4ggno (Gast)


Lesenswert?

okay. Da habe ich dann wahrscheinlich irgendwas falsch verstanden. Aber 
zum Glück lernt man nie aus ...

Mit seriell kann ich dennoch nichts anfangen oder?

Kann man evtl das Regeln der Spannung an den Kathoden über den 
Lüfteranschluss regeln?

von t4ggno (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Und um Andreases Antwort noch etwas zu präzisieren:
>
> Nein, du kannst dir die Spannung nicht aussuchen.
>
>
> Du brauchst eine externe Schaltung, die die Spannung erzeugt und die vom
> PC aus den Befehl erhält, eine bestimmte Spannung zu erzeugen. Dazu gibt
> es mehrere Möglichkeiten, aber rein nur mit PC Bordmitteln geht das
> nicht.

Und welche Möglichkeiten gäbe es da? Kann das ein Anfänger verstehen 
oder muss man sich da tiefer in der Elektronikebene sich befinden?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Natürlich kannst Du was mit der seriellen Schnittstelle anfangen. Hänge 
an die einen kleinen µC, der Deine Steuerungsaufgaben übernimmt.

Das ist von den für diese Zwecke sinnvollen Schnittstellen die am 
einfachsten zu nutzende.

von Mike J. (emjey)


Lesenswert?

Es gibt auch zwei Pins (DTR, RTS) am RS232 Ausgang den man high und low 
(-12V = High, 12V = low) schalten kann, ich habe das mal mit Java 
gemacht weil ich die -12V brauchte.

Das wirst du mit Visual-C++ auch machen können.

Vielleicht kannst du damit eine niederfrequente PWM erzeugen und 
dahinter einen kleinen Tiefpass basteln damit die weiße LED (keine 
Kaltlichtkatoden) nicht flackert.

von t4ggno (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Natürlich kannst Du was mit der seriellen Schnittstelle anfangen. Hänge
> an die einen kleinen µC, der Deine Steuerungsaufgaben übernimmt.
>
> Das ist von den für diese Zwecke sinnvollen Schnittstellen die am
> einfachsten zu nutzende.

µC = Computerbauteil mit diversen Schnittstellen?

Ich denke µC wird für mich zu kompliziert sein. Wollte eig. kein 
Elektonikgroßprojekt (<- für mich ist das ein Großprojekt) machen :)

Mike J. schrieb:
> Es gibt auch zwei Pins (DTR, RTS) am RS232 Ausgang den man high und low
> (-12V = High, 12V = low) schalten kann, ich habe das mal mit Java
> gemacht weil ich die -12V brauchte.
>
> Das wirst du mit Visual-C++ auch machen können.
>
> Vielleicht kannst du damit eine niederfrequente PWM erzeugen und
> dahinter einen kleinen Tiefpass basteln damit die weiße LED (keine
> Kaltlichtkatoden) nicht flackert.

Dann werde ich wohl mal dies probieren!
Ist zwar kein sanftes hell und dunkel werden, aber das geht bei kathoden 
bestimmt eh nicht. Werde dann einfach an diversen stellen LEDs einbauen 
und diese dann zum takt aufblitzen lassen. Programmiertechnisch sollte 
dies kein Problem darstellen. Gibt ja genug libs zum ansteuern des 
S-Ports (hoffe zumindest eine OS-unabhängige)!

Gruß
t4ggno

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

t4ggno schrieb:
>> Es gibt auch zwei Pins (DTR, RTS) am RS232 Ausgang den man high und low
>> (-12V = High, 12V = low) schalten kann

Zu bedenken ist, daß die RS232-Treiber recht hochohmig sind, deutlich 
mehr als 10 mA sind da nicht zu erwarten.

Und die Geschwindigkeit, mit der man an diesen Handshakeleitungen 
"wackeln" kann, liegt bestenfalls bei ein paar hundert Hertz.

von Karl H. (kbuchegg)


Lesenswert?

t4ggno schrieb:

> Mike J. schrieb:
>> Es gibt auch zwei Pins (DTR, RTS) am RS232 Ausgang den man high und low
>> (-12V = High, 12V = low) schalten kann, ich habe das mal mit Java
>> gemacht weil ich die -12V brauchte.
>>
>> Das wirst du mit Visual-C++ auch machen können.
>>
>> Vielleicht kannst du damit eine niederfrequente PWM erzeugen und
>> dahinter einen kleinen Tiefpass basteln damit die weiße LED (keine
>> Kaltlichtkatoden) nicht flackert.
>
> Dann werde ich wohl mal dies probieren!

Der ganze Vorschlag ist blödsinnig.
PWM ist mit einem Windows-PC ohne externe Hardware nicht sinnvoll 
machbar. Zum testen und ein wenig rumspielen mag es noch angehen, aber 
spätestens wenn eine sinnvolle alltagstaugliche Lösung gebraucht wird 
ist Schicht im Schacht. Spätestens wenn Windows den PC einfriert um den 
Speicher aufzuräumen, sind deine Lichter entweder voll ein oder voll 
aus, je nachdem wann genau sich Windows dazu entschliesst.
Mal ganz davon abgesehen, dass du mit Windows-Mitteln keine vernünftige 
PWM Auflösung hinkriegst, weil der normale Timer nicht fein genug 
auflöst.

von Klaus W. (mfgkw)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Der ganze Vorschlag ist blödsinnig.

Jein.

t4ggno schrieb:
> ... kleine Spielerrei ...

Gemessen an den Anforderungen könnte es mit Bitklingeln durchaus 
angemessen sein.
Zumindest lernt man etwas dabei, nämlich ein bißchen Programmieren und 
daß es nicht so richtig toll geht auf diese Art.

Also warum nicht?
Es muß ja nicht den Elektronikmarkt von hinten aufrollen.

von .... (Gast)


Lesenswert?

So langsam sind die handshake Leitungen dann auch nicht!
Unter Windwos ~16kHz bei 1:1 und 50% CPU auslastung (Dualcore)
Bei Linux ~30kHz mit dem gleichen Programm in !!!C#!!!

von Mike J. (emjey)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Der ganze Vorschlag ist blödsinnig.

Mach einen Vorschlag der für ihn gut umsetzbar ist.

@ t4ggno (Gast)
Du könntest eine Schieberegister (74HC4094) mit einem dahinter 
geschalteten R2R-Netzwerk nutzen um eine Spannung herzustellen.
Die Spannung geht zu einem OpAmp, der vergleicht diese Spannung mit der 
Spannung an einem Shunt und regelt einen Transistor so dass nur der 
entsprechende Strom über die LED fließt.

Das Schiebregister braucht nur einen Takt und ein Datensignal. (kann man 
mit DTR und RTS machen)
Am besten wäre es aber noch wenn man mit Strobe die Daten an den 
Ausgängen Übernehmen kann und nicht sieht wie die Daten rein geschoben 
werden.

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
Noch kein Account? Hier anmelden.