easy-forum

Deutsch - Applikationen => easy in der Gebäudetechnik => Thema gestartet von: Andrus Saar am November 30, 2024, 11:54:26 Vormittag

Titel: Led dimmer with PWM and variable duty cycle?
Beitrag von: Andrus Saar 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)
Titel: Antw:Led dimmer with PWM and variable duty cycle?
Beitrag von: radar17892 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