Forum: Mikrocontroller und Digitale Elektronik ULN 2803 Was mach ich falsch


von Florian (Gast)


Lesenswert?

Hi.

Ich möchte über einen ULN 2803 mehrere Leds ansteuern. Mein Problem
ist, daß wenn die Led aus sein sollte, sie noch ganz leicht leuchtet.

Ich fahre vom PortB direkt zum ULN 2803 (bei 1 rein und bei 18 wieder
rausfür die erste Led), dann zu meinen 470 Ohm Widerstand und dann zur
Katode der Led. Habe rote, grüne und blaue Probiert, sie leuchten alle
ein bisschen. Ach ja, die Anode der Led hängt an 12V.

8 hängt an minus und mit 9 hab ich auch schon probiert, +12V
dranzuschließen. Aber es war kein Unterschied zu sehen.

Kann mir da jemand helfen?

Gruß Florian

von Lötnix (Gast)


Lesenswert?

Hallo,

was kommt am PortB Pin raus? Wenn kein Programm läuft ist der
hochohmig.  Das kann reichen, dass der ULN etwas durchschaltet.

Leg mal 1K Ohm vom Eingangspin auf Masse, wenn das hilft, fehlt der Low
Pegel.

Ciao

von Simon K. (simon) Benutzerseite


Lesenswert?

nene, wenn das so wär, dann würd ich eher den Pin auf ausgang stellen.
Du hast ihn sicher als eingang und schaltest im PORTB register immer 1
(pullups an ~ 50kiloohm) und mit 0 die pullups aus. daher bekommen sie
vielleicht den strom.

von Florian (Gast)


Lesenswert?

Hi. Bei Port B Kommt ein PWM Signal raus. Es läuft ein Programm, wo eine
Led immer ein und ausgedimmt wird. Das mit dem Pulldown Widerstand
funktioniert. Komisch, dann muß es ein Programmfehler sein.

Danke Florian

von Simon K. (simon) Benutzerseite


Lesenswert?

Wie gesagt, ist der Port als Ausgang geschaltet ? (DDRx Register bei AVR
RISC)

von Florian (Gast)


Lesenswert?

Ja, ist er...

ser temp
out ddrb,temp

Gruß Florian

von Elektrikser (Gast)


Lesenswert?

Nochmal zum Anschluß:

Du hast wie folgt angeschlossen?

Pin 1 - Eingang (direkt an Port vom AVR)
Pin 18 -> Ausgang -> 470 Ohm -> LED -|<|-  -> +12V
Pin 9 - Masse

Das funktioniert, habe ich auch schon gemacht.

Gruß Elektrikser

von Lötnix (Gast)


Lesenswert?

@Florian,

da der Pulldown funktioniert, prüfe mal ob Du irgendwo im Programm den
Port auf Eingang schaltest.

Wenn ein PWM Signal kommt, kann es aber auch sein, dass bei "aus"
kein low am Pin anliegt.

Ciao,
Lötnix

von Florian (Gast)


Lesenswert?

Hi, den Port Schalte ich nirgens auf Eingang. Ich komm einfach nicht
drauf...

Wäre es ein Problem, wenn ich alle Eingänge des ULN 2803 mit 1 KOhm
Pulldown Widerstände bestücke?

Oder kann da nix passieren?

Gruß Florian

von Simon K. (simon) Benutzerseite


Lesenswert?

ach das ist doch blöd.. schonmal versucht den uln zu wechseln? Kann ja
nicht sein, habe ich doch selbst so schon ausprobiert. Vielleicht mal
Testweise einen anderen Port probieren?

von Florian (Gast)


Lesenswert?

Also was ich nicht dazugefügt hatte, ist das ich noch einen 4094
dazwischen habe, da ich dachte, das es uninteressant wäre. Also ich
gebe mit SPI an mehrere Leds eine PWM aus.

@Simon

Ein "ja" oder ein "nein" hätte mir gereicht

Gruß Florian

von Simon K. (simon) Benutzerseite


Lesenswert?

kannst du gerne machen, ich würd allerdings eher nach der ursache
suchen, statt das problem zu unterdrücken..

http://klinkerstein.m-faq.de/index.php?dir=/ANA

Hier habe ich ULN2803 an 4094 gehangen. Allerdings ohne PWM.
Funktioniert ohne Probleme.

Ich fürchte du kriegst kein Low auf die Leitungen am 4094. Irgndwo ein
Programmierfehler.. Oder du befeuerst das 4094 zu stark (CD4094 kann
nicht mehr als 3Mhz etwa)

von Rahul D. (rahul)


Lesenswert?

wenn da ein CMOS-Baustein dazwischen ist, solltest du einen der anderen
ULNs nehmen (Siehe Datenblatt). Dafür gibt es einen speziell mit
CMOS-kompatiblen Eingängen.
Sonst HCT4094 nehmen.
Die Pulldowns stören nicht weiter, sind aber unschön...

von Dirk (Gast)


Lesenswert?

Hallo,

Lötnix:
>Wenn ein PWM Signal kommt, kann es aber auch sein, dass bei "aus"
>kein low am Pin anliegt.

Denke mal der Lötnix hat recht invertier mal dein PWM.

Gruß,
Dirk

von Lötnix (Gast)


Lesenswert?

@Florian,
>Also was ich nicht dazugefügt hatte, ist das ich noch einen 4094
>dazwischen habe, da ich dachte, das es uninteressant wäre. Also ich
>gebe mit SPI an mehrere Leds eine PWM aus.

Argh... Dann hat das mit dem PortB auf Eingang natürlich nichts zu tun.


Ohne Oszi ist ein ev. noch vorhandener Puls schwer zu erkennen,
allerdings schiebst Du ja die PWM für alle Kanäle durch das
Schieberegister. Ich hab mir das 4094 nicht genau angeschaut, aber es
sind ja vermutlich immer alle Ausgänge aktiv (kein Latch).

Wenn Du also das PWM Signal für Kanal 8 "durchschiebst" werden die
Kanäle 1-7 ganz kurz "high". Das könnte das leuchten sein.
Es müsste sich ändern, wenn mehrere Kanäle "ein" sind.

Besser ist es ein 74HC595 zu nehmen, und das Latch zu beschalten, Du
brauchst dann aber einen Steuerport mehr.

HTH,
Lötnix

von Lötnix (Gast)


Lesenswert?

Hi,
hab mir gerade mal die Seite von Simon angesehen, Strobe ist ja beim
4094 vorhanden und audf seiner Seite auch gut beschrieben.

Also, wenn es kein "Taktfehler" beim Strobe ist, wirds ohne Oszi
schwer.

Viel Erfolg,
Lötnix

von Peter D. (peda)


Lesenswert?

Ich schließ mich da an, der Fehler ist in der Software zu suchen.

Entweder es wird falsch gelatcht oder die PWM liefert keine Null.

Falls es noch niemanden aufgefallen ist, eine PWM, die 256 Takte lang
ist, hat 257 verschiedene Zustände.

Oftmals wird daher als höchster Wert 255/256 genommen, damit man ne
echte Null (0/256) hat.


Peter

von Florian (Gast)


Lesenswert?

Ja, es ist so.

Ich mache die Spi per Software.

Ich errechne die einzelnen Werte für die Leds und und schicke sie dann
per clk 48 mal raus. (16 RGB Leds) Die Daten werden im Hintergrund
hineingetaktet, und werden noch nicht ausgegeben.

Wenn das dann fertig ist, dann setze ich den /LE (Strobe) auf high, 3
Takte Nop und dann wieder auf low. Somit werden die Daten an die Leds
ausgegeben.

Die Portänderungen mache ich nur im Timer.

Also das ich zeitlich zu knapp drann bin, glaub ich nicht.


Gruß Florian

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.