Forum: Mikrocontroller und Digitale Elektronik Duo-LED sinnvoll ansteuern


von Alfred e. N. (oggywan)


Angehängte Dateien:

Lesenswert?

Tag zusammen,

Ich entwickle gerade eine Prüfschaltung die Kabel auf die richtige 
Pinbelegung und auf Wackelkontackte prüfen kann (funktioniert). Da ich 
aber nur einen ATtiny2313 verwenden kann habe ich nur noch zwei Portpins 
frei habe und will über zwei Duo-LEDs (gemeinsame Kathode) den Status 
der Kabelprüfung anzeigen lassen.

Also habe ich mit einem Inverter Q7 versucht die LED direkt anzusteuern, 
was aber nicht zufriedenstellend funktioniert hat. Deshalb die beiden 
Schalttransistoren Q8 und Q9 mit denen ich über R4 und R7 den 
Strom/Helligkeit für die einzelnen LEDs festlegen kann. Funktioniert 
prima.

Wenn ich jetzt aber den Resettaster drücke leuchtet immer eine der 
Farben - das musste auch noch weg. Also her mit PSpice und ausgetestet 
was hilft, damit beide Farben aus sind wenn der Portpin beim Reset 
hochohmig wird.

Folgende Schaltung ist dabei rausgekommen, ich hab sie auch aufgebaut 
und sie funktioniert! Hurra!

Jetzt kommt endlich meine Frage :) Geht das auch einfacher?

Ich freu mich schon auf Antwort…

von Andreas F. (aferber)


Lesenswert?

Wenn du damit leben kannst, dass die LEDs beim Setzen "durchlaufen", 
also ggf. kurz flackern (wie lange jeweils hängt von deinem Takt ab), 
und nicht zuviel Strom ziehen, dann kannst du das mit einem 74HC595 und 
einem Widerstand machen.

SI und /OE kommen mit einem externen Pullup zusammen an den einen Pin 
(der "Datenpin"), SCK und RCK an den anderen (der "Taktpin"). Zur 
Ausgabe shiftest du ein Byte durch, und am Ende musst du noch ein Bit 
extra shiften (wenn SCK und RCK verbunden sind, dann ist das 
Shiftregister dem Outputregister immer einen Takt voraus, das Extrabit 
sorgt also für die endgültige Übernahme an den Output), ausserdem muss 
der Datenpin am Ende auf Low gesetzt werden, um die Ausgänge 
einzuschalten (/OE auf Low).

Wenn der Datenpin hochohmig ist (Reset), dann geht /OE über den Pullup 
auf High, und die LEDs werden alle abgeschaltet.

Damit könnten bis zu 8 LEDs angesteuert werden (für noch mehr dann 
mehrere 74HC595 kaskadieren).

Andreas

von Schrotty (Gast)


Lesenswert?

zum Verständnis:
Du willst folgendes erreichen, wenn ich dich richtig verstehe:

Port A   PortB   LED1A  LED1B  LED2A  LED2B
------------------------------------------
0        0       AN     AUS    AUS    AUS
1        0       AUS    AN     AUS    AUS
0        1       AUS    AUS    AN     AUS
1        1       AUS    AUS    AUS    AN
Z        Z       AUS    AUS    AUS    AUS


kommen alle diese Zustände vor?

von Alfred e. N. (oggywan)


Lesenswert?

@Andreas Ferber

Das hab ich mir auch schon überlegt - es wäre viel einfacher! Leider 
brauche ich hier 3 freie Pins.

Du hast mich aber auf eine (eigentlich nageliegende) Idee gebracht, über 
das Schieberegister kann ich die Ausgabeports die ich brauche erweitern 
- dann reicht es allemal.

Manchmal sieht man den Wald vor lauter Bäumen nicht.

Danke.

von Alfred e. N. (oggywan)


Lesenswert?

@ Schrotty

Das trifft es fast genau, ich bin hiervon ausgegangen

Port A   PortB   LED1A  LED1B  LED2A  LED2B
------------------------------------------
0        Z       AN     AUS    AUS    AUS
1        Z       AUS    AN     AUS    AUS
Z        0       AUS    AUS    AN     AUS
Z        1       AUS    AUS    AUS    AN

anhand deiner Tabelle würde ich auf einen Multiplexer tippen?

Liege ich richtig?

von Schrotty (Gast)


Lesenswert?

Wenn du statt der Duo-LEDs vier einfache nimmst, oder zumindest eine DUO 
LED mit gemeinsamer Anode, dann könntest ggf auch folgendes machen.
Setzt aber voraus, dass die Forwardspannung der LED recht gering ist.

Port A ------>|---------|<--------- Port B
           |        |        |
           ---|<----|--->|----
                    |
                    |
                    |
                  Ub/2


die Zustände wären dann

Port A    Port B    LED1  LED2   LED3   LED4
---------------------------------------------
1         Z         AN
0         Z               AN
Z         1                             AN
Z         0                      AN
Z         Z

Die LEDs sind von oben links gegen den Uhrzeigersinn durchnumeriert.

Um den Port auf Z zu stellen, müssest ihn als Eingang konfigurieren, 
wenn es nicht direkt geht.

LED1 und LED4 bzw LED2 und LED3 könnten auch Duo-LEDs sein.

Ach ja, und Vorwiderstände natürlich nicht vergessen ;-)

von Andreas F. (aferber)


Lesenswert?

Alfred e. Neumann schrieb:
> Das hab ich mir auch schon überlegt - es wäre viel einfacher! Leider
> brauche ich hier 3 freie Pins.

Nicht, wenn du damit leben kannst, dass die Ausgänge während des 
Shiftens "flattern". Dann reichen 2, wie oben dargestellt.

> Du hast mich aber auf eine (eigentlich nageliegende) Idee gebracht, über
> das Schieberegister kann ich die Ausgabeports die ich brauche erweitern
> - dann reicht es allemal.

Wenn du natürlich andere Ausgänge mit an das Shiftregister hängen 
kannst, das du dann "sauber" ansteuern kannst, umso besser ;-)

Andreas

von Alfred e. N. (oggywan)


Lesenswert?

Vielen Danke an alle,

jetzt hab ich auf jeden Fall eine Menge neuer Anregungen die ich morgen 
mal ausprobieren werden. Ich werde auch noch den Multiplexer 4052 den 
ich hier rumliegen habe mal genauer anschauen...

Ich berichte dann von meinen Erfolgen (oder Misserfolgen),

bis denne.

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.