Autor Thema: Led dimmer with PWM and variable duty cycle?  (Gelesen 260 mal)

Offline Andrus Saar

  • Jr. Member
  • **
  • Beiträge: 22
Led dimmer with PWM and variable duty cycle?
« am: November 30, 2024, 11:54:26 Vormittag »
Hallo

ich würde gerne ein Demoprogramm erstellen, bei dem zwei Bewegungssensoren zwei Ausgänge schalten, mit ca 20 cm langen LED-Streifen Die Ausgänge würden PWM-gesteuert sein.

Ich würde gerne verschiedene Dimmgeschwindigkeiten verwenden, z.B. 0 bis 100% Geschwindigkeit für 2 Sekunden und zurück (100 bis 0%) für 5 Sekunden. In der Zwischenzeit sollen auch unterschiedliche Prozentsätze verwendet werden (wie analoge Rampe in Siemens LOGO).

Soll ich Impulsgeber mit unterschiedlichen Laufzeiten und Zählern verwenden, deren Ausgang ich an den Eingang des PWM-Blocks schicke?

Ich würde es vorziehen, die ST-Sprache zu verwenden.

Andrus

Übersetzt mit DeepL.com (kostenlose Version)
« Letzte Änderung: November 30, 2024, 11:56:48 Vormittag von Andrus Saar »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 790
  • Think easy!
    • mollgruppe
Antw:Led dimmer with PWM and variable duty cycle?
« Antwort #1 am: Dezember 02, 2024, 23:41:35 Nachmittag »
Hallo Andrus,
teste mal diesen Code

M01:= MB2 > 0;
//Rampe hoch 2000ms
T01 (
EN := I01 and not T01Q1,
RE := ,
ST := ,
I1 := T#20ms,
I2 := ,
Q1 => ,
QV => );
//Rampe runter 5000ms
T02 (
EN := not I01 and not T02Q1,
RE := ,
ST := ,
I1 := T#50ms,
I2 := ,
Q1 => ,
QV => );
// Counter 0 - 100%
IF T02Q1 and MB2 > 0 THEN
MB2:= MB2 - 1;
ELSIF T01Q1 and MB2 < 100 THEN
MB2:= MB2 + 1;
ELSE
;
END_IF;
//salierung 0-100% -> 12Bit
LS01 (
EN := true,
I1 := MB2,
X1 := 0,
Y1 := 0,
X2 := 100,
Y2 := 4095,
QV => );

PW01 (
EN := M01,
SV := LS01QV,
PD := 50,
ME := 0,
E1 => );


Gruß Thomas
« Letzte Änderung: Dezember 02, 2024, 23:50:34 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!