• Zur Hauptnavigation springen
  • Skip to main content
  • Zur Hauptsidebar springen

Kondensatorschaden

Schrauben, basteln, reparieren

  • TechNews
  • How2
  • Lötstation
  • Mikrocontroller
  • Reparaturen
  • Werkstatt
  • Maschinengalerie
  • Fahrrad

1. Juni 201613 Kommentare

[Mikrocontroller] RGB LED ansteuern

RGB LED AVR 001


Wie schon im Video am Wochenende zu sehen war, jetzt es nun um die Dreifaltigkeit der bunten LEDs. Im Prinzip nichts anderes wie drei einzelne LEDs die in ein Gehäuse gequetscht wurden, haben sie doch ihren Reiz. Sei es als Benachrichtigungs-LED im Handy, als schicke Beleuchtung an der Wand oder als Ambilight hinter der heimischen Flimmerkiste.

Die Ansteuerung mittels Mikrocontroller ist entsprechend leicht: Drei unabhängige PWM Signale braucht es, am besten direkt über leistungsstarke MOSFETs wie den IRLZ34N geschaltet, um die kleinen Plasikfunzeln ans leuchten zu bringen. Mit entsprechendem Zurückfahren der Kanäle lassen sie so beinahe alle erdenklichen Farben mischen.

RGB LED AVR 002

Zum Dimmen der einzelnen Kanäle via Potis wird die Stellung der Potis über den ADC (Analog-Digial-Wandler) ausgelesen, und durch vier geteilt. Das liegt daran, dass der ADC Port mit 1023 Bit auflöst, die PWM Kanäle lassen sich von 0-255 aussteuern. 1023:4 = 255.75 Passt!

Über den Befehl „getADC“ lesen wir den Potiwert aus, speichern in einem Word-Wert, teilen durch vier und lassen diesen Wert durch den PWM Port ausgeben = fertig.

Die im Schaltplan eingezeichneten Potis braucht es für den Fader nicht, dran lassen kann man sie trotzdem. Der gemeinsame Pulspol der LEDs wird mit der Spannungsversorgung verbunden, die einzelnen Minuspole werden über die Mosfets angesteuert.

RGB_ATmega8_Grundschaltung

(Klicken zum vergrößern)

 

Den Sourcecode gibt es unten zum Download, viel Spaß beim Farben mischen! 🙂

 

 

Teileliste:
  • Atmega 8 Mikrocontroller (~3,7)
  • Mosfet IRLZ34N (~1€)
Dateien:
RGB SourcecodeRGB Fader Sourcecode

Kategorie: Mikrocontroller Stichworte: atmega 8, atmel, atmel atmega, mikrocontroller atmega 8, mikrocontroller rgb, rgb led ansteuern, rgb led fader, rgb led fader sourcecode, rgb led farbe, rgb led steuern

Leser-Interaktionen

Kommentare

  1. TOM meint

    4. Juni 2016 um 19:08

    Noch einer, der mit BASCOM programmiert

    SUPER! Ich auch, ist ne geile Programmiersprache, weiter so!

    Antworten
  2. Lns meint

    4. Juni 2016 um 21:05

    Hallo,
    Ich habe die Schaltung nachgebaut und den Rgb fader sourcecode auf den Atmega8 gespielt… Der Wechsel zwischen blau und grün funktioniert ohne Probleme, aber sobald der ocr2 Port benutzt wird gehen alle drei Farben an… Auch andere Arten zu Faden haben kein anderes Ergebnis gebracht. Hast du eine Idee, wie ich das Problem beheben kann?
    Lg

    Antworten
  3. Lns meint

    5. Juni 2016 um 22:52

    Hallo,
    ich habe die Schaltung nachgebaut und auf den Atmega den rgb fader soucecode gespielt… Der fade funktioniert bei dem Timer1 auch ohne Probleme, aber bei dem ocr2 Port leuchten alle 3 Farben, wenn der an geht… Auch andere Methoden zu Faden ergaben keine anderen Ergebnisse. Habe die BC547 als Transistoren genutzt und einen Atmega8A-PU auch der Atmega8-16PU gab kein anderes Ergebnis. Vielleicht liegt es daran, dass ich keinen externen Quarz genutzt habe?
    Lg

    Antworten
    • Fabian Grätz meint

      23. Juni 2016 um 16:37

      Hallo,
      ich habe das gleiche Problem obwohl ich alles wie auf dem Schaltplan bzw. im Video abgebildet (also auch mit Quarz) nachgebaut habe. Wäre sehr dankbar für eine Antwort wie sich das Problem beheben lässt.
      Liebe Grüße

      Antworten
  4. Fabi meint

    23. Juni 2016 um 16:39

    Hallo,
    ich habe das gleiche Problem obwohl ich alles wie auf dem Schaltplan bzw. im Video abgebildet (also auch mit Quarz) nachgebaut habe. Wäre sehr dankbar für eine Antwort wie sich das Problem beheben lässt.
    Liebe Grüße

    Antworten
  5. Lukas meint

    27. Juni 2016 um 16:14

    Hi,
    ich habe da mal eine kleine Frage:
    Müsste nicht eigentlich der interne Quart ausreichen oder ist der zu ungenau? Es ist ja nicht tragisch, wenn die LEDs etwas bisschen zu früh oder zu spät angeht/ausgeht, den Unterschied sehen wir doch sowieso nicht mehr.
    Viele Grüße

    Antworten
    • Nscale meint

      22. Juli 2016 um 10:04

      Der interne Quartz würde schon ausreichen, das ist weniger das Problem. Ein größeres Problem wäre die auftretende Ungenauigkeit in Abhängigkeit der Betriebszeit, soll heißen je länger der Mikroprozessor im Betrieb ist, desto ungenauer wird er bis zum nächsten Reset. Bei der hier gezeigten Schaltung nicht unbedingt tragisch, aber so ein externer Quartz kostet nun auch nicht die Welt, warum also nicht gleich richtig machen?

      Antworten
  6. Dominik Klemm-Borrmann meint

    3. August 2017 um 14:53

    Kannst du mir es in Programmiersprache C übersetzern, da ich noch nie wirklich Programmiert habe und fast kein Wissen drin habe und die Lötungen der Schaltung ist fertig. Wir haben AVR Studio 4.

    Antworten
  7. Eberhard meint

    24. August 2017 um 16:20

    Ich möchte gern eine LCD Display ansteuern da den Tasten Druck hoch zählt
    Wie geht das mit Bascom mit ATMEGA8

    Antworten
  8. Tom meint

    4. Januar 2018 um 14:45

    wie viele led streifen könnte ich an einem Atmega 8 anschliesen ?

    Antworten
    • Simon Bäumer meint

      10. Januar 2018 um 17:45

      Das hängt davon ab welchen Transistor du davor schaltest, und wie die LEDs verschaltet sind.

      Antworten
  9. Eberhard meint

    23. Juli 2019 um 1:23

    Ich habe eine frage an sie
    Meine Attiny2313 werden nicht erckant was was soll ich machen
    Die anderen Gehen nur der Tüpe

    Können sie darauf antworten

    Antworten
  10. Anonym meint

    24. August 2019 um 21:23

    An dem Schaltplan kann etwas nicht stimmen. PB0 ist doch gar kein PWM Pin. Deshalb hat auch niemand in den Kommentaren die Schaltung mit funktionierendem Rot-Kanal nachbauen können.
    Ich kenne mich selbst nicht mit BASCOM aus, aber ich würde deinem Code entnehmen, dass der Kanal für Rot (bzw. der Variablenname) nicht an PB0 sondern an PB3 (OC2) liegt.
    Etwas Ähnliches lässt sich dem Video entnehmen, dort ist Rot anscheinend an PB1 (OC1A), Grün an PB2 (OC1B) und Blau an PB3 (OC2).

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Haupt-Sidebar

Neueste Beiträge:

Durchgefärbte Kunststoffe aufbereiten [Allgemein] [Reparaturen]

Nie wieder Fließbecher putzen! [Werkstatt]

Automatikhelm dunkelt nicht mehr (richtig) ab [Allgemein] [Reparaturen] [Werkstatt]

Kondensatorschaden

© 2023 Kondensatorschaden · Datenschutz · Impressum

Urheberrecht © 2023 · Kondensatorschaden am Genesis Framework · WordPress · Anmelden