Go Down

Topic: Probleme avec la librairie PID_Beta6.h (Read 755 times) previous topic - next topic

romain

Bonjour,

Voila mon problème, j'ai créer le programme si dessous mais malheureusement il ne reconnait pas toutes les fonctions incluses dans la librairie en particuliers JustCalculated(),GetMode,GetP_Param(),GetI_Param()et GetD_Param() donc des fonctions utilisées dans la méthode avancée (voir lien ci-dessous) voila si quelqu'un pouvez m'aider,merci.


http://www.arduino.cc/playground/Code/PIDLibrary
http://www.arduino.cc/playground/Code/PIDLibraryAdvancedMethods

Code: [Select]
#include <PID_Beta6.h>



#define alpha 0.95
#define k    5

double Consigne, Mesure, Commande,Calcul;


PID pid(&Mesure, &Commande, &Consigne,4,2,1);

void fonctiontrans(){
Mesure=alpha*Mesure+k*(1-alpha)*Commande;
}


void setup()
{
 Serial.begin(9600);
 
 Mesure =0;
 Commande=0;
 Consigne = 150;
 pid.SetOutputLimits(-200,200);
 pid.SetInputLimits(-200,200);
 pid.Reset();
 pid.SetMode(AUTO);
 pid.SetSampleTime(40);
}

void loop()

{


fonctiontrans();
pid.Compute();
//analogWrite(3,Commande);
Serial.print("Mesure : ");
Serial.print(Mesure, DEC);
Serial.print(" Commande :");
Serial.print(Commande, DEC);
Serial.print(" appel a la fonction compute :");
Serial.print(JustCalculated());
Serial.print(" Mode :");
Serial.print(GetMode());
Serial.print(" temps :");
Serial.print("%d",GetSampleTime());
Serial.print(" parametre P :");
Serial.print(GetP_Param());
Serial.print(" parametre I :");
Serial.print(GetI_Param());
Serial.print(" parametre D :");
Serial.println(GetD_Param());
delay(10);
}


fdufnews

Je crois avoir eu un problème une fois avec Serial.print et des valeurs retournées par une fonction.
Il me semble qu'il faut passer par une variable intermédiaire.
Essaye de remplacer:
Code: [Select]
Serial.print(JustCalculated());
par
Code: [Select]
double temp = GetI_Param());
Serial.print(temp);

romain

helas j'ai toujours la même erreur  :-[
Code: [Select]
In function 'void loop()':
error: 'GetMode' was not declared in this scope

romain

et une petite question es ce normal que lorsque que je déclare la librairie qu'elle n'est pas surligné en orange??

churchill

Où as-tu mis la librairie ? Peut-être n'est elle pas dans le bon dossier. Elle doit être dans le dossier "libraries"

churchill

romain

j'ai vérifié elle est bien dans ce répertoire

romain

svp aidez moi ce problème est vraiment urgent  :-[

Go Up