www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taster und LED an µC-Pin


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte an einem 8-pinner AVR (Tiny13) zuviel anschliessen. Daher 
müssen sich ein Taster und eine LED einen Pin teilen. Alle Kombinationen 
die ich mir ausgedacht habe, haben irgendeinen Mangel. Mal leuchtet die 
LED wenn man den Taster drückt, mal ist was anderes nicht so gut.

Daher die Frage, was ist die optimale Beschaltung um einen Taster und 
eine LED am Pin zu verheiraten?

Besten Dank.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach Taster + LED parallel nach Vorwiderstand vom Pin nach Masse.

Beim LED-Anzeigen DDR Register auf Ausgang stellen, => Led kann 
angesteuert werden.

Beim Taster einlesen: DDR auf Eingang, internen Pull-Up an und messen.

Wenn die Spannung bei geöffnetem Taster am Port nicht reicht, um als 
High-Level erkannt zu werden, andere LED verwenden (z.B. weisse mit >3V) 
oder noch eine Diode in Serie dazu.

Nachteil: LED ist immer aus, während Schalter gedrückt ist.

/Ernst

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Dir dafür zusätzlich zu der LED und ihrem Vorwiderstand noch ein 
Transistor und drei weitere Widerstände nicht zu teuer sind, kannst Du 
mal diese Schaltung studieren:


VCC = 5 V
-------o----------------o---
       |                |
       |                |
       |               180
       |                |
      10k               |
       |           -----o
       |           |    |
       |           /    |
PIN ---o---15k---(T)   LED
       |           \    |
       |      (npn)|    |
      3.3k         |    |
       |           |    |
       |           |    |
       o|          |    |
        +-T        |    |
       o|          |    |
       |           |    |
       |           |    |
-------o-----------o----o---
GND


Es gibt drei Fälle:

Pin treibt L raus --> T sperrt -> LED ist an
Pin treibt H raus --> T leitet -> LED ist aus
Pin ist Eingang   --> Es wird L [H] eingelesen wenn der Taster gedrückt 
[offen] ist

Der Zustand des Tasters ist so zu erfassen, daß der Pin kurzzeitig über 
das DDRX-Register auf "Input" geschaltet wird, der Zustand eingelesen 
wird (PINX), und der Pin danach sofort wieder auf "Output" 
zurückgeschaltet wird.  Während der Pin "Input" ist, ist die LED stets 
aus, was aber wegen der Kürze der Zeitspanne nicht zu sehen ist.

Ein kleiner Nachteil dieser Schaltung ist, dass der LED-Betriebsstrom 
von ca. 20 mA auch fließt, wenn die LED aus ist.  Für ein 
batteriebetriebenes Gerät ist sie deshalb nicht empfehlenswert.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohhh... Ascii-Schaltplan. Meiner Dagegen:

       ___
PIN --[_250_]---+--,
                |  |
                |  LED
               |o  |
       Taster--+   |
               |o  (evtl. Diode)
                |  |
GND ------------+--'

Ob du die Zusatzdiode brauchst, hängt ganz von der verwendeten LED und 
dem uC ab, die Gesammt-Durchlasspannung muss halt noch vom uC als HIGH 
erkannt werden.

Einlesen im Prinzip wie oben, nur dass man noch den internen Pull-Up 
einschalten muss. Am Pin liegen dann etwa 3V bei offenem Taster an 
(->HIGH Level), bei geschlossenem etwas über 0V (->LOW Level)

Vorteil: Es fliesst kein Strom, wenn die LED aus ist
Nachteil: Beim Tastendruck wird der uC Port stärker belastet, wenn die 
LED an war. (Mit 250 Ohm sinds dann genau 20mA, die LED hätte dann aber 
nur etwa 10mA zum Leuchten bei offenem Taster)


/Ernst

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Version in der der Taster die LED nicht stört. LED-Zweig wie von Ernst 
beschrieben. Muss so dimensioniert werden, dass bei Input mit internem 
Pullup der Pin auf High-Pegel bleibt. Wenn die Durchflussspannung der 
LED bei dem extrem niedrigen Strom des Pullups unterirdisch gering sein 
sollte, muss ggf. ein externer Pullup nachhelfen.



                       o---------------o--------o-
                                       |        |
                                       |        |
                                       |        |
                                      .-.      .-.
                                   10K| |      | |
                                      | |      | |
                                      '-'      '-'
                                       |        |
                                       |        |
                                    \  o        V
                                     \          -
                                      \.        |
                                       o        |
                                       |        V ->
                                       |        -
                                       |        |
                                       |        |
                                      ===      ===
                                      GND      GND
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Anregungen.

AVRFan:
Ein ständiger Strom, auch wenn der µC aus ist, ist hier leider nicht 
tragbar.


Ernst:
Auf diese Kombination bin ich auch gekommen. Allerdings sehe ich das 
Problem, dass der gemeinsame Vorwiderstand hinreichend niederohmig ist, 
um den Port zu beschädigen. Sprich, wenn der Pin als Ausgang und High 
gesetzt ist und einer den Taster drückt. Man müsste also die Widerstände 
in beide Zweige trennen und den am Taster etwas höherohmiger machen. Der 
Nachteil LED aus, bei Taster wäre verkraftbar. Besser als LED an :-) Der 
High-Level beim Auslesen macht mir keine Sorgen, bei 20+ kOhm internem 
Pullup und 3 V Betriebsspannung dürfte die LED keine Sorgen machen.

Viele Grüße

Autor: SiO2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich schlage vor, die LED gegen VCC zu haengen. Dir Pins koennen 
mehr gegen Masse ab, als sie Strom liefern.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@SiOS2: Die neueren AVrs sind symmetrisch. Im Fall vom Tiny13 allerdings 
nicht alle Pins.

@Thomas: Es gibt 2mA LEDs.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

A.K.
Ja, genau so meine ich auch. Aber 10 k am Taster sind schon relativ 
viel, bei 20..50 k interem Pull-Up. Ich tendiere derzeit zu 2k2, das 
macht ein gutes Milliampere, wenn der Port als Ausgang High ist und ist 
reichlich niederohmig  , wenn der Port mit dem internen Pull-Up als 
Eingang geschaltet wird.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A.K.

Man muss hier sowieso Low-current LED nehmen, da bei 3 V die Ports nur 
mit bestenfalls 5 mA belastet werden können. Allerdings ist bei 
gemeinsamem Widerstand der Strom bei gedrückten Taster trotzdem höher, 
da er ja nicht die Flussspannung wie die LED hat.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A.K. wrote:

> (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)

Nettes Programm, hab ich mir gleich gezogen.

Geht mit wine sogar unter Linux problemlos.

/Ernst

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yep, ich war beim falschen Tiny, der Tiny11 hat intern min 35K, daher 
meine 10K. Aber Prinzip ist klar.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke noch mal an alle Ratschläge, ich werde jetzt die Option mit zwei 
Widerständen und LED und Taster gen GND verwenden.

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.