Forum: Mikrocontroller und Digitale Elektronik LED-Anschluß


von Tadeusz (Gast)


Angehängte Dateien:

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

von Rufus T. Firefly (Gast)


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.

von Simon (Gast)


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

von mmerten (Gast)


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.

von Rufus T. Firefly (Gast)


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.

von Tadeusz (Gast)


Lesenswert?

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

Gruß
Tadeusz

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.