07-23-2018 02:05 PM - edited 07-23-2018 02:07 PM
Hello and thank you for your attention.
I have a transfer function in labview and i want to design a PI controller for that, in Arduino.I used VISA to connect labview to Arduino. i attached my VI and this is my arduino code:
#include <PID_v1.h> double Setpoint, Input, Output; double Kp = 36, Ki = 19, Kd = 0; PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT); void setup() { Serial.begin(115200); while (!Serial) {} Setpoint = 30; myPID.SetMode(AUTOMATIC); } int bytesToRead = 0; char msg[64]; void loop() { if (Serial.available()) { getMessage(); float feedback = atof (msg); Input = (double) feedback; myPID.Compute(); Serial.println (Output); } } void getMessage() { int i; bytesToRead = Serial.available(); for (i = 0; i < bytesToRead; i++) { msg[i] = (Serial.read()); } msg[i] = '\0'; }
the Set point is 30 and the output of the transfer function should be 30 but it stop on 25 and when i change the Kp and Ki and set point nothing change and the output of transfer function is 25...
So what is the problem??
I realy need this....thanx for your help...