25 Rgb Leds per PWM regeln?

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 28 3 2024  10:49:12      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( 1 | 2 Nächste Seite )      


Autor
25 Rgb Leds per PWM regeln?
Suche nach: pwm (3609)

    







BID = 620051

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen
 

  


Hallo,

wie kann man am einfachsten ca 25 RGB LEDs per PWM regeln? Mit einem Prozessor a la ATmega128 wird das wohl eher nicht klappen oder?


Es werden ja 75 PWM Sigale benötigt?! Multiplexen würde zwar gehen, allerding kann ich die LEDs dann nicht mehr 100% leuchten lassen, da durch ein Multiplexen ja ein zweiter "PWM Effekt" entstehen würde.

Wie kann man das Problem am besten lösen? Ich möchte nicht wirklich ne Hand voll AVRs einbauen müssen?!

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

BID = 620052

Kleinspannung

Urgestein



Beiträge: 13324
Wohnort: Tal der Ahnungslosen

 

  

Willst du die 75 alle getrennt regeln können?
Oder nur von allen rgb getrennt?

_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)

BID = 620060

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen

ursprünglich wollte ich jede RGB LED einzeln ansteuern können. Gibt also im schlimmsten Fall 75 Unterschiedliche PWM Verhältnisse.

Wenn das aber garnicht möglich ist hab ich mir überlegt könnte ich auch 30 nehmen und 3er Stränge machen. also 3 RGBs in Reihe. so bräuchte ich nur noch 30 PWM (10*3 Farben).

Dennoch erscheint mir auch die 30 recht hoch.

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

BID = 620062

Kleinspannung

Urgestein



Beiträge: 13324
Wohnort: Tal der Ahnungslosen

Mach dich mal über DMX schlau...

_________________
Manche Männer bemühen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitätstheorie.
(Albert Einstein)

BID = 620064

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen

hm das beschreibt doch nur das Protokoll zwischen mehreren Controllern oder?
Ich möchte aber Möglichst viel in einem Controller unterbringen, womit wenn möglich DMX erstmal wegfällt?!

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

BID = 620077

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Das ist für einen AVR in der Tat etwas viel.

Mit Multiplexing ginge es aber auch, man muss dann halt einen höheren Strom nehmen. Aber Vorsicht! Im DB nachschauen!

Und auch die Erzeugung der PWM dürfte interessant seien - ich würde sie per Software generieren (mit 20MHz Systemfrequenz) und ihn als Slave von einem anderen AVR ansteuern. Müsste man mal durchrechnen.

Achja, programmierbare Logik wäre für sowas auch garnicht mal verkehrt. (CPLD / FPGA) (Edit: für größere Matrizen sowieso!).

DMX hat damit nichts zu tun, verstehe auch den Hinweis nicht.

_________________


[ Diese Nachricht wurde geändert von: DonComi am 10 Jul 2009 23:34 ]

BID = 620182

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen

hallo,


es soll zwar keine Matrix werden sondern eine Deckenbeleuchtung, macht aber von der Ansteuerung keinen Unterschied da man ja in dem Sinne eine Matrix ansteuert (x-y LEDs + z Farben)

Hm 20 MHz für einen AVR? Hab ja nur nen ATmega128 da sind nur 16MHz drinne (Es gibt auch 20 MHz Typen aber dazu habe ich ja kein Board)


Ja sicher würden sich CPLC und FPGAs besser eignen. Aber da müsste man sich ja wieder groß einarbeiten, drum meine Frage, ob man das nicht mit einem AVR noch hinbekommen könnte.

Gibts es ev. PWM ICs die man seriell oder ähnlich anspricht? Die dann zb. 4 PWM Kanäle haben? Oder eine andere Zahl?


Könnte man das Ganze durch den Einsatz von den speziellen Lightning AVRs vereinfachen?

http://www.atmel.com/dyn/products/p.....#1606

Diese verfügen über wesentlich mehr PWM Kanäle.

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

[ Diese Nachricht wurde geändert von: bastelheini am 11 Jul 2009 14:54 ]

BID = 620184

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Klar gibt es die.

Rechne doch mal aus, ob man es realistisch mit einem AVR hinbekommt. Alleine mit dessen Hardware-PWM-Generatoren jedenfalls nicht, da muss man schon eine eigene Software schreiben (in Assembler!).

Deine PWM muss ja nicht sehr hochauflösend sein.
So ließen sich schon viele PWM-Kanäle mit einem AVR mit vielen IO-Ports realisieren. Das Ganze dann als Slave ansteuern und gut ist.

Es als Matrix anzusteuern ergibt aber mehr Sinn. Bei ein paar LEDn mag das noch mit einzelner Ansteuerung klappen, bei großer Anzahl läuft es eigentlich immer auf eine Matrix hinaus.

Angenommen, du hast z.B. 10 Zeilen, die der Reihe nach durchgetastet werden. Eine LED hätte dann maximal einen Dutycycle von 10%. Wenn du diese LED aber nur 50% dieser Zeit einschaltest, und den Rest abschaltest, bekommst du einen noch niedrigeren Dutycycle, hier 5%. Und diese Abläufe lassen sich mit einem 'AVR noch hinbekommen, ist allerdings natürlich auch abhängig von der Zeilenfrequenz und der Auflösung der einzelnen AN-Zeiten. Ich bin z.B. grade dabei, mir einen eigenen Wecker zu bauen, weil ich mit den Standarddingern nicht klarkomme. Dort habe ich auch ein LED-Display, welches mit 1/6 Dutycycle maximal läuft und jede Segment-AN-Zeit nochmals in 32 Schritte (-> 5 Bit) zerlegt ist. Die Signalverläufe generiere ich mit Software, nebenbei kann man da noch genügend andere Dinge erledigen, obwohl es eine Software-PWM mit 6 Kanälen ist. Frequenz ist annähernd 9,6kHz.

_________________

BID = 620188

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Angenommen, du hast z.B. 10 Zeilen, die der Reihe nach durchgetastet werden. Eine LED hätte dann maximal einen Dutycycle von 10%.
Das vertragen die modernen LEDs aber nicht mehr bei voller Leistung. Die zulässigen Impulsströme liegen nur noch um ein geringes Vielfaches über dem Dauerstrom.

Ansonsten: 75x200Hz --> 15kHz. Das sollte ein einigermassen geübter Assemblerprogrammierer noch gut hinbekommen.

BID = 620193

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Hallo,

Sicher, man sollte vorher im Datenblatt nachschlagen, was man den LED maximal zumuten kann, ohne sie auf Dauer zu zerstören.

Achja, mein AVR dekodiert nebenbei noch DCF77, digitalisiert einen Fotowiderstandswert (als Referenz für das Tastverhältnis, linearisiert) und lässt sich per IR-FB oder Tasten stellen.

Ich asse es, tagsüber auf LED-Anzeigen kaum etwas lesen zu können, während man Nachts deswegen kaum einschlafen kann .

Systemtakt liegt bei 16MHz.

_________________

BID = 620239

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen

würde der sich denn für so eine aufgabe eignen?


http://www.pollin.de/shop/detail.ph.....;ts=0

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

BID = 620264

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Dieser CPLD hat viele IOs, das hat Vorteile. Ist aber ein CPLD, damit kann man vor allem effektiv kombinatore Logiksysteme synthetisieren. Du benötigst ja Zähler und Vergleichswerte und das ganze sehr oft. Kann sein, dass er dazu nicht genügend Ressourcen hat. Rein gefühlsmäßig sollte er es aber können.
FPGAs sind eher für sowas gedacht. Vorteil dieses CPLDs: er speichert die Kombinationen in einem eigenen Flash ab - das Laden der Konfiguration wie bei vielen FPGAs entfällt so.
---

Ein AVR würde aber reichen.
Du müsstest dich in ein komplett neues Gebiet einarbeiten. Nämlich die Beschreibung einer Schaltung, die dann auch synthetisiert werden muss. Das läuft, im Gegensatz zu sequentiellen Prozessoren alles parallel ab. Das ist etwas ganz anderes als z.B. ein AVR.

Ich würde da auf jeden Fall beim AVR bleiben. Fehlende Assemblermnemonics kannst du dir aus dem Datenblatt holen. Hier müsstest du eine komplett neue (Beschreibungs-)Sprache lernen (z.B. VHDL oder Verilog).

_________________

BID = 620405

bastelheini

Schriftsteller



Beiträge: 618
Wohnort: Sachsen

noch eine andere Frage:

wie kann ich abschätzen, wieviele Software PWMs ich in einen AVR reinpacken kann?

Also der AVR soll Daten Empfangen (zb. RS232 etc) und diese dann Auswerten und in möglichst viele PWM Signale umwandeln. Wie bekomme ich nun raus wieviel Soft PWM Kanäle ich ohne Probleme programmieren kann?

Programmsprache soll BASCOM sein;)

_________________
-----------------------------
---MfG Bastelheini---
-----------------------------

BID = 620412

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
wieviel Soft PWM Kanäle ich ohne Probleme programmieren kann?

Programmsprache soll BASCOM sein;)
Damit: Fast keine
- würde ich schätzen.
Bei optimaler Programmierung hängt es aber auch davon ab, wie gut die Hardware darauf vorbereitet ist.
Wenn man ein Dutzend Befehle braucht um ein Bit zur richtigen Zeit umzuschalten, wird auch bei Assemblerprogrammierung nicht viel von der möglichen Prozessorleistung übrigbleiben.

BID = 620432

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

perl deutete es an, ich schrieb es oben schon explizit: vergiss Basic, nimm direkt Assembler!

Zudem habe ich geschrieben, dass das genau davon abhängt, wie hoch die Auflösung der PWM sowie deren Frequenz ist. Das kann man sich schon relativ einfach herleiten. Dazu benötigt man logischerweise auch die Taktfrequenz.

Wenn du das errechnet hast, dann geht es ans Programm. Es muss so kodiert sein, dass einzelne Schritte so schnell erledigt werden, damit der nächste zur richtigen Zeit ausgeführt werden kann. Ergo sehr kompakt und man darf keine Klimmzüge machen. Also zum Setzen eines Bits z.B. nicht erst den Port einlesen, maskieren und neuschreiben sondern Operationen wie sbi oder ähnlich benutzen. Das spart einen Taktzyklus ein.

in 23, PORTD (1)
ori 23, 0x4 (1)
out PORTD, 23 (1)

im Gegensatz dazu:

sbi PORTD, 2 (2)

(Taktzyklen in Klammern).

Diese Instruktion z.B. funktioniert bis zu einer gewissen Adresse des IO-Ports. Bestimmte Timerregister z.B. kann man damit nicht mehr adressieren. Da muss man dann mit Speicherzugriffen ran.

_________________


      Nächste Seite
Gehe zu Seite ( 1 | 2 Nächste Seite )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 22 Beiträge im Durchschnitt pro Tag       heute wurden bisher 3 Beiträge verfasst
© x sparkkelsputz        Besucher : 180675658   Heute : 4216    Gestern : 13317    Online : 304        28.3.2024    10:49
11 Besucher in den letzten 60 Sekunden        alle 5.45 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0466780662537