NEWS
PWM Steuerung mit Fade
-
@paul53
Also es sollen doch 1-10 volt sein und PWM Steuerung. nur welche Pins es im Stecker sind muss ich noch raus messen.
Dazu muss dann auch eine Steuerung gebastelt werden, die die nachabsenkung übernimmer und den 29 Tage Mondlicht LED Zyklus muss ich dann auch über eine Steuerung über PWM Karte Steuern.
Ok jetzt lese ich analog Steuerung. Ich weiß nun nicht ob Analog auch über PWM gesteuert werden kann.
Da ja nun die Pumpen auch im Fade laufen müssen bei zwei Steuerungen. -
@Aphofis sagte:
Ich habe mir mal ein Script gebastelt
Du kannst nicht den selben Datenpunkt "Strömung_1" mal mit boolschen Werten (false/true) und mal mit Zahlenwerten (30...100) verwenden.
-
@Aphofis sagte :
Soll mit 100% = 8V starten und in 2 sek runter gehen auf 30 % = 2,4V in 1% Schritten
dann in 1,9 sek rauf auf 8V in 1 % schritten.1 % in 2 s oder 70 % in 2 s ?
-
@paul53
Es soll
mit 8 volt also 100% starten und in 2 sek runter gehen auf 30% in 1% schritten
dann von 30% in 1,9 sek wieder hoch auf 100% in 1% schritten.var Sequenz_Zeit; schedule("*/2 * * * * *", function () { if (getState("sonoff.0.Aqua_Float_Pumps.Strömung_1").val == true) { setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, 30); Sequenz_Zeit = setTimeout(function () { setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, 100); }, 1900); (function () {if (Sequenz_Zeit) {clearTimeout(Sequenz_Zeit); Sequenz_Zeit = null;}})(); } });
hierbei bleibt die steuerung pulsend auf 30% stehen.
gibt dann einen neuen Datenpunkt Stroemung_1_Float die den PWM Fluß steuert als Zahl mit min 0 und max 100%
und Stroemung_1 steuert die steuerung ein oder aus -
@Aphofis sagte:
100% starten und in 2 sek runter gehen auf 30%
Also den Bereich 100 % bis 30 % innerhalb von 2 s durchlaufen ?
-
@paul53
Ja der Bereich soll von 100-30 durchlaufen innerhalb von 2 sek.
und wieder hoch von 30-100 in 1,9 sek. -
Steuerung läuft mehrmals durch und bleibt dann auf 100% stehen.
die ganze steuerung soll ja in einer schleife laufen. bis Strömung_1 abgeschaltet wird und eine andere Strömung aktiviert wird.Ist es so korrekt?
var spannung, Intervall, Intervall2; on({id: 'sonoff.0.Aqua_Float_Pumps.Strömung_1', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; spannung = 100; setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, spannung); Intervall = setInterval(function () { spannung = (typeof spannung == 'number' ? spannung : 0) + -1; setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, spannung); if (spannung <= 30) { (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})(); Intervall2 = setInterval(function () { spannung = (typeof spannung == 'number' ? spannung : 0) + 1; setState("sonoff.0.Aqua_Float_Pumps.Stroemung_1_Float"/*Stroemung_1_Float*/, spannung); if (spannung >= 100) { (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})(); } }, 27); } }, 29); });
-
Hab die intervalle mal langsamer gemacht um zu sehen was passiert also die steuerung geht von 100 runter auf 30 und dann wieder hoch auf 100 und bleibt dann stehen. normal soll sie dann wieder von vorne anfangen also in einer schleife.
-
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.