www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Wie rum Verbraucher an Mikrocontroller anschließen?


Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem ich grade eine LED mit der Kathode nach GND an einen Ausgangspin 
gehängt habe und die zu schwach geleuchtet hat, habe ich das ganze mal 
umgedreht.
LED also mit Anode an VCC, Kathode an Ausgangspin. Wenn ich diesen Pin 
nun auf 0V setze, dann leuchtet die LED auch ordentlich hell, wie sie 
soll.

Aber ich bin jetzt verwirrt. Wie rum ist es richtig und warum ist das 
so?

Mit freundlichem Gruß
Jordan

Autor: space (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

bei Controllern wird ganz gern die Masse geschaltet, daher leuchtet die
LED heller, wenn sie mit der Anode an Vcc gelegt wird.. Ich hoffe, dass
Du noch einen Widerstand zur Strombegrenzung eingefügt hast...
Stefan

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglich sind zumindest bei LEDs und solchen Sachen beide Richtungen. Die 
kannst du sowohl gegen GND wie auch gegen VCC schalten. Warum die bei 
dir jetzt so dunkel ist, kann man so nicht direkt sagen. Normal sollte 
das gleich sein. Wahrscheinlich zieht aber die LED mehr Strom als der 
Controller liefern kann.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hilfe ist etwas leichter, wenn man den Typ des Microcontrollers kennt. 
Es gibt da mehrere.

Bei AVRs kann man diesen Effekt erleben, wenn man durch falsche 
Programmierung mit dem schwachen passiven Pullup an Stelle des starken 
aktiven Pullups arbeitet.

Bei 8051ern und Derivaten ist dieses Verhalten jedoch völlig normal. Die 
sind aus historischen Gründen so konstriert, dass ein Portpin nur sehr 
wenig Strom liefern kann. Strom aufnehmen hingegen kann er. Andere wie 
aktuelle PIC und AVR Typen hingegen sind symmetrisch.

Deshalb, und weil auch die vor langer Zeit übliche TTL Technik besser 
runter als rauf zieht, ist es nach wie vor sehr verbreitet, LEDs an Vcc 
zu hängen und gegen GND zu schalten.

Autor: keine Ahnung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und ich dachte immer das lag daran das dort Pullup Widerstände intern 
verbaut waren............ und somit der Ausgangsstrom begrenzt war.
Hatten die 8051er nicht alle high nach dem Reset?

wobei wer schließ Verbraucher direkt an die Portpins?

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wobei wer schließ Verbraucher direkt an die Portpins?

Fast jeder AVR-Benutzer. Es kommt allerdings auf den Verbraucher an.

...

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke schonmal für eure Antworten.
Bei den LEDs handelt es sich um die günstigen von Conrad, die laut 
Datenblatt 20mA ziehen.
Mikrocontroller ist ein ATtiny13, also ein AVR. Eigentlich sollte er das 
doch liefern können, oder nicht?

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die klassischen 8051er waren so konfiguriert:
- nach oben gehts per Pullup-Widerstand
- nach unten gehts per Transistor

Dadurch konnte war ein Port entweder Ausgang (aktiv runter) ODER Ausgang 
(passiv rauf) und Eingang mit Pullup gleichzeitig.
Teilweise wurde das 'aktiv runter' auch mit zwei Transistoren 
realisiert, einem dicken, der beim Umschalten kurz die Leitung umgeladen 
hat und einem kleinen Haltetransistor.

Die AVRs haben Totem-Pole-Ausgänge, die können sowohl ziehen als auch 
drücken, jeweils 20mA oder so.

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei den LEDs handelt es sich um die günstigen von Conrad, die laut
>Datenblatt 20mA ziehen.
Dir ist aber klar das die nur 20mA zieht wenn du das auch so beschaltet 
hast? Mehr Strom ist bei falschen Vorwiderstand auch möglich.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> LED also mit Anode an VCC, Kathode an Ausgangspin.
Hast du schon mal was von Vorwiderständen gehört?
Die sind dafür da, den Strom auf sinnvolle Werte zu begrenzen (das gilt 
sowohl für den uC-Pin wie auch für die LED).

Wenn dir die LED nicht hell genug ist, dann nimm eine Andere :-/

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ja, ich weiß, dass da die Vorwiederstände fehlen.
Ist aber eine meiner ersten Schaltungen und dementsprechend einfach 
aufgebaut.

Aber am fehlenden Vorwiederstand wird's ja wohl nicht liegen, dass die 
LED zu dunkel leuchtet (es sei denn, ich hab' da bei den Widerständen 
was grundlegendes falsch verstanden). Laut Datenblatt liefert der Tiny 
ja 20mA.

An der LED dürfte es ja wohl auch eher nicht liegen, denn wenn ich die 
andersrum (Anode an VCC, Kathode an Pin) schalte, leuchtet sie ja auch 
heller.

MfG

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Portpin des Tiny ist keine geregelte Stromquelle, der "liefert" 
keine 20mA. Und die LED wird ohne einen Vorwiderstand auch kein Problem 
damit haben, deutlich mehr als 20mA an Strom zu ziehen (zumindest 
solange bis irgendwas abraucht).

-> An Spannungsquellen sollten LEDs immer mit Vorwiderstand betrieben 
werden, auch wenn es nur eine einfache Schaltung zum probieren sein soll

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jordan wrote:
> Aber am fehlenden Vorwiederstand wird's ja wohl nicht liegen, dass die
> LED zu dunkel leuchtet (es sei denn, ich hab' da bei den Widerständen
> was grundlegendes falsch verstanden). Laut Datenblatt liefert der Tiny
> ja 20mA.
Ne, der liefert auch 10 Ampère. Nur bis 20mA ist das gesund für den, 
aber begrenzt wird da nichts.

> An der LED dürfte es ja wohl auch eher nicht liegen, denn wenn ich die
> andersrum (Anode an VCC, Kathode an Pin) schalte, leuchtet sie ja auch
> heller.
Mag ja sein. Die AVRs können jedenfalls garantiert 20mA sowohl ziehen 
als auch treiben. Alles darüber ist außerhalb der Spezifikationen und 
damit für dich unbestimmt.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Der Portpin ... der "liefert" keine 20mA.
... sondern er geht nicht kaputt solange der Strom kleiner oder gleich 
20mA ist.

Ich habe da so die Vermutung, dass deine LED einfach schon durchlegiert 
hat, weil sie mit zu hohem Strom betrieben wurde, und deshalb insgesamt 
die Leuchtkraft zu wünschen übrig lässt. An 5V mit einer roten LED (Vf = 
ca. 2V) brauchst du mit einem uC Ausgang (1V Spannungsabfall bei 20mA) 
und 20mA Strom etwa (5V-1V-2V)/20mA = 100 Ohm.
Aktuelle LEDs leuchten schon mit deutlich weniger als 20mA schön hell. 
Die 20mA sind noch aus Ururgroßvaters Zeiten. Ich betreibe meine LEDs 
mit 2mA, und das reicht. (Allerdings gehöre ich auch nicht zu den 
Bastlern, die ihre Hütte mit LEDs beleuchten wollen ;-)

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

Bewertung
0 lesenswert
nicht lesenswert
Aber warum werden dann zum Beispiel im Tutorial die LEDs auch andersrum 
angeschlossen?

Autor: Christoph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei AVRs kannst Du die LEDs auf beide Arten anschließen. Mit der 
Variante aus dem Tutorial leuchtet die LED wenn der Pin auf logisch "0" 
(= Gnd) geschaltet wird, vertauscht man die Anschlüsse der LED leuchtets 
bei logisch "1" (=Vcc).

Wie schon gesagt, drauf achten das die internen Pull-Ups nicht aktiv 
sind.

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die internen Pullups sind doch nur aktiv, wenn der Pin als Eingang 
gesetzt wird, oder nicht?

O-----|   R   |---- |< ------- VCC
       
O-----|   R   |---- >| ------- GND 

Also ist es wirklich reine Geschmackssache, welche der beiden Varianten 
nehme?
Wie sieht das bei anderen Verbrauchern als LEDs, zum Beispiel Motoren, 
aus?

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also ist es wirklich reine Geschmackssache, welche der beiden Varianten
nehme?

elektrisch bei den AVRs: ja.
Mach es aber wie überall üblich: "active low":
d.h. hänge Deine Verbraucher an Vcc und schalte mit GND ein.

Jan

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann danke ich mal allen, die hier ihre Zeit für mich geopfert haben :)

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die internen Pullups sind doch nur aktiv, wenn der Pin als Eingang
>gesetzt wird, oder nicht?

Ja. Als Ausgang geschaltet ist es eine Push-Pull-Endstufe mit 
symmetischem Stromverlauf.

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Frage noch:

Wenn ich nun einen Motor an zwei Ausgänge anschließe und den einen auf 
low und den anderen auf high setze, sollte das ja eigentlich 
funktionieren und der Motor sich drehen.
Wird er das tun?
Oder brauch ich da noch irgendwie Transistoren oder so?

MfG

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wird er das tun?

Wenn Dein Motor weniger als 20mA Strom zieht, dann wird er das tun. 
Ansonsten wird vermutlich Dein AVR sterben.

> Oder brauch ich da noch irgendwie Transistoren oder so?

Suche mal nach "H-Brücke"...

...

Autor: Andreas K. (derandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Würde mich wundern wenn der Motor mit so wenig Strom auskommt, also 
werden noch ein paar Transistoren fällig.
Ahja, meines Ungeschicks wegen hab ich schon öfters Ausgänge eines AVR`s 
kurzgeschlossen, die vertragen das, zumindest kurzzeitig, eigentlich 
recht klaglos, scheinen also Strombegrenzt zu sein.
Dauerhaft Kurzschlussfest werden sie aber wohl nicht sein...

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist aber eine meiner ersten Schaltungen und dementsprechend einfach
> aufgebaut.

Das tut nichts zur Sache: Die Vorwiderstände gehören zur LED wie die 
Räder zum Auto. Ohne wird es kaum funktionieren und ziemlich sicher 
kaputt gehen.

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, ok. Also in Zukunft mit Vorwiderstand. Bei 2.2V, die die LED braucht 
und einer Spannung am Mikrocontroller von 5V und 20mA Strom, den die LED 
zieht, brauche ich einen Widerstand mit 150 Ohm, richtig?


Wenn ich das nicht aber mit 'nem Motor mache, den ich an zwei Ausgänge 
anschließe, um ihn in der Drehrichtung beeinflussen zu können, wie würde 
das aussehen? Hat jemand mal 'ne Beispielschlatung oder so?
Mit Transistor, das ist mir klar. Aber wie muss ich den schalten, damit 
in beide Richtungen Strom fließen kann?

Mit freundlichem Gruß

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Suche mal nach "H-Brücke"...

...

Autor: Jordan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, sieht kompliziert aus. Mal gucken, ob ich das verstehe ...

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.