PWM-Wechselblinker an PIC ein/ausschalten

Gast #2521849
Lesenswert?

Hallo Community,

ich kriegs einfach nicht gebacken und ersuche Euch um ein paar 
Vorschläge.

Problem:
Mein PIC 16F887 erzeugt am PWM1-Ausgang ein entsprechendes 
Rechtecksignal, das eine LED zum Leuchten bringt. Eine zweite LED hab 
ich über ein invertierendes Gatter angeschlossen und voila ich hab einen 
an/abschwellenden Wechselblinker (den 2. PWM-Ausgang brauch ich für was 
anderes).
Wenn ich nicht blinken will schalt ich einfach die PWM-Ratio auf null 
und die erste LED ist finster -> aber die zweite ist hell(!), weil sie 
ja invertiert ist (und ich will doch beide dunkel).

Da hab ich die Idee, ein Portbit zur Ansteuerung von einem 
'XXX-Baustein' zu nehmen, der mir beide LED's aktiviert oder dunkel 
schaltet.
Meine Frage an Euch: Welchen 'XXX-Baustein' soll ich nehmen? Ein 
NAND-Gatter?

Vielen Dank für eure Tipps  :-))
und noch einen schönen Abend

Rudi
Gast #2521875
Lesenswert?

Hast du noch nen normalen PIN frei?

Zum invertieren braucht es keinen Inverter! Einfach die LEDs 
entgegengesetzt einbauen und an den gleichen PWM-PIN hängen. Die eine 
LED geht über einen Widerstand an +, die andere über einen Widerstand an 
GND. Das heißt die eine leuchtet, wenn der PIN auf GND liegt, die andere 
leuchtet, wenn der PIN auf high-level liegt.

Das Problem bei dieser Schaltung ist nur das Ausschalten. Dazu muss man 
den PIN auf Input umschalten. Dann versorgen sich die LEDs allerdings 
gegenseitig. Und hierfür wird der zusätzliche PIN benötigt. Ersetze den 
+ Anschluss an der einen LED durch diesen PIN und du kannst das ganze 
einfach ausschalten, indem du an diesem PIN auch GND ausgibst.

Hoffe das war so einigermaßen verständlich.
Gast #2521999
Lesenswert?

Jep ... einfach mal gedanklich durchspielen:

Das ganze blinkt, wenn PWM läuft und PIN Y HIGH ist:
PWM HIGH -> obere LED leuchtet, untere LED hat auf beiden Seiten HIGH -> 
aus
PWM LOW -> untere LED leuchtet, obere LED hat auf beiden Seiten LOE -> 
aus

Ausschalten durch PIN Y = LOW und PWM = input oder LOW
#2523716
Lesenswert?

hufnala schrieb:
> kannst Du ueber über eine Soft-PWM ein Bit toggeln und die LEDs auf 2
> Ports ziehen und invertieren?

Ja, das wäre natürlich eine Möglichkeit. Allerdings passiert in der 
Endlosschleife noch einiges mehr (z.B. Gegenzug kommt zeitversetzt) und 
eine Software-Lösung knabbert immer am Timing. Deshalb arbeite ich 
lieber mit HW-Timern und HW-Interrupts. Aber ich weiß, das Projekt ist 
mein Erstlingswerk mit all seinen Schwächen und ein Profi würde die 
Hände über den Kopf zusammenschlagen... (aber mir machts Spaß  :-))

lg Rudi
#2524440
Lesenswert?

Rudi schrieb:
> Eine zweite LED hab
> ich über ein invertierendes Gatter angeschlossen und voila ich hab einen
> an/abschwellenden Wechselblinker (den 2. PWM-Ausgang brauch ich für was
> anderes).

Das Auge hat eine logarithmische Empfindlichkeit. Du wirst daher kein 
richtiges Hin- und Herschwellen sehen.
Was Du sehen wirst, ist etwa folgendes: Die LEDs leuchten die meiste 
Zeit etwa gleichhell und ab und zu wird die eine LED kurz dunkler und 
dann die andere.

Was Du brauchst, ist eine Software-PWM für beide LEDs getrennt. Und 
diese PWM wird dann aus einer logarithmischen Tabelle umgeladen.


Peter
#2524629
Lesenswert?

Peter Dannegger schrieb:
> Das Auge hat eine logarithmische Empfindlichkeit. Du wirst daher kein
> richtiges Hin- und Herschwellen sehen.

Hallo Peter,

ich habs schon probiert und es funktioniert nicht schlecht. In 
Wirklichkeit gibt es ja auch keinen gleitenden (sinusförmigen?) Übergang 
in der Helligkeit von einer zur anderen Lampe und ich hab beim Ein- und 
Ausschalten eine kurze Glimmperiode und es schaut "net schlecht" aus. 
Aber im Prinzip hast Du natürlich recht. Doch aus zuvor genannten 
Gründen kann ich keine 2 PWM's machen.

lg Rudi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren