Duty cycle linear regeln lassen? C Befehl?

OP #2322203
Lesenswert?

Hallo,

normalerweiße schreibe ich beim faden von LEDs, Lampen, Motoren immer 
die ganzen befehle für das Tastverhältnis in den code. Allerdings dauert 
das lange, man hat wenig PWM Schritte, man muss viel schreiben und es 
verbraucht viel flash.

Gibt es irgendeinen Befehl um den Duty cycle des PWM Signals linear 
regeln zu lassen. z.B. dass das Signal in 1000ms von 0-100% ansteigt 
(bei 500ms das Signal 50% hat)?

Oder das ganze gar mit einem ADC zu steuern. Also mit dem befehl, dass 
bei value 0 das Signal 0%, also komplett low ist, bei value 500 es 50% 
duty cycle hat und bei value 1000 das Signal 100%, also High ist.

MfG
Thomas
#2322519
Lesenswert?

Thomas S. schrieb:
> Oder das ganze gar mit einem ADC zu steuern. Also mit dem befehl, dass
> bei value 0 das Signal 0%, also komplett low ist, bei value 500 es 50%
> duty cycle hat und bei value 1000 das Signal 100%, also High ist.

MCs rechnen immer binär.
Ein 10Bit ADC hat also 1024 Schritte und eine 10Bit-PWM auch.
Dein Programm würde auf einem ATtiny24 etwa so aussehen:
1
  for(;;)
2
    OCR1A = ADCW;
Davor noch den ADC free running und den T1 in Mode 3 (PWM, Phase 
Correct, 10-bit) setzen, fertig.


Peter
#2322525
Lesenswert?

Kleiner Tipp: Lerne definitiv die Sprache, in der du programmierst, 
erstmal so gut kennen, dass du dich danach nur noch um die Plattform 
sorgen machen musst. Heißt: Ein C-Buch anschaffen (gibt gute für 10€), 
lernen und danach wirst du sehen, dass dir alles ein wenig leichter 
fallen wird, da dann nur noch das Datenblatt brauchst, falls du etwas 
spezielles wissen musst.
Gast #2322645
Lesenswert?

Thomas S. schrieb:
> Gibt es irgendeinen Befehl um den Duty cycle des PWM Signals linear
> regeln zu lassen.

Ein linearer PWM Anstieg ist normalerweise sehr ungünstig, wenn es um 
die Helligkeit geht. Beim linearen Faden steigt die Helligkeit zu Anfang 
stark an und ändert sich bei höheren Werten nur noch relativ wenig. Bist 
du sicher, dass du das möchtest.
OP #2322676
Lesenswert?

Martin schrieb:
> Ein linearer PWM Anstieg ist normalerweise sehr ungünstig, wenn es um
> die Helligkeit geht. Beim linearen Faden steigt die Helligkeit zu Anfang
> stark an und ändert sich bei höheren Werten nur noch relativ wenig. Bist
> du sicher, dass du das möchtest.

Also müsste das ganze, wenns intern geregelt wird logarithmisch 
ansteigen. Und wenn das per Wert im ADC (z.B. als Motorregler oder 
Signalgenerator) gesteuert wird, linear ansteigen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren