www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED mit ULN2003 und PWM


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,
ich möchte mehrere LED's über ULN2003 schalten und über den CD-Anschluss 
die LED's über eine PWM (MOSFET Low-Side) dimmen. Funktioniert das?

SP siehe Anhang

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theoretisch ja. Aber wenn der MOS durchschaltet, sind alle LED an, egal 
was an den einzelnen Eingängen anliegt. Du hast also eine 
ODER-Verknüpfung. Ist wohl nicht, was Du willst. Du bräuchtest eine 
UND-Verknüpfung von Eingang und PWM-Signal.

Lass den MOS weg und mach eine Software-PWM mit dem µC an den Eingängen. 
Code gibts von Peter Danegger hier im Forum.

Den 100R-Widerstand an den Eingängen (nicht den an den LED) kannst Du 
weglassen, der 2003 hat intern 2k7. Aber nicht den 2001 verwenden, der 
hat keinen internen Vorwiderstand.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis. Das mit der ODER-Verknüpfung ist nicht von mir 
gewollt.
Wollte eine Zentrale Dimmung mit "nur einer" PWM Ansteuerung, da es 
insgesamt ca. 30 LED's werden sollen. Könnte höchstens einen High-Side 
MOSFET in die PLUS-Versorgung der LED's packen. Dann wäre es ja eine 
UND-Verknüpfung - oder?

Autor: mx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das jetzt richtig versteh sollen die LEDs unabhängig 
ansteuerbar sein.
Eine ganz andere Variante wäre dies mit SPI und schieberegistern zu 
realisieren.

Also keine PWM sondern ein getaktetes ansteuern der LEDs
D.h. über einen Interrupt oder auch einfach nur das hauptprogramm, die 
jeweiligen LEDs ein und ausschalten.

Wenn du noch nicht allzu sehr auf die PWM versteift bist, kann ich dir 
diese Idee etwas genauer erklären...

Gruß
mx

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau. Die LED's sollen unabhängig voneinander angesteuert werden 
können. Die LED's sollen aber alle gleich dimmbar sein. Dachte mir, das 
einfachste wäre ein gemeinsamer Bezug (entweder PLUS od. MINUS), welcher 
über eine PWM angesteuert wird. Der MINUS ist halt immer angenehmer ;-)
Kann aber auch über einen High-Side MOSFET geschehen.

Die andere Variante von Dir mittels SPI schließt sich leider aus, da ich 
diese SS nicht zur Verfügung habe.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst alle externe Hardware zum Dimmen weglassen. Die LEDs können 
alle in Software gedimmt werden. Da es dann Software ist, können sie 
sowohl einzeln gesteuert, einzeln gedimmt oder allesamt gedimmt werden. 
Was Du brauchst, ist eine Timer-ISR, die einen Zähler hochzählt, der 
sich mit den Werten in 7 Registern vergleicht und in Abhängigkeit davon 
den betreffenden LED-Pin setzt oder löscht. Durch das Einschreiben von 
beliebigen Werten in diese Register kannst Du jede LED in ihrer 
Helligkeit beeinflussen. Der Rest der Software bestimmt über die Werte, 
die zu gegebener Zeit eingetragen werden.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens (Gast)

>Dateianhang: ULN2003.JPG (51 KB, 38 Downloads)

Bildformate

>ich möchte mehrere LED's über ULN2003 schalten und über den CD-Anschluss
>die LED's über eine PWM (MOSFET Low-Side) dimmen. Funktioniert das?

Nöö. Schau mal ins Datenblatt, dort ist die Innenbeschaltung drin. Du 
musst den Masseanschluss vom ULN2003 über den MOSFET leiten, dann gehts.

MFG
Falk

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
okay danke. Denke aber darüber nach, die LED's per CPLD ein/aus zu 
schalten (aufgrund der Anzahl). Dann würde die SW Variante nicht 
funktionieren, bzw. nur bedingt.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jens (Gast)

>okay danke. Denke aber darüber nach, die LED's per CPLD ein/aus zu
>schalten (aufgrund der Anzahl). Dann würde die SW Variante nicht
>funktionieren, bzw. nur bedingt.

30 LEDs kann man auch mit Soft-PWM ansteuern. Und mit etwas Knoff 
Hoff belastet das den Controller auch nicht übermässig. Been there, done 
that.

MFg
Falk

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow - per CPLD?! Wieviele LEDs wolltest Du doch gleich noch schalten?

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Moment sind es ca. 30 LED, könnten aber noch ein paar hinzukommen. 
Aber ich höre aus deiner Antwort, dass du diese Lösung ziemlich dämlich 
findest...ich selber nicht, da ich für jede LED auch einen eigenen 
Eingang habe und diesen ebenfalls auf das CPLD lege.

Autor: mx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für meine Variante braut man übrigens nicht zwingend ne SPI,
geht auch ohne, nur die schieberegister wären notwendig, bei der Anzahl 
von LEDs.

Da bräuchtest du übrigens nur 5 pins
Master, SPI oder eben SPI ersatz, und eben die Schiebe-Enable
Je nach Anzahl der Schieberegister.

Die ansteuerung ist dann auch Softwaresache,...

Gruß

Autor: mx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Master ist schwachsinn, ich meinte die EN- Leitung

Autor: Oliver P. (atmega32user)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

habe das gerade gelesen.

Andere Idee - µC z.B ATmega8 steuert MAX7219/21 über spi an.
max 64 LED´s ohne ULN2003.

Den LED Strom kann man über spi im MAX einstellen!

Grüße OLLI

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: mx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau soetwas (wie Falk Brunners Beitrag) meinte ich,...
übrigens die Data- Leitung würde mit dem SPI verbunden werden,
ist wie schon gesagt aber nicht zwingend notwendig,...

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank derweil. Werde es so mal probieren

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.