NEWS
PWM Steuerung mit Fade
-
wie entstehen 29 und 27 millisekunden !?
wenn die steuerung von 100 auf 30 runter soll in 2 sek und rauf in 1,9 sekunden !? -
@Aphofis sagte:
wie entstehen 29 und 27 millisekunden !?
wenn die steuerung von 100 auf 30 runter soll in 2 sek und rauf in 1,9 sekunden !?Ja, sind allerdings nicht genau 2 s und 1,9 s.
-
@paul53
Ja nur was sagen die 29 und 27 sek aus !? wie lange bis auf 30 und wie lange bis auf 100 laufen soll !?
Ich versuche es nur zu verstehen um dasnn das script abzuwandeln für andere steuerungen -
Hab mich bei der Steuerung auch etwas vertan es muss von 30 rauf auf 100 dann runter auf 30 und wieder hoch auf 100 und wieder runter auf 30
Die Steuerungen die abruppt starten sind Wellengang und impuls
Sequezial und intervall laufen normal rauf runter -
@Aphofis
2000 : 70 = 28,57 (ca. 29)
1900 : 70 = 27,14 (ca. 27) -
@paul53
OK bauchlöchern
also 70 entspricht den schritten 30 bis 100 also 70% die gezählt werden.
entspricht 1% schritt bei 2 sek dann 28,57 ms und bei 1,9 sek 27,14 ms -
@Aphofis sagte:
also 70 entspricht den schritten 30 bis 100 also 70% die gezählt werden.
entspricht 1% schritt bei 2 sek dann 28,57 ms und bei 1,9 sek 27,14 msExakt.
@Aphofis sagte in PWM Steuerung mit Fade:
es muss von 30 rauf auf 100 dann runter auf 30 und wieder hoch auf 100 und wieder runter auf 30
normal soll sie dann wieder von vorne anfangen also in einer schleife. -
Spitze!
Mal eine Persöhliche Frage, hast du sowas gelernt?
Also programmieren oder angeeignet?
Das echt der Hammer was du an Steuerungen aus dem Zauberhut holst. -
@paul53
ist es so Korrekt?var sequenzial, Intervall, spannung, Intervall2; /** * Beschreibe diese Funktion … */ function Welle() { Intervall = setInterval(function () { spannung = (typeof spannung == 'number' ? spannung : 0) + 1; setState("sonoff.0.Aqua_Float_Pumps.Sequenzial_Float"/*Sequenzial_Float*/, spannung); if (spannung >= 100) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); Intervall2 = setInterval(function () { spannung = (typeof spannung == 'number' ? spannung : 0) + -1; setState("sonoff.0.Aqua_Float_Pumps.Sequenzial_Float"/*Sequenzial_Float*/, spannung); if (spannung <= 30) { (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})(); if (sequenzial) { Welle(); } } }, 29); } }, 27); } on({id: 'sonoff.0.Aqua_Float_Pumps.Sequenzial', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; sequenzial = (obj.state ? obj.state.val : ""); if (sequenzial) { spannung = 30; setState("sonoff.0.Aqua_Float_Pumps.Sequenzial_Float"/*Sequenzial_Float*/, spannung); Welle(); } });
-
@Aphofis sagte:
angeeignet?
Ja.
@Aphofis sagte in PWM Steuerung mit Fade:
ist es so Korrekt?
Sieht gut aus.
-
@paul53
Echt Hut ab! Ich kenne ja nun einige Script Sprachen und hatte damals auch viel mit C++ am Hut wenn dir das vllt noch was sagt der IRC also Internet Relay Chat der vorgänger von ICQ alias Mirc.
Aber einen Trick gibts da sicherlich auch nicht, um Blockly besser zu verstehen.
Ich denke, entweder man schnallt es oder man schnallt es nicht.
Wenn ich eine fertige Steuerung sehe, kann ich mir den Ablauf vorstellen aber selsbt programmieren klappt nicht so ganz.
Zumindest wenn es um so komplexe Steuerungen geht. -
@paul53
Ich hatte mir die Strömungen mal rausgeschrieben, dann siehst du vllt was ich vor habe an Strömungs Programmen.
Ich hoffe du wirst schlau draus.
Wie gesagt Sequenzial war falsch rum, so wie die jetzige Steuerung ist ist es perfekt.
fehlen nur noch die drei anderen.
Nur wie man von 30% dann zb in in 530 ms rauf geht auf 100% und dann abruppt runter auf 30% dort halten für 600 ms und dann wieder von vorne. weiß ich eher nicht. -
@Aphofis sagte:
Nur wie man von 30% dann zb in in 530 ms rauf geht auf 100%
Von 30% auf 100% wie gehabt - aber bitte nicht in 1 % Schritten (CPU-Last)
und dann abruppt runter auf 30%
falls spannung >= 100
setze spannung auf 30
steuere DP mit spannungdort halten für 600 ms und dann wieder von vorne.
Timeout 600 ms: Funktion wieder aufrufen
-
@Aphofis sagte:
Ich kenne ja nun einige Script Sprachen und hatte damals auch viel mit C++ am Hut
Dann sollte Javascript nicht schwer fallen. Meine ioBroker-Skripte erstelle ich nur in Javascript, denn Blockly hat Einschränkungen und finde ich umständlicher.
-
@paul53
Mann mann mann ne also blöcke da kann ich mir eher was vorstellen aber jeder wie er kann.
Liegt vllt daran weil ich Handwerker bin aber dem einen liegt es mehr dem anderen weniger.
Zu meinem Glück, gibt es ja nette Menschen wie dich, die mir bei sowas helfen. -
@paul53
ist es möglich das man zb zwei Datenpunkte zu Sequenzial anlegt in die man dann zb Sequenzial_up und Sequenzial_down die 2000 ms und 1900 ms angibt und in der Steuerung werden die ms für 1 % errechnet und dann für die beiden Timeouts benutzt. -
Also hab jetzt mal einen Datenpunkt in meinem Datenpunkt Ordner erstellt.
Dann einen ESP geflashed und 4 PWM Kanäle erstellt.
Den Datenpunkt Sequenzial als Logikwert switch eingestellt und in der steuerung verknüpft
genau so den Level Dimmer vom PWM Channel 1 verknüpft
wenn ich nun den Datenpunkt auf true setze läuft die Steuerung los und man sieht den PWM Channel los rennen doch lässt sich leider der Datenpunkt Sequenzial nicht mehr abschalten.
Wenn ich in der Weboberfläche vom Sonoff in die Konsole gucke sieht man wie die Werte per MQTT rein kommen und verabrietet werden. -
@Aphofis sagte in PWM Steuerung mit Fade:
ist es möglich das man zb zwei Datenpunkte zu Sequenzial anlegt in die man dann zb Sequenzial_up und Sequenzial_down die 2000 ms und 1900 ms angibt und in der Steuerung werden die ms für 1 % errechnet und dann für die beiden Timeouts benutzt.
In Javascript kein Problem, aber in Blockly so nicht möglich, da Zeiten im Intervall Konstanten sind. In Blockly kann man nur die Stufenweite (1 %/-1,05 %) variabel gestalten.
-
@Aphofis
MIt einer festen Zykluszeit von 25 ms und einem variablen Delta sollte es so funktionieren: -
@paul53
dh delta ist der variable wert der aus den Datenpunkten ermittelt wird und dann in der Steuerung zu den 25 ms dazu gezählt wird!?
Gebe ich in den Datenpunkten dann ms oder sek ein !?
Eine Lösung dazu das die Steuerung abgeschaltet werden kann hast du nicht!?
Kann es sein das der Pi überlastet ist mit der Art steuerung !?