www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED-Anschluß


Autor: Tadeusz (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich habe gerade das Beispiel vom Tutorial "I/O-Grundlagen" bei mir
ausprobiert und es funktiomiert aller super!

Hier werden An PB0-PB5 6 LEDs über einen Vorwiderstand von je 1kΩ
gegen Vcc (5V) angeschlossen.

Das heist: zum Einschalten der LEDs müssen die ensprechende bits auf
"0" gesetzt werden.

Ich habe, rein logisch gesehen, ein Problem damit, weil ich habe bis
jetzt in der PC-Programmierung für das "AUS" die "0" und für das
"EIN" die "1" verwendet.

Meine Frage:
Ist es möglich das Ganze umgekehrt zu machen, damit ich die "1" für
das "EIN" verwenden kann?

Siehe meinen Vorschlag "led_1.jpg".


Gruß
Tadeusz

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht prinzipiell schon so, nur ist hierbei zu berücksichtigen, daß
der Strom. der bei High-Pegel von einem Portpin geliefert werden kann,
i.d.R. geringer ist als der Strom, den ein Portpin bei Low-Pegel
aufnehmen kann.

Nimm lieber einen Open-Collector-Inverter (7405/7406) und schalte die
LEDs wie gehabt über einen Vorwiderstand gegen VCC. Der '06 treibt bis
zu 40 mA - das schafft kein Portpin eines Controllers.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rufus T. Firefly: wiso denn ein Inverter ? Es reicht doch ein einfacher
Transistor.

Du könntest aber z.B. in GCC eine globale variable benutzen die
folgendermassen definiert ist:

#define LED_EIN 0
#define LED_AUS 1

Dann verwendest du zum anschalten der LED_EIN und die LED geht an.
Quasi ein Software inverter.

MfG

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei den neueren AVR ist das kein problem da sind (fast) alle ausgänge
symetrische Push/Pull Stufen die eine ganze Menge Strom
liefern/aufnehmen können. Daher ist hier der Betrieb sowohl gegen Vcc
als auch gegen GND problemlos möglich. Bei anderen Prozessorfamilien
ist das nicht immer der Fall. Ebenso gibt`s da noch die open drain
Ausgänge. Daher hat sich der Betrieb Anode gegen Vcc und Kathode gegen
GND über Port geschaltet als quasi "Standard" etabliert.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Inverter ist dazu da, damit ein ausgegebener High-Pegel die LED
einschaltet, da Tadeusz gerne ohne die logische Invertierung auskommen
möchte.

Zwar kann ein Mega128 bei 5V 20mA an einem I/O-Pin verkraften, die
Summe aller so fließenden Ströme darf aber je nach verwendeten Ports
nicht größer als 400 mA oder auch deutlich weniger werden (siehe
Fußnoten 3&4 auf Seite 322 des Mega128-Datenblattes). Port B&E
beispielsweise verkraften maximal 150mA.

Daher ist der Gebrauch "richtiger" Treiber sinnvoll. Der 7406 hat
zudem den erweiterten Vorteil, daß der auch sehr viel höhere Spannungen
(bis 30V) verkraftet, und so sogar Glühbirnen und ähnliches ansteuern
kann.

Autor: Tadeusz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank für Eure schnelle Hilfe!
Ich werde mir das alles wie vorgeschlagen ausprobieren und weiter
experimentieren!

Gruß
Tadeusz

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.