jltthierry Posté(e) le 2 octobre 2019 Signaler Posté(e) le 2 octobre 2019 (modifié) Bonjour à tous, J'essaye de faire un script Lua dans un vd pour faire varier une lumière suivant une variable globale, j'aimerai que si ma variable augmente le dimmer augmente, si elle diminue le dimmer diminue, en ayant un plafond mini, maxi. mais j'ai quelques petits soucis. Voilà ce que j'ai fais en cherchant un peu avec la fonction while. Mais à priori cela ne fonctionne pas comme je le voudrais. Ça s'allume et s'éteint en continu malgré les breaks. Peut être que cette fonction while est pas la bonne solution, j'ai essayé juste avec des If then else, pas concluant non plus. Merci de m'aider, s'il vous plait. local i=0; -- ceci est une variable local while var3 >= 10 do --test si ma variable globale est supérieur ou égal à 10 fibaro:call(31, 'setValue', i) -- on attribu la valeur de la variable i au dimmer (ne fonctionne pas toujours...) i=i+1 -- ici j'additionne i à chaque tour dans le cas ou var3 augmente, plus var3 augmente , faut augmenter le dimmer(vairable i, et inversement (je sais pas faire) if i==100 or var3 < 0 then -- ici je test si var3 est égal à 100 on sort c'est le maximum. break end end fibaro:debug (var1) fibaro:debug (var3) Modifié le 2 octobre 2019 par jltthierry
jojo Posté(e) le 3 octobre 2019 Signaler Posté(e) le 3 octobre 2019 avec ton while, tu ne fait les action que si ta var3 >=10, même si elle ne change pas. Tu dois faire si la var3 change (et voir dans quelle direction), faire varier ton dimmer
jltthierry Posté(e) le 5 octobre 2019 Auteur Signaler Posté(e) le 5 octobre 2019 (modifié) Le 03/10/2019 à 19:32, jojo a dit : avec ton while, tu ne fait les action que si ta var3 >=10, même si elle ne change pas. Tu dois faire si la var3 change (et voir dans quelle direction), faire varier ton dimmer Bonjour Jojo, Merci de m'avoir répondu... Oui c'est bien ce que je voudrais faire, mais je suis une quiche en lua. Je me débrouille sous arduino c'est tout. par exemple sous arduino je fais çà : if (var3 <= 1 && intensite_led < 400) //si var3 est inférieur à 1, et que la led n'est mas à son maximum {intensite_led += 1; // augmenter la led de 1 analogWrite(led, P_led);} if(var3 >= 1 && intensite_led > 1) // inversement, si var3 est >1 et et que la led n'est pas à son minimum {intensite_led -= 2; // diminue alors la led analogWrite(led, P_led);} // 6 la led va s'éclairer au niveau de la valeur de intensite_led Possible de faire çà en lua ? en remplaçant la led par le dimmer. Modifié le 5 octobre 2019 par jltthierry
jltthierry Posté(e) le 5 octobre 2019 Auteur Signaler Posté(e) le 5 octobre 2019 (modifié) Voilà modifier un peu le code , vous en pensez quoi ? local i = 0; -- variable du dimmer local e = var ; -- variable pour tester si var à été modifier if (e ~= var) then { while var <= 1 and i <100 do { i=i+1; fibaro:call(31, "setValue", i); e=var; } end while var >=1 and i >1 do { i+i+(-1); fibaro:call(31, "setValue", i); e=var; } end} else { } end Modifié le 5 octobre 2019 par jltthierry
Messages recommandés