PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Mit PWM Duo-LED ansteuern



TheME
04.11.2004, 18:18
Hi.
Ich möchte eine Duo-LED (2 antiparallel geschaltete LEDs in einem Gehäuse) über ein PWM-Signal ansteuern, sodass ich zwischen den beiden Farben rot über orange nach grün faden kann. Da ich dafür neben dem PWM-Signal auch das negierte PWM-Signal benötige, wollte ich es zuerst mit Transistoren machen.

Weil die beiden Dioden ja antiparallel geschaltet sind, muss man die Polarität der LED wechseln, um die jeweils andere Frabe zu bekommen.
Darum wird an ein Pin das PWM-Signal angeschlossen und am anderen Pin das /PWM-Signal.

Dann kam mir in den Kopf, dass ich auch das PWM-Signal eigentlich an ein I/O-Pin anschließen könnte und dann per Software an einem anderen Pin invertiert ausgeben.
Kann man das so machen? Sollte ja eigentlich nichts dagegen sprechen. Das PWM-Signal hat ja ca. 100kHz, der Systemtakt hat aber mehrere MHz. Könnte es trotzdem irgendwo Probleme geben?

martin
04.11.2004, 19:08
Hallo,

nur so eine Idee:

Was wäre, wenn du an den gemeinsamen Anschluß das PWM Signal anschließt, und die anderen beiden jeweils auf 5V und GND?

Das sollte eigentlich den gleichen Effekt haben, mit dem Unterschied, dass du nur ein PWM-Signal brauchst.

Ist nur eine Überlgeung, falls ich einen groben Denkfehler habe, sagt bitte bescheid.

Grüsse, Martin

04.11.2004, 20:01
+5V
_____
|
|
---
\ / LED1: grün
---
___ |
--|___|---x
Rv |
---
/ \ LED2: rot
---
|
|
---
GND
Nein, das kann leider nicht funktionieren. Wenn an Rv GND anliegt, dann leuchtet die obere LED (grün). Wenn jedoch +5V anliegen, leuchtet keine LED. Es würde funktionieren, wenn LED2 (rot) anderst gepolt wäre.

martin
04.11.2004, 20:15
@Gast

...ja du hast recht. Mist.

Danke für den Hinweis.

Grüsse, Martin

TheME
05.11.2004, 00:38
Also ich das jetzt mal selbst an nem 2313 ausprobiert.
Ich hab, wie gesagt, das PWM-Signal über einen I/O-Pin eingelesen und unvertiert an einem anderen I/O-Pin ausgegeben.
Im Grunde hat es auch gut funktioniert, nur darf das der Programmablauf nicht unterbrochen werden (z.B. mit wait). Die Invertierung müsste quasi dauernd im Hintergrund laufen.
Um dies sicherzustellen müsste man dann einen Interrupt verwenden, der entweder auf das PWM-Signal getriggert wird oder alle paar Millisekunden aufgerufen wird.

Aber falls ihr andere (bessere) Ideen habt, dann ruhig her damit.

Roberto
05.11.2004, 01:57
Was hälst du von einer H-Brücke?!
Wir z.B. bei Motoren eingesetzt.
Die steuerst du mit dem PWM an.
Tastverhältniss von 50:50 ist aus.
Und je nachdem, wie das Tastverhältnis ist..... leuchtet die eine oder die andere Led.

RCO
05.11.2004, 10:35
Warum nicht so?

Manf
05.11.2004, 10:43
Weil die beiden Dioden ja antiparallel geschaltet sind,

TheME
05.11.2004, 10:47
Dann bräuchte ich aber 4 Transistoren.
Wenn ich es so aufbaue, wie unten dargestellt, dann brauche ich nur 2 Transistoren.


--------------------------|
| |
| R2 |
| ____ |/
x---|____|----|\
R1 | 4.7k |
___ |/ |
-|___|--|\ |
4.7k | |
| |
--- ---
\ / \ /
--- ---
| |
----------x----------------

RCO
05.11.2004, 10:53
? Wie sind die Dioden jetzt geschaltet? Antiparallel? also in dem Bild jetzzt sind nur 2 Dioden, haben die also ne gemeinsamme Masse?
Blick ich nicht.
Antiparallel wäre für mich das:



------x-------
| |
--- ---
\ / / \
--- ---
| |
------x-------

TheME
05.11.2004, 13:14
Eigentlich wäre es mir egal.
Wenn es eben mit einer normalen Duo-Led (gem. Masse) einfacher zu realisieren ist, dann wird es eben so gemacht.

RCO
05.11.2004, 13:18
Ja, ist denn entscheidend, dass die Led insgeasmt auch heller/dunkler werden kann, oder ist nur das Verhältniss von grün zu Rot entscheidend?
Davon ist ja abhängig, welche Schaltung sinnvoll ist...

MFG Moritz

TheME
05.11.2004, 13:25
Die LED soll eigentlich immer gleichhell leuchten.
Nur die Farbe soll sich ändern (rot---orange---grün), also quasi das Verhältnis von Rot zu Grün.

Bomberman
05.11.2004, 13:52
Hallo Zusammen,

das hört sich vielleicht etwas wüst an, aber versuch doch mal die LED, wenn es denn wirklich zwei antiparallel geschaltete sind, mit Vorwiderstand zwischen zwei I/O-Pins zu hängen. Der eine Pin gibt das normale PWM-Signal aus, der andere das invertierte.
die Farbmischung sollte damit klappen, aber ob die Helligkeit trotz Vorwiderstand konstant bleibt weiß ich nicht.
Eventuell mußt Du auch die I/O-Ports mit Dioden vor "Eingangssignalen" schützen, derweil Sie als Ausgang funktionieren sollen.
Viel Erfolg
Patrick

TheME
05.11.2004, 15:50
Ja, dass es so geht, hatte ich ja schon erwähnt.
Dann muss man aber beim Programmieren des µCs aufpassen, dass man keine Pausen im Ablauf hat oder das PWM-Signal auf einen Interrupt legen (das bremst aber bestimmt brutal den Programmablauf des µCs). Würde der µC denn weiterhin im Stande sein, problemlos die analoge Spannung zu errechnen, wenn er alle paar µs seinen Programmablauf unterbrechen müsste?

09.11.2004, 13:04
Soweit ich weiß arbeiten die Timer als Zähler authark, das bedeutet das PWM wird nur dann unterbrochen, wenn die Auswertung des Überlaufes erfolgt (bei 12 MHz-Taktung sind das 4 oder 5 µs )
Der ADU arbeitet bei kontinuierlicher Wandlung dauernd, ob interrupt oder nicht.
Es kann eben nur sein, daß die Abfrage des Wertes durch einen Interrupt unterbrochen wird.
Ciao
Patrick