-         

Ergebnis 1 bis 7 von 7

Thema: Platine um Rgb Leds anzusteueren

  1. #1

    Platine um Rgb Leds anzusteueren

    Anzeige

    Ich habe mir im Wiki einige Artikel zu AVR und Bascom durchgelesen und überlegt einen ATMega32 so zu programmieren das er 2 verschiedene Effekte mit 4 leds erzeugt (über einen Taster). Diese sind in einem Kreuz angeordnet:



    Das sind die Leds:



    Diese Spannung wird für die jeweiligen farben benötigt:
    rot=2.0V - grün=3.2V - blau=3.2V

    Diese Ports habe ich für die Leds festgelegt:

    Led 1: PA0
    PA1
    PA2

    Led2: PA3
    PA4
    PA5

    Led3: PC0
    PC1
    PC2

    Led4: PC3
    PC4
    PC5

    (1. Port ist für Rot, der 2. für Grün, der 3. für Blau)

    Der Microcontroller soll mit 5V betrieben werden...ich habe die Beispiele aus dem Wiki für einen Bascom- Code genommen und ihn erweitert, dabei ist das heraus gekommen:


    $regfil$regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 1000000

    Config Porta.0 = Output
    Config Porta.1 = Output
    Config Porta.2 = Output
    Config Porta.3 = Output
    Config Porta.4 = Output
    Config Porta.5 = Output
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Portc.2 = Output
    Config Portc.3 = Output
    Config Portc.4 = Output
    Config Portc.5 = Output
    Config Pina.7 = Input
    Porta.7 = 1

    Do
    If Pina.7 = 1 Then
    Porta.0 = 0.4 'Pin soll auf 2 Volt gestellt werden (rot) 1.Led
    Porta.1 = 0 'Pin soll auf 0 Volt gestellt werden (grün) 1. Led Farbe Pink
    Porta.2 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (blau) 1.Led
    Porta.3 = 0.4 'Pin soll auf 2 Volt gestellt werden (rot) 2.Led
    Porta.4 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (grün) 2.Led Farbe Gelb
    Porta.5 = 0 'Pin soll auf 0 Volt gestellt werden (blau) 2.Led
    Portc.0 = 0.64 'folgende Pins sind wie die für die 2. Led eingestellt, also Gelb
    Portc.1 = 0.4
    Portc.2 = 0
    Portc.3 = 0.64
    Portc.4 = 0.4
    Portc.5 = 0
    Else
    Porta.0 = 0.25 'Pin soll auf 1 Volt gestellt werden (rot) 1. Led
    Porta.1 = 0 'Pin soll auf 0 Volt gestellt werden (grün) 1. Led Farbe Violett
    Porta.2 = 0.64 'Pin soll auf 3,2 Volt gestellt werden (blau) 1.Led
    Porta.3 = 0.4
    Waitms 100
    Porta.3 = 0
    Waitms 200
    Porta.4 = 0
    Waitms 100
    Porta.4 = 0.64 'Hier soll ein Farbwechel
    Waitms 200 von Pink -> Türkis -> Blau
    Porta.5 = 0.64 enstehen (bei Led 2 und 4)
    Portc.0 = 0.4
    Portc.1 = 0.64 'Led 3 hat die Farbe Gelb
    Portc.2 = 0
    Waitms 100
    Portc.3 = 0
    Waitms 200
    Portc.4 = 0
    Waitms 100
    Portc.4 = 0.64 'Hier soll ein Farbwechel von
    Waitms 200 Pink -> Türkis -> Blau
    Portc.5 = 0.64 enstehen (bei Led 2 und 4)
    End If

    End
    und hier noch der gedachte Schaltplan(den habe ich mit Paint gemacht):






    Gehen wir mal davon aus das die leds an den richtigen Ports angeschlossen sind, ist es richtig das alle leds am längsten beinchen mit Gnd verbunden sind oder muss da die Spannung Erst runter gesetzt werden??

    Ist es Richtig das der Minus Pol ( Gnd ) beim Spannungsregler angeschlossen ist, wenn man den Schaltplan umsetzen würde(gäbe das nicht einen Kurzschluss)??

    Würde das programm funktionieren??

    Gibt es sonst noch Fehler?

    Hoffentlich war das nicht zu viel auf einmal
    Naja freue mich auf eure Antworten

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Hallo!

    Es ist nicht möglich, einen Pin auf eine gewisse Spannung einzustellen. Entweder ist er auf logisch1 (5V) oder auf logisch0 (0V) geschalten. Das liegt an der Natur der µCs.

    Grüße
    Thomas

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für die LEDs wird man Vorwiderstände brauchen. Rund 220 Ohm sollten richtig sein. Wenn die Belegung der LED oben richtig ist, sollte der gemeinsame Pin (3) an 5 V und die anderen Pins über Widerstände an 3 Pins der µC.

    Wenn man Bilder einbinden will, dann nicht als BMP Speichern, sondern als .PNG.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2004
    Ort
    Wilhelmshaven
    Beiträge
    129
    Könnte man nicht die LEDs auch über PWM-Signale mit Strom versorgen? Darüber ließe sich doch die Spannung verändern.

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.11.2008
    Ort
    Kapfenberg
    Beiträge
    628
    Zitat Zitat von rockin_santa
    Könnte man nicht die LEDs auch über PWM-Signale mit Strom versorgen? Darüber ließe sich doch die Spannung verändern.
    Das würde funktionieren. Entweder nutzt man die Trägheit der LEDs selbst zum glätten der Impulse oder man benutzt ein RC-Glied dafür.

    Grüße
    Thomas

  6. #6
    Beim Code habe ich alle Dezimalzahlen durch 1 ersetzt. Jetzt müssen also noch Wiederstände vor den Leds.
    Ich wollte die Schaltung an einem 3 zellen Lipo akku anschließen also 12-9V.

    Der Spannungsregler hält die Spannung auf 5V und der Minus Pol braucht doch keine Wiederstände oder ?

    Und ist es richtig den Minus Pol an dem Längsten Beinchen jeder Led anzuschließen und beim Spannungsregler?



  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    LEDs haben keine Trägheit.
    Wenn man sie ohne Vorwiderstand mit einer PMW betreibt, gehen sie weit früher kaputt als sie sollten.

Berechtigungen

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