mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Duo-LED sinnvoll ansteuern


Autor: Alfred e. Neumann (oggywan)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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…

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Alfred e. Neumann (oggywan)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Alfred e. Neumann (oggywan)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Andreas Ferber (aferber)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alfred e. Neumann (oggywan)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.