Realizo un PID utilizando libreria pero las salidas no me dan señal

#include <PID_v1.h>

// Definir pines
const int potPin = A0;    // Pin analógico para el potenciómetro
const int sensorPin = A1; // Pin analógico para el sensor de retroalimentación
const int salidaPinP = 9;  // Salida proporcional (PWM)
const int salidaPinI = 10; // Salida integral (PWM)
const int salidaPinD = 11; // Salida derivativa (PWM)
const int salidaPinTotal = 3; // Salida total (PWM)

// Variables
double setpoint, input, outputP, outputI, outputD;

// Sintonizar estas constantes para tu sistema
double kp = 12; // Constante proporcional
double ki = 0; // Constante integral
double kd = 0; // Constante derivativa

PID myPID(&input, &outputP, &setpoint, kp, ki, kd, DIRECT);

void setup() {
  Serial.begin(9600);

  pinMode(salidaPinP, OUTPUT);
  pinMode(salidaPinI, OUTPUT);
  pinMode(salidaPinD, OUTPUT);
  pinMode(salidaPinTotal, OUTPUT);
}

lee la referencia del potenciometro y la retroalimentacion la obtengo de un motor generador usado como sensor

void loop() {
  setpoint = analogRead(potPin); // Establecer el punto de referencia desde el potenciómetro
  input = analogRead(sensorPin); // Obtener la retroalimentación del sensor

  myPID.Compute(); // Calcular la salida PID

En las salidas no me da voltajes el arduino son tres salidas de las etapas de proporcionalidad, integral y derivativa, para poder testearlo con osciloscopio

  // Salidas individuales (PWM)
  analogWrite(salidaPinP, outputP);
  analogWrite(salidaPinI, outputI);
  analogWrite(salidaPinD, outputD);

  // Salida total (suma PWM) 
  int totalPWM = outputP + outputI + outputD;
  analogWrite(salidaPinTotal, totalPWM);

  // Imprimir valores para depuración
  Serial.print("Setpoint: ");
  Serial.print(setpoint);
  Serial.print(", Input: ");
  Serial.print(input);
  Serial.print(", Output P: ");
  Serial.print(outputP);
  Serial.print(", Output I: ");
  Serial.print(outputI);
  Serial.print(", Output D: ");
  Serial.print(outputD);
  Serial.print(", Output Total (PWM): ");
  Serial.println(totalPWM);

  delay(100);
}

Hola, revisa más cómo funciona la librería PID, esta te entrega una única salida en base a la entrada y los parámetros de configuración que le indicas aquí:

PID myPID(&input, &outputP, &setpoint, kp, ki, kd, DIRECT);

en este caso la salida del sistema PID está en "outputP", no te están dado los valores en los canales individuales, esto es porque nunca cambian permanecen siempre igual ya que a lo largo de todo el programa nunca se modifican por eso siempre son cero

Moderador
Titulo editado por no respetar punto 5.