Blinkender LED Himmel mit PWM Ansteuerung

hi,

ich hab vor über mein Bett einen LED Himmel zu bauen,

Die LED´s sollen mit verschiedenen Frequenzen blinken, aufblitzen, langsam (oder schnell) an und aus gehen.
So wie man das von den Lichterschläuchen und Sternen kennt.

Ich hab vor ca. 16 Kanäle zur Ansteuerung zu nehmen, die dann über Treiber mehrere LED´s ansteuern.

Die Ansteuerung der LED´s sollte durch eine PWM erfolgen, da die LED´s von 0% bis 100% geregelt werden sollen.

jetzt meine eigentliche Frage:

mit was realisier ich die Ansteuerung?

hab in meiner Ausbildung zum Elektroniker leider nichts über Controller gelernt!
Für den Anfang wäre es gut, wenn ich die Programmierung über den PC vornehmen könnte, ohne immer das IC auszubauen.

mir ist auch klar, das dieses Projekt nicht billig (allein 100 bis 200 helle LED´s) und sehr zeitaufwendig sein wird!

Moin

Für den Anfang wäre es gut, wenn ich die Programmierung über
den PC vornehmen könnte, ohne immer das IC auszubauen.

Du könntest eine C-Control-Unit von Conrad nehmen. Das ist relativ einfach zu programmieren (nicht die plus oder „2“ version, sondern die erste Version), wird per seriellem Kabel an den PC angeschlossen. Hat aber nur 2 PWM und 16 digitale Ein/Ausgänge (+6 analoge Eingänge). Je nachdem wie und ob du die PWM-Steuerung machts (PWM-ICs mit I2C angesteuert ?) oder nicht könnte das reichen. PWM über eine digitalen Ausgang zu „simulieren“ kann man allerdings vergessen, das schaft der Chip maximal bei 1-2 Ausgängen. Schneller ist er nicht.

mir ist auch klar, das dieses Projekt nicht billig (allein 100
bis 200 helle LED´s) und sehr zeitaufwendig sein wird!

Micro-Unit kostet 25,95, der passende Adapter (wenn man mit Lötkolben umgehen kann und die Arbeit nicht scheut braucht man den nicht) kostet 14,95. Dann gibts noch die normale C-Control-Unit (die im Moment nicht im online-shop zu finden ist ?) für um 40 Euro.

cu

Servus,

Du könntest eine C-Control-Unit von Conrad nehmen.

Hab ich auch schon gesehen

Hat aber nur 2 PWM und 16 digitale Ein/Ausgänge

bräuchte entweder 16 PWM Ausgänge (oder 2 mit je 8) oder 24 digitale Ausgänge und dann ne externe Umwandlung in PWM.

PWM-ICs mit I2C angesteuert ?

Von dem Bus hab ich schon gehört, soll recht einfach sein, kennst Du so ein PWM-IC?
Hab bis jetzt nur welche für 30€/Stück gesehen (nicht für i2c!) und das wird dann doch zu teuer!

PWM über eine digitalen Ausgang zu"simulieren" kann man allerdings vergessen, das schaft der Chip maximal bei 1-2 Ausgängen. Schneller ist er nicht.

Hatte eigentlich an einen >5Mhz Controller gedacht, der müsste das auch bei 16 schaffen.

Also mit dem Lötkolben kann ich umgehen, deshalb war meine Überlegung eigentlich die Platine(n) selber zu erstellen.

Es gibt doch auch programmierbare IC´s, die man in der Schaltung neu beschreiben kann(z.B. Firmwareupdate)

Moin

bräuchte entweder 16 PWM Ausgänge (oder 2 mit je 8) oder 24
digitale Ausgänge und dann ne externe Umwandlung in PWM.

24 Digitale I/Os… wenn’s dir nix ausmacht auf I2C rumzuhacken, nimm ein paar von denen (8 digitale I/O ansteuerbar per I2C): http://www.semiconductors.philips.com/pip/PCF8574P.html

Wird jedenfalls billiger als ein 2. Controller + Bus dazwischen.

16x PWM auf einem mc kenn ich nicht.

Von dem Bus hab ich schon gehört, soll recht einfach sein,
kennst Du so ein PWM-IC?

Sowas :
http://focus.ti.com/docs/prod/folders/print/dac7573…

(4 analoge Ausgänge, I2C, maximal 16 Stück an einem I2C-Bus, 6.15$US/1KU. Ist allerdings TSSOP 16-lead…)

Hab bis jetzt nur welche für 30€/Stück gesehen (nicht für
i2c!) und das wird dann doch zu teuer!

Welche aus dem hifi-audio-bereich erwischt ?

Hatte eigentlich an einen >5Mhz Controller gedacht, der
müsste das auch bei 16 schaffen.

Der C-Controll ist so lahm weil er nicht direkt mit machienenbefehlen gefüttert wird. Das Programm liegt als „tokens“ auf einem 8K I2C-EEPROM.

Also eher ein MC 68HC11-XYZ oder PIC 16-XYZ.

Die Teile sind aber wesentlich komplexer zu programmieren und die Dev-tools sind nicht (alle) gratis. Ausserdem muss je nach Modell das Programm auf einem externen Speicher. Das sind dann schon locker 16 I/Os belegt bevor das Ding läuft. Dazu kommt das extern zu erzeugende Clock-signal (OK, das ist für dich jetzt nicht das Thema)

Es gibt doch auch programmierbare IC´s, die man in der
Schaltung neu beschreiben kann(z.B. Firmwareupdate)

Ja, gibt’s haufenweise.(GAL, FPGA,… ). Aber wie du mit denen analoge Signale erzeugen willst ist mir schleierhaft. Und woher nimmst du die Software um die Teile zu programmieren/entwickeln ?

cu

Servus,

Danke erst mal für die schnellen Antworten!

Hab mich mal etwas umgehört, bei mir im Geschäft wird auf Atmel programmiert, hab mir für´s erste mal den atmega8515 (35 I/O Pins, 9,45€) rausgesucht. Die bieten auch gleich ein kostenloses Simulationsprogramm

Besteht die Chance die 16 Datenleitungen über die Software als PWM zu betreiben?
In Vbasic wäre das ganz einfach aber auf dem Controller?

Cu und Frohe Weihnachten

Hallo,

Du könntest eine C-Control-Unit von Conrad nehmen.

Hab ich auch schon gesehen

Hat aber nur 2 PWM und 16 digitale Ein/Ausgänge

bräuchte entweder 16 PWM Ausgänge (oder 2 mit je 8) oder 24
digitale Ausgänge und dann ne externe Umwandlung in PWM.

die PWM für ein paar LED sind IMHO nicht nötig.
Du kannst auch lansame DAC nehmen, und mit deren
variabler Ausgabe-Spannung 16 Stromquellen ansteuern.

Noch einfacher gehts mit analogen Holdschaltungen, die
den Ausgabewert von je einem Kanal in einem Kondesator
speichern (Zuschaltung . z.B. über Analogschalter).

Es gibt quasi 1000 Möglichkeiten, sowas zu machen.
Wenn Du nicht gut drauf bist, in Prozesorprogrammierung,
dann würde ich eine Hardwarelösung empfehlen und es eben
mit C-Control-Basic machen.

Hatte eigentlich an einen >5Mhz Controller gedacht, der
müsste das auch bei 16 schaffen.

ja, aber nur mit Assemblerprogrammierung, nicht in Basic.

Also mit dem Lötkolben kann ich umgehen, deshalb war meine
Überlegung eigentlich die Platine(n) selber zu erstellen.

Das sollte allemal gut möglich sein.
Gruß Uwi

Moin

Hab mich mal etwas umgehört, bei mir im Geschäft wird auf
Atmel programmiert, hab mir für´s erste mal den atmega8515 (35
I/O Pins, 9,45€) rausgesucht.

Der Chip ist mir neu. laut Google hat der maximal 16 MIPS und 544 byte RAM. Mehr weiss ich über den nicht. Meine Aussagen also mit Vorsicht geniessen.

Die bieten auch gleich ein
kostenloses Simulationsprogramm

Das mit dem Simulieren ist nicht das Problem, das Problem ist mehr das korrekt Compilieren des Codes und einprogrammieren in den Chip.

Aber ich nehm mal an die Software kannst du dir „ausleihen“ und du kennst auch jemanden der dir die ersten Schritte erklärt. (Anschluss des internen Flash an ein Programmiergerät, compilieren/laden des Code in den Chip)

Besteht die Chance die 16 Datenleitungen über die Software als
PWM zu betreiben?

Wenn nur LEDs dran hängen (es also nicht super genau sein muss): Ja, das geht. Pi-mal-Daumen braucht man auf normalen nicht-Basic-Chips 5 Zyklen pro Umschaltung. Der Controller macht maximal in der schnellsten Version 16 mio Zyklen pro Sekunde. Du kommst also locker über 1 kHz PWM-Grundfrequenz (darunter könnten Probleme kommen) auf allen 16 Pins. Das reicht dicke.

(Du weiss dass man leuchtstarke LED’s niemals direkt an einen Controller hängen kann ? C-Controll: maximal 5 mA/Pin, andere haben noch viel weniger. Das muss ein bisschen Transistor dazwischen sein und der muss das auch so „schnell“ können.)

In Vbasic wäre das ganz einfach aber auf dem Controller?

Kommt darauf an was der Chip kann, wie der Compiler/Simulator arbeitet und was er alles gleichzeitig machen soll. Wenn er z.B. einfach nur ein Muster machen soll ist das kein grosses Problem (ich geh von den normalen PIC-Chips und den normalen sorgloss-C-Compilern aus). Wenn er aber z.B. auf Kommando von einem Muster langsam in ein anderes übergehen soll wirds schon deutlich komplexer.

Für jemanden der noch nie ein Programm geschrieben hat ist das nicht ohne. Der wird daran Tage bis Wochen sitzen und den einen oder anderen Controller braten. Wer sich mit Programmieren im allgemeinen gut auskennt und den Simulator verstanden hat wird die einfache Variante in 1 maximal 2 Stunden hinbekommen.

Ich schlag vor du läst dir das Ding vorführen und machst 1-2 Gehversuche auf der Arbeit bevor du dir das Material kaufst. Oder kopier dir ein paar simple Programmteile mit einer Beschreibung was die tun sollen und kuckst ob du das alles nachvollziehen kannst.

Frohe Weihnachten

danke, gleichfalls.

cu

Hi,
danke für die ausführliche Antwort!
Der Chip ist des Nachfolgermodell von AT90S8515.
Hab direkt auf der Atmel Seite gesucht, da stehen dann auch die anderen Werte und das Datenblatt (ich les grad an den 255Seite!)

Das mit dem Simulieren ist nicht das Problem, das Problem ist
mehr das korrekt Compilieren des Codes und einprogrammieren in
den Chip.

Also in der Simulation wird schon in Assembler programmier, das Einprogrammieren kann ich für´s erste im Geschäft machen.

(Du weiss dass man leuchtstarke LED’s niemals direkt an einen
Controller hängen kann ?

Is mir klar, will ja nicht nur eine, sondern bis zu 10 an einen Kanal hängen, das wären dann ca. 300mA, werd einen uln2803 für die Ausgangsverstärkung nehmen, der macht 1Mhz und kann 500mA Dauerlast schalten. Und ist für TTL und C-Mos Ausgänge geeignet.

Kommt darauf an was der Chip kann, wie der Compiler/Simulator
arbeitet und was er alles gleichzeitig machen soll.

Also bis jetzt hab ich „nur“ 16 verschiedene Muster geplant (für jeden Kanal eins!)
Die sollen dann unterschiedliche Aus-, An, Anstiegs- und Abfallzeiten haben und verschiedene minimale und maximale Helligkeiten.

Für jemanden der noch nie ein Programm geschrieben hat ist das
nicht ohne.

Hab schon einige Programme in Vbasic geschrieben, Assembler hatte ich in meiner Ausbildung mal ne Woche (weis eigentlich nichts mehr drüber L ), aber ich hab kein Problem damit, wenn des ne Weile dauert!

Werd mich noch etwas umschauen nach einfachen Programmen, und wenn ich fertig bin, werd ich des mal unserem Programmiere im Geschäft vorlegen und schauen was er dazu sagt.

cu

Is mir klar, will ja nicht nur eine, sondern bis zu 10 an
einen Kanal hängen, das wären dann ca. 300mA, werd einen
uln2803 für die Ausgangsverstärkung nehmen, der macht 1Mhz und
kann 500mA Dauerlast schalten. Und ist für TTL und C-Mos
Ausgänge geeignet.

Kleiner Einwurf: das ist schon richtig, aber dass der Baustein bei 8 Ausgängen dann 4A verträgt, ist ein Gerücht. Total Power Dissipation ist 1.8W, 300mA * 2V (Darlington) sind 0.6W, m.a.W. es können nur 3 von 8 Ausgängen voll belastet werden.

Ausserdem sollte ein Treiber nach heutiger Technik thermisch und gegen Überstrom gesichert sein, möglichst auch gegen Überspannungen. Ist mir schon klar, dass das teurer wird, aber dauernd verkohlte Treiber auswechseln macht auch keinen Sinn. Und nach über 30 Jahren Elektronik-Entwicklungen: der Betrieb von Bauteilen an der Grenze ihrer Belastbarkeit führt immer zu Lösungen von relativ geringer Lebensdauer.

Reinhard

Hi,

Kleiner Einwurf: das ist schon richtig, aber dass der Baustein
bei 8 Ausgängen dann 4A verträgt, ist ein Gerücht. Total Power
Dissipation ist 1.8W, 300mA * 2V (Darlington) sind 0.6W,
m.a.W. es können nur 3 von 8 Ausgängen voll belastet werden.

ups an Ptot hatte ich noch gar nicht gedacht!

Ausserdem sollte ein Treiber nach heutiger Technik thermisch
und gegen Überstrom gesichert sein, möglichst auch gegen
Überspannungen.

Überstrom: des bekomm ich noch hin!
Überspannung: der hält 50V aus, und ich will ihn mit max. 12V betreiben da mach ich mir mal keine Gedanken. Will ja auch ein altes PC Schaltnetzteil benützen das sollte schon recht stabil sein.

Thermisch: die Schaltung sollte eigentlich so einfach wie möglich werden! Noch Sensoren einbauen und auswerten, wird da etwas viel, muss halt dafür sorgen, das der Strom nicht zu hoch wird!

Überstrom: des bekomm ich noch hin!
Überspannung: der hält 50V aus, und ich will ihn mit max. 12V
betreiben da mach ich mir mal keine Gedanken. Will ja auch ein
altes PC Schaltnetzteil benützen das sollte schon recht stabil
sein.

Thermisch: die Schaltung sollte eigentlich so einfach wie
möglich werden! Noch Sensoren einbauen und auswerten, wird da
etwas viel, muss halt dafür sorgen, das der Strom nicht zu
hoch wird!

Komplexität ist nicht das Problem, sondern nur die Kosten - es gibt heute jede Menge „Smart Power“ Bauteile, die sich gegen alles mögliche selbst schützen, meistens sind sie einfacher einzusetzen als ein einzelner Transistor, aber eben teurer; dafür sind sie fast unzerstörbar.

Ein Beispiel unter vielen:

http://www.infineon.com/cmc_upload/migrated_files/do…

Reinhard

Hallo,

Is mir klar, will ja nicht nur eine, sondern bis zu 10 an
einen Kanal hängen, das wären dann ca. 300mA, werd einen

wenn Du z.B. 12V als Spannungsversorgung nehmen willst,
dann kannst Du auch allemal 3…4 LED in Reihe schalten.
Dann brauchst Du auch entsprechend weniger Strom.

Beachte aber trotzdem die Belastbarkeit des Treibers.

Bei einem ULN200x wäre auch der Eingangsstrom nicht
vernachlässigber, wenn der Ausgangsstrom recht hoch wird.
Gruß Uwi