www.mikrocontroller.net

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


Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lötnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

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

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ist er...

ser temp
out ddrb,temp

Gruß Florian

Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lötnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lötnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lötnix (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.