akem
18.10.2006, 02:15
Hallöchen,
ich hab hier schon alles durchsucht und gegoogelt .. und hätte aber trotzdem mal ein paar Fragen an die Profi's :-)
Die Sache ist nämlich die:
Ich möchte mehrere RGB-Leuchtdioden unabhängig voneinander mit einem atmega32 ansteuern und dimmen können.
Die RGB-Dioden haben eine gemeinsame Kanode und je 3 Anoden für die einzelen Farben (R,G,B).
1:
Kann ich bei meinem RN-Control ATMEGA32 an jeden Port PWM durchführen oder benötige ich
dazu noch nen Motortreiber, wie z.B. der auf dem Board vorhandene.
Falls ja
1b:
Den Code für die PWM mit Bascom hab ich dem DemoProg entnommen. Hier werden beide Motor Kanäle einmal hoch und wieder runter gefahren. Ich weiß aber nicht wie ich das auf einem beliebigen Port umstelle (ohne zusätzlichen Motortreiber). Ich verstehe zwar die Config Outputs .. woher weiß der ATMEGA aber wo er die PWM macht =? also an welchem von dem Ports.
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Dim I As Integer
Dim N As Integer
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 1 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 1 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 400
Wait 1
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
3. kann ich die Dioden direkt per Festwiderstand an die Ports hängen oder soll nen Transistor dazwischen hängen.
Vielen Dank für eure Hilfe.
ich hab hier schon alles durchsucht und gegoogelt .. und hätte aber trotzdem mal ein paar Fragen an die Profi's :-)
Die Sache ist nämlich die:
Ich möchte mehrere RGB-Leuchtdioden unabhängig voneinander mit einem atmega32 ansteuern und dimmen können.
Die RGB-Dioden haben eine gemeinsame Kanode und je 3 Anoden für die einzelen Farben (R,G,B).
1:
Kann ich bei meinem RN-Control ATMEGA32 an jeden Port PWM durchführen oder benötige ich
dazu noch nen Motortreiber, wie z.B. der auf dem Board vorhandene.
Falls ja
1b:
Den Code für die PWM mit Bascom hab ich dem DemoProg entnommen. Hier werden beide Motor Kanäle einmal hoch und wieder runter gefahren. Ich weiß aber nicht wie ich das auf einem beliebigen Port umstelle (ohne zusätzlichen Motortreiber). Ich verstehe zwar die Config Outputs .. woher weiß der ATMEGA aber wo er die PWM macht =? also an welchem von dem Ports.
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Dim I As Integer
Dim N As Integer
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 1 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 1 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 400
Wait 1
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
3. kann ich die Dioden direkt per Festwiderstand an die Ports hängen oder soll nen Transistor dazwischen hängen.
Vielen Dank für eure Hilfe.