LED-Anschluß

Gast #149333
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
Angehängte Dateien:
Gast #149334
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.
Gast #149335
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
Gast #149336
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.
Gast #149337
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.