Aller au contenu
jltthierry

FGD 211 dimmer suivant variable

Recommended Posts

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.:4:


 

   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é par jltthierry

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites
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é par jltthierry

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par jltthierry

Partager ce message


Lien à poster
Partager sur d’autres sites

×