Hallo, dummer Weise haben wir bei unsere Schlatung vergessen die Vorwiderstände für die LED einzubauen. Deshalb dachte ich ich könnte den internen Pullup des Atmel aktivieren. Nur fiel mir dann auf, dass sich die Pullups nur für Eingänge einschalten lassen und nicht für Ausgänge, gibt es da eine Möglichkeit das Problem zu lösen ohne nochmal an die Lötstation zu müssen? Gruß m0nKeY
Die eingebauten Pull-Ups liegen bei ca. 20 kOhm, damit scheiden die für LEDs schon mal generell aus.
Du könntest eine PWM aktivieren, aber das ist Softwaremäßig absoluter Overkill und eventuell wegen der restlichen Software doch nicht möglich. Da du es dreckig haben willst: Vielleicht reicht auch ein SMD-Widerstand, den kriegste überall noch so zwischengedrückt.
Aber um die Frage zu beantworten: Ohne die Lötstation nochmal anzuwerfen hast Du quasi keine Chance...
Mein Projectpartner korrigiert mich gerade, es sind garnich die LEDs die ohne Widerstand beschaltet sind, sondern die Transistoren, die davor sitzen. Also die Basis des Transistors hat keinen Vorwiderstand. Wir haben uns nun dazu entschieden, einfach die Transistoren auszulöten und zu überbrücken, denn für 5V sind die LEDs eh beschaltet und die leut Dateblat liefert der ATMega16 40mA und die LEDs brauchen nur 20mA. Oder machen wir da einen Denkfehler? Gruß m0nKeY
Sebastian Baier wrote: > Dateblat liefert der ATMega16 40mA und die LEDs brauchen nur 20mA. Oder > machen wir da einen Denkfehler? Die 40 mA sind der Grenzwert, also das, was ein einzelner Portpin maximal kann, ohne Schaden zu nehmen (zumindest kurzzeitig). Von diesem Grenzwert sollte man für den Dauerbetrieb einen respektvollen Abstand wahren. Wenn die LEDs Vorwiderstände haben, die dafür sorgen, dass der Strom bei 5 V 20 mA nicht überschreitet, dann ist das für ein paar LEDs in Ordnung. Es gibt aber auch Grenzwerte für die Ports an sich sowie für die GND- bzw. VCC-Pins. Und da der Strom einer LED, die direkt am Portpin hängt, nunmal entweder über GND oder VCC fließen muss (hängt davon ab, wie die LED angeschlossen ist), summiert sich das auch schnell auf. Die Grenzwerte für VCC und GND stehen im Datenblatt in derselben Tabelle wie die für die Portpins (I/Os), die für die Ports stehen in einer Fußnote, die beim Überfliegen schnell mal übersehen wird...
Wenn ihr NPN Tranistoren einsetz könnt ihr das mit dem Pullups schon machen. Einfach DDRx auf Eingang lassen und mit dem PORTx den Pullup an und ausschalten.
Ja aber wenn der auf Eingang geschaltet ist, dann kann ich ja vom Programm kein Hig-Pegel anlegen, damit die LED angeht. Kann mir jemand einen digitalen Transistor, von dem gesprochen wurde, nennen der für so eine Schaltung geeignet ist? Wir nutzen im moment einen normalen NPN Transistor. Gruß Sebastian
Sebastian Baier wrote: > ... liefert der ATMega16 40mA und die LEDs brauchen nur 20mA. Oder > machen wir da einen Denkfehler? 40mA/Pin, 100mA/Port, 200mA/µC (jeweils max. Werte) Soll heißen, wenn Ihr 6 Leds an einem Port betreibt seid Ihr drüber.
Sebastian Baier wrote: > Ja aber wenn der auf Eingang geschaltet ist, dann kann ich ja vom > Programm kein Hig-Pegel anlegen, damit die LED angeht. Doch kannst du. Genau das macht ja der interne Pull-Up. Du hast dann am Ausgang nen High-Pegel, wenn auch sehr schwach. Aber zum Durchschalten von Transistoren reichts. Hab mir so mal ne H-Brücke gegrillt; schon blöd, wenn man PORT und DDR vertauscht und statt DDR=1, PORT=0 auf DDR=0, PORT=1 schaltet. Der 2-stellige Amperebereich der Stromversorgung hat aus den Transen Konfetti gemacht.
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.