Aller au contenu


Photo
- - - - -

[resolu] Ajouter une erreur dans une condition


  • Veuillez vous connecter pour répondre
8 réponses à ce sujet

#1 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 13 juillet 2014 - 02:12

Bonjour,

Je souhaiterai faire qqch comme ca :

if (sensorValue +-error  =   sensorValue1 )

De facon a ce que si sensorValue est egal a sensorValue1 plus ou moin l'erreur, il execute le code de cette condition. De maniere a avoir une fouchette d'action et non un nombre precis (essayer d'aligner 2 potar a la meme resistance...)


J'ai essayer different truc, mais rien a faire, cela ne fonctionne pas.

Merci

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#2 Lehrse

Lehrse

    Membre

  • Membres
  • 55 messages
  • Gender:Male
  • Location:Belgium

Posté 13 juillet 2014 - 02:25

Il te faut un connecteur logique

if ((sensorValue + error) ==  sensorValue1 || (sensorValue - error) ==  sensorValue1)
{
//instructions
}

si sensorValue1 est égale à sensorValue + error ou si sensorValue1 est égale à sensorValue - error faire les instructions
Les robots gouvernent le monde

#3 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 13 juillet 2014 - 02:49

Merci, mais ce n'est pas ce que je souhaite. Suivant ton code, je dispose de deux point precis qui permette de lire les instrcutions. Hors, je souhaite lire les instruction tant que la différence entre sensorValue et sensorValue1 soit comprise entre 0 et 50. ex : sensorValue = 235 et sensorValue1=257

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#4 Lehrse

Lehrse

    Membre

  • Membres
  • 55 messages
  • Gender:Male
  • Location:Belgium

Posté 13 juillet 2014 - 03:02

Si j'ai bien compris il te faut changer le premier == en >= et le deuxième en <= et le ou(||) en et (&&)

if ((sensorValue + error) >=  sensorValue1 && (sensorValue - error) <=  sensorValue1)
{
//instructions
}

si sensorValue1 est infèrieur ou égale à sensorValue + error et que sensorValue1 est supérieur ou égale à sensorValue - error faire les instructions

comme ça ?
Les robots gouvernent le monde

#5 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 13 juillet 2014 - 03:08

Je l'ai

erreur=50

if ((sensorValue-  sensorValue1)<erreur )

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#6 Lehrse

Lehrse

    Membre

  • Membres
  • 55 messages
  • Gender:Male
  • Location:Belgium

Posté 13 juillet 2014 - 03:11

SensorValue1 est il toujours supérieur à Sensor value ?
Les robots gouvernent le monde

#7 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 13 juillet 2014 - 03:25

Non, c'est pour ca que ca marche pas !...

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#8 Microrupteurman

Microrupteurman

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 2 210 messages
  • Gender:Male
  • Location:Aquitaine,Gironde

Posté 13 juillet 2014 - 03:30

Cette fois c'est bon

if ((sensorValue -  sensorValue1)<=50 &&  (sensorValue -  sensorValue1) >= -50 )

 
Page Facebook : https://www.facebook...appartelier2.0/
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
Boutique Robot-Maker : https://www.robot-ma...er-20/produits/

Besoin d'une impression 3D grand format ? Contactez moi !
 


#9 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 13 juillet 2014 - 04:17

Salut !

Cette fois c'est bon

if ((sensorValue -  sensorValue1)<=50 &&  (sensorValue -  sensorValue1) >= -50 )


Ce que tu cherches à faire, c'est effectivement vérifier que tu es dans une certaine région autour d'une consigne. La manière classique de faire, c'est de calculer une erreur (valeur à atteindre - valeur mesurée), et de vérifier que cette erreur est inférieure à un seuil, le résultat auquel tu es arrivé.
Pour optimiser encore de code, tu peux calculer la valeur absolue de l'erreur (abs(val à atteindre - val mesurée) avec arduino) et la comparer à une tolérance sur la valeur à atteindre. Du coup, pas besoin de vérifier par rapport à chaque borne, simplement que l'erreur est inférieure à la tolérance.
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users