PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Platine um Rgb Leds anzusteueren



quadro78
09.04.2009, 22:15
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:

http://www.bilder-hochladen.net/files/afj4-1.png

Das sind die Leds:

http://img.webme.com/pic/d/dataspace/1139_1.jpg

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):




http://img.webme.com/pic/d/dataspace/spannung.gif

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 8-[ 8-[ 8-[
Naja freue mich auf eure Antworten O:)

TomEdl
09.04.2009, 22:44
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

Besserwessi
10.04.2009, 00:42
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.

rockin_santa
10.04.2009, 12:28
Könnte man nicht die LEDs auch über PWM-Signale mit Strom versorgen? Darüber ließe sich doch die Spannung verändern.

TomEdl
10.04.2009, 12:35
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

quadro78
10.04.2009, 12:43
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?


http://img.webme.com/pic/d/dataspace/spannung2.png

thewulf00
10.04.2009, 18:43
LEDs haben keine Trägheit.
Wenn man sie ohne Vorwiderstand mit einer PMW betreibt, gehen sie weit früher kaputt als sie sollten.