用 Arduino IDE 写PID算法

本文详细介绍了PID算法在Arduino程序中的应用,涉及参数设置(Kp,Ki,Kd),过程值处理,误差计算,以及实时输出控制。展示了如何在硬件中实现PID控制器以精确调整过程值到设定值。
摘要由CSDN通过智能技术生成

// PID 算法参数
float Kp = 0.5;  // 比例系数
float Ki = 0.1;  // 积分系数
float Kd = 0.05; // 微分系数

float setPoint = 585.0;  // 设定值
float processValue;     // 过程值

float error;            // 误差
float integral;         // 积分项
float derivative;       // 微分项
float prevError;        //当前误差与上一误差的差值
float shuchuzhi;        // 控制输出值
void calculatePID() {

    error = setPoint - processValue; 
    integral += error; 
    derivative = error - prevError; 
    float output = Kp * error + Ki * integral + Kd * derivative;  //计算公式
    prevError = error;
    shuchuzhi = shuchuzhi + output;
     shuchuzhi = constrain(shuchuzhi, 0, 255);
}

void setup(void){
 Serial.begin(9600);
  pinMode(3, OUTPUT);
  pinMode(A0, INPUT);
}

void loop() {
       calculatePID();
        analogWrite(3, shuchuzhi);
        processValue = analogRead(A0);
         
        Serial.print(analogRead(A0));
        Serial.print("  ");
        Serial.print(setPoint);
        Serial.print("  ");
        Serial.println(shuchuzhi);
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值