Forum: Mikrocontroller und Digitale Elektronik LED in Bascom dimmen


von KL203 (Gast)


Lesenswert?

moin!
Ich würde gerne eine LED dimmen mit Bascom. Leider hab ich noch keine 
Erfahrung mit PWM. Nun hab ich mal im RN-wissen ein Beispielprogramm 
angeschaut und nicht ganz verstanden...
Trotzdem hab ichs mal auf meinen ATmega32 geladen und probiert eine LED 
über einen Transistor zu dimmen. Hier mein Programm:
$regfile = "m32def.dat"
$crystal = 1600000

Config Portb.1 = Output
Config Portb.2 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm 
= Clear Up , Prescale = 1

Do
 Compare1a = 205
 Compare1b = 51
Loop

End

von kurz (Gast)


Lesenswert?

Und wo ist die Frage?

von KL203 (Gast)


Lesenswert?

Ich versteh nicht wie ich die Geschwindigkeit des PWMs einstellen kann.

von gruselwusel7 (Gast)


Lesenswert?

Hallo KL203

Du setzt einen Atmega32 ein. Hier sind die PWM-Ausgänge von Timer 1 an 
Pin 18 (PD4 / OC1B) und Pin 19 (PD5 / OC1A) und NICHT an Port B1 und B2 
(=Atmega8).

Das solltest Du zuerst hardware- und software-seitig korrigieren.

In der Schleife:

Do
 Compare1a = 205
 Compare1b = 51
Loop

stellst Du das Tastverhältnis der beiden PWM-Kanäle ein.

Bitte den Prescale-Faktor nicht vergessen und entsprechend anpassen.

Steht aber alles in der Bascom-Hilfe, im RN-Wissen und in den 
Atmega-Datenblättern ;-)

Gruß vom Guselwusel

von KL203 (Gast)


Lesenswert?

hallo gruselwusel7!
Aha! OK Danke für die Antwort!

Der den Prescale hab ich doch initialisiert. Oder muss ich den nochmals 
initialisieren?

Gruss

von spess53 (Gast)


Lesenswert?

Hi

Falls mit 'Mode=8' der PWM-Mode gemeint ist, solltest du auch ICR1 
initialisieren. Das ist nämlich der Zählbereich deines Timers.

MfG Spess

von gruselwusel7 (Gast)


Lesenswert?

Hi!

> Der den Prescale hab ich doch initialisiert.

Stimmt! Prescale wird eingestellt = passt.

8bit-PWM ist eingestellt, ICR1 muss bei Bascom nicht initialisiert 
werden (Bascom = Blackbox-Programmierung).

Wünsche gutes Gelingen.

Bitte um Feedback, ob alles funktioniert.

Gruselwusel

von Joachim R. (bastelbaer)


Lesenswert?

Schau mal unter 
[[http://www.mcselec.com/index.php?option=com_content&task=view&id=244&Itemid=57]]. 
Da gibts einen 8-Kanal-Dimmer für LEDs, und das ganze mit normalem 
Timer. Wenn du mehrere LEDs dimmen möchtest, ist das imho der bessere 
Weg. So lassen sich z.B. auch mehrere Servos gleichzeitig ansteuern.

von KL203 (Gast)


Lesenswert?

Hi,
Danke für den Link.

Danke für eure Hilfe es funktioniert nun!

Liebe Grüsse!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.