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
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.
@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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.