#include "GyverPID.h"

 GyverPID mot (0.35, 0.09, 0.05);
 int shim = 10;
 int volt = A1;
 int pulse;

void setup() {
  // put your setup code here, to run once:

  Serial.begin (9600);
  Serial.setTimeout(10);
  mot.setpoint = 310;
  pinMode(shim, OUTPUT);
  pinMode(volt, INPUT);

}

void loop() {

 pulse = analogRead(volt);
  
  mot.input = pulse;
  mot.getResult();
  analogWrite(shim, mot.output);
  Serial.print(mot.input); Serial.print (" ");
  Serial.print(mot.output); Serial.print (" ");
  Serial.println(mot.setpoint);

  parsing();

}

void parsing(){

  if(Serial.available() > 1)
  {
    char incoming = Serial.read();
    float value = Serial.parseFloat();

    switch (incoming)
    {
      case 'p': mot.Kp = value; break;
      case 'i': mot.Ki = value; break;
      case 'd': mot.Kd = value; break;
      case 's': mot.setpoint = value; break;
    }
  }
}