- LiFePO4 Speicher Test         
Ergebnis 1 bis 8 von 8

Thema: Suche gutes Tutorial zur Software-PWM für LEDs

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176

    Suche gutes Tutorial zur Software-PWM für LEDs

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,
    ich Suche grade ein gutes tutorial, wie ich softwareseitig meine eigene PWM-Steuerung umsetzen kann, um RGB-LEDs anzusprechen.
    Dabei möchte ich einen AtTiny2313 verwenden. Da ich mehrere RGB-LEDs verwenden möchte, sind die 4 PWM-Kanäle für mich nicht wirklich von Bedeutung, da diese nut 1 1/3tel RGB-LEDs ermöglichen würden

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Braucht man dafür ein Tutorial?

    Software PWM ist doch "nur":
    - Pin an
    - warten (T_on)
    - Pin aus
    - warten (T_off)
    und alles wieder von vorne.

    Wie du dieses warten realisierst, ist dir überlassen, das kannst du mittels timer lösen oder ganz einfach über eine wait schleife.

    Mit wait:
    fester wait wert z.B. 100µs. Zu beginn, werden alle LEDs eingeschalten, dann wirde alle 100µs eine Variable hochgezählt und mit den PWM werten verglichen, stimmt ein PWM wert überein, wird der entsprechende Pin 0 Gesetzt. Hat die Variable ihren Maximalen Wert erreicht, werden wieder alles LEDs eingeschaltet.

    Vorteil:
    Recht einfach realisiert

    Nachteil:
    µC rennt mit 100% Last.


    Eleganter geht es mit Timern:
    Hier gibt es 2 Möglichkeiten, entweder mit dem Compare-register des Timers arbeiten oder in jedem Timer Durchlauf ein Variable hochzählen ( und dann wie bei der Wait Variante nur ohne der 100% Last).

    Mit dem Compare Register:
    Die PWM werte werden der Größe nach sortiert und der kleinste PWM wert wird in das Compareregister geladen. Bei einem Timer-Compare interrupt werden alle LEDs, die diesen PWM wert haben, auf 0 gesetzt und der nächst kleinere PWM wert ins Compare-Register geladen...... Bei einem Timer overflow werden dann wieder alle LEDs eingeschaltet.

    Vorteil:
    CPU Last liegts im einstelligen Prozent Bereich

    Nachteil:
    Recht komplexe Realisierung durch Sortieralgorithmus und interrupts

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Naja, das Grundprinzip von PWM verstehe ich schon. Aber ich weiß noch nciht, wie ich z.b. ein Pulsieren einer LED verwirklichen kann.
    Also quasi langsam von 0 bis 100% Helligkeit (An-Zeit) und wieder zurück.
    Ich möchte gerne ein Codestück, mit dem ich relativ flexibel arbeiten kann, weshalb ich gerne erstmal verschiedene Lösungen durchforsten möchte, bevor ich mich an meinen eigenen Code ran wage.
    Außerdem soll die LED flimmerfrei (fürs menschliche Auge) sein. Das muss natürlich auch im Code berücksichtigt werden. Also quasi ein eleganter PWM-Code

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    hast du dir das hier schon durchgelesen?:

    http://www.rn-wissen.de/index.php/Pwm
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2004
    Beiträge
    451
    Flimmerfrei ist schneller als 30 Hz (solange die LEDs nicht in Bewegung sind), je schneller umso besser.

    Um das Pulsieren zu realisieren musst du nur den PWM wert nach X ms um Y erhöhen/verringern. X und Y richten sich danach, wie schnell und flüssig das Pulsieren funktionieren soll.
    Dafür kannst du den zweiten Timer verwenden um alle X ms die PWM werte um Y zu ändern.

  6. #6
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.052
    So ein Servocontroller hat die Aufgabe 20 PWM Werte auszugeben, wenn auch mit ganz anderen PWM Werten.
    Hier ist ein Beispiel angegeben.

    https://www.roboternetz.de/community...i-w%C3%A4hlbar

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von Thomas E.
    Registriert seit
    29.12.2011
    Beiträge
    638
    Hier gibts ein Projekt mit Software-PWM (drei Kanäle):
    https://www.roboternetz.de/community...hlight=TinyRGB

    Interessant ist auch die weitere Diskussion, in der es um Optimierung geht.
    Grüße
    Thomas

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    17.02.2009
    Ort
    Aachen
    Beiträge
    1.176
    Danke für die ganzen Links, das hilft auf jeden Fall weiter
    Ich hab gestern meine kleine Experimentierplatine mit nem HD44780-Display und ner RGB-LED zusammengelötet und werd mich dann mal ran machen

Ähnliche Themen

  1. Anfängerfrage zur Software PWM
    Von Daaniel im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 04.04.2012, 21:33
  2. Sehr gutes ARM-Tutorial [gefunden]
    Von tobimc im Forum Buchempfehlungen
    Antworten: 1
    Letzter Beitrag: 06.03.2009, 11:46
  3. Suche gutes Tutorial für GLCD's
    Von Marsupilami im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 21.08.2008, 20:14
  4. Suche gutes Bascom Tutorial
    Von moin im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 30.01.2007, 19:36
  5. Suche gutes Simulationsprogramm für Schaltungen
    Von cube81 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 08.08.2006, 09:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress