Dans le lien que je t'ai indiqué au message 3, il y a des exemples : voici le code de l'exemple 'basic'
/********************************************************
* PID Basic Example
* Reading analog input 0 to control analog PWM output 3
********************************************************/
#include <PID_v1.h>
//Define Variables we'll be connecting to
double Setpoint, Input, Output;
//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
void setup()
{
//initialize the variables we're linked to
Input = analogRead(0);
Setpoint = 100;
//turn the PID on
myPID.SetMode(AUTOMATIC);
}
void loop()
{
Input = analogRead(0);
myPID.Compute();
analogWrite(3,Output);
}
Cet exemple lit une valeur analogique sur l'entrée A0 et envoie une copie sur la sortie analogique A3. Donc pour le mettre en œuvre, il faut a minima un potentiomètre sur A0 et un oscillo sur A3, ce qui n'est pas forcément simple.
Tu peux le changer en forçant des valeurs sur Input pour voir comment se comporte la variable Output. Par exemple, si on impose une variation sinusoïdale en Input : je tente un code...
#include <PID_v1.h>
//Define Variables we'll be connecting to
double Setpoint, Input, Output;
float x,y;
float dx = 0.05;
//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
void setup()
{
//initialize the variables we're linked to
Input = 0;
Setpoint = 100;
//turn the PID on
myPID.SetMode(AUTOMATIC);
}
void loop()
{
x = x + dx;
y = sin(x);
Input = (int)((y+1)*127);
myPID.Compute();
Serial.print(Input);
Serial.print(",");
Serial.println(Output);
delay(100);
}
Pas testé, à voir ce que ça donne.
il faut bien sûr installer la bibliothèque, tu peux le faire avec le gestionnaire de bibliothèque dans l'IDE (menu Croquis > Inclure une bibliothèque > gestionnaire de bibliothèque, ou CTRL MAJ I) et tu mets PID dans la barre de recherche. Tu choisis celle de Brett Beauregard, appelée PID.
Regarde ce qui sort sur la console série de l'IDE. Tu dois pouvoir aussi afficher des courbes en utilisant le traceur série (menu Outils)