Skip to content

Example Configuration

Alex edited this page Aug 18, 2026 · 2 revisions

Wiki navigation: Controller Concept · Header File · Source File · API Reference · Detailed Calc Flow · Example Configuration · Recommended Tuning Procedure · Important Notes


Example Configuration

#include "pidController.hpp"

PID pid;

void setup()
{
    pid.setDirection(
        PID::Direction::DIRECT);

    pid.setLimits(
        0.0,
        1023.0);

    pid.setSampletime(100);

    pid.setTolerance(2);

    pid.setIntegralActivationRange(10.0);

    pid.setDerivativeFilter(0.5);

    pid.setOutputSlewRate(150.0);

    pid.setTunings(
        5.0,    // Kp
        0.3,    // Ki
        2.0);   // Kd
}

Example control loop:

void loop()
{
    const double setpoint = 100.0;
    const double actual = readProcessValue();

    const double output =
        pid.calc(
            setpoint,
            actual);

    applyControllerOutput(output);
}

Clone this wiki locally