ich probiere ein PID zu für mein kleines Projekt zu erstellen. Version 1 (v1) habe ich einfach kopiert, dann in meinem Code eingefügt und die input und output ... Zahlen geändert.
was erst auffällig war, dass "PID_v1" in der Bibliotheksdefinition schwarz geblieben und nicht rot geworden ist!!
Ich füge den Code gerne hinzu: was habe ich falsch geschrieben, wo ist der Fehler bitte
Viele Grüße von einem neuen Arduino Bastler
#include <SD.h>
#include <PID_v1.h>
/* Management of temperature measure*/
/*-------------------------------------*/
int Enb_M1 = 5;
int Enb_M2 = 6;
int Feed_Pump = 9;
int Enb_V_01 = 2;
int Enb_V_02 = 7;
int Tin_sensor = 1;
int Tout_sensor = 2;
int Current_sensor = 3;
int Datalogger_Pin = 4;
int Reserve_Analog_Pin = 5;
int Tin_value = 0; // variable to store the read value
int Tout_value = 0; // variable to store the read value
int T_diff = 0; // the diference between read analog values
//Define Variables we'll be connecting to ou
double Setpoint, Input, Output;
//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint, 2, 5, 1, DIRECT);
// Setpoint = 20°C
// Input = T_diff
// Output = Pump Speed (Feed_Pump)
void setup()
{
pinMode(Enb_M1, OUTPUT); // sets the pin 5 as output (digital)
pinMode(Enb_M2, OUTPUT); // sets the pin 6 as output (digital)
pinMode(Feed_Pump, OUTPUT); // sets the pin 9 as output (PWM)
pinMode (Enb_V_01, OUTPUT); // sets the pin 2 as output (digital)
pinMode (Enb_V_02, OUTPUT); //sets the pin 7 as output (digital)
pinMode (Tin_sensor, INPUT);
pinMode (Tout_sensor, INPUT);
pinMode (Current_sensor, INPUT);
}
*//////////////////// PID //////////////////*
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);
void setup()
{
//initialize the variables we're linked to
Setpoint = 20;
//turn the PID on
myPID.SetMode(AUTOMATIC);
}
void loop()
{
T_diff = Tout_value - Tin_value;
Input = T_diff;
myPID.Compute();
analogWrite(Feed_Pump,Output); // pin 9 for the Punp Speed (Feed_Punp)
}
Könnte sein daß die Bibliothek kein File mit den Schlüsselwörtern mitbringt und da kann der Arduino-IDE nicht wissen was ein Schlüsselwort ist und wie es zu formattieren ist.
grüße Uwe
Das kommt darauf an wo die Lib installiert wurde. Die Anführungszeichen suchen im gleichen Verzeichnis in dem dein Programm liegt. Die spitzen Klammern suchen im Library Ordner.
Hallo,
in deinem Code gibt es 2mal ein void setup,
wird so nicht gehen
und in dieser Zeile " //////////////////// PID ////////////////// ist der vordere Stern zuviel
Bis auf das mit dem Stern ist mir das auch aufgefallen, doch ich ging davon aus, dass dann halt beide Setups ausgeführt werden und die doppelte Deklaration die erste überschreibt und das ganze somit trotzdem funktionieren könnte.. Wegen seiner Aussage mit dem "Highlighting" von dem PID ging ich eher von einer falschen includierung aus..
Passt denn die ordnerstruktur? Hatte ausersehen auch schonmal eine lib als zip geladen und blind entpackt.. Im zip war dann allerdings noch ein unterordner..
also, es lag sehr wahrscheinlich an "Bibliothek". ich habe die Bibliothek von "PID" ( Playground) in dem zip-File im Ordner "Arduino" eingefügt. Jetzt habe ich beim Öffnen einer neuen Datei eine neue "Kategorie" (im Steckbook) heißt "libraries" davon dann findet man "v1_PID" mit den 3 Beispielen von Playground .
ich habe "PID_Basic" probiert , es wird jetzt problemlos überprüft. ich muss jetzt als zweite schritt herunterladen und praktisch Inbetriebnahmen
Anmerkung: nichts hat sich bei "Highlighting" von (#include <PID_v1.h>) geändert. Es ist immer noch schwarz!! aber wie gesagt kompiliert problemlos.