Constrain

Salut à tous, J'utilise une fonction constrain() pour limiter une valeur que je doit envoyer à mon moteur (moins que 1150 ou plus que 2100 et il s'arrête de tourner) . J'utilise

constrain(m1, 1150, 2100);

Sauf que ... la fonction ne fait rien. Je pourrais la recréer moi même mais bon... Si une solution existe :p

bon ... en faisant quelque test, j'ai trouvé un truc vraiment bizzard : avec ce code

int y = 0;

void setup() {
  Serial.begin(9600);
}

void loop() 
{
  y++;
  Serial.println(y);
}

L'arduino (mkr1000) me renvoi une valeur qui s'incrémente, mais qui commence à une valeur aléatoire (enfin pas vraiment, vu que sur 5 test j'ai eu 20000, 60000, 80000, 100000, 50000, bien sur les valeurs n'était pas ronde, mais je ne me souvient plus du chiffre exact) malgré le int x =0; Et, évidement, en rajoutant le constrain(y, 0, 10); rien ne change.

Bonjour,

C'est:

m1=constrain(m1, 1150, 2100);

tout s'explique :p Il devrait être plus clair sur la doc d'arduino. Je suppose qu'il en ai de même avec map(); ?

oui, c'est la même chose avec map

Quentin92s: tout s'explique :p Il devrait être plus clair sur la doc d'arduino. Je suppose qu'il en ai de même avec map(); ?

C'est pas vraiment arduino pour le coup, mais le C Ce que retourne une fonction doit être assigné a une variable

Je pensais que le fonction était une fonction void ^^

C’est une des choses que je reproche à la référence arduino sur ce site (peut être dans un soucis de simplification), c’est qu’il n’y a généralement aucune info sur le type des paramètres ni sur le type retourné.

Pour constrain ce n'est pas le cas. Il y a les types et un exemple très clair

sensVal = constrain(sensVal, 10, 150);
// limits range of sensor values to between 10 and 150