原理图
首先先把这个控制通断的关键原理图放出来
主要芯片就是moc3032 BTA16-600B,主要控制过程就是单片机输出低电平然后三极管导通然后芯片触发控制BTAT1和T2脚导通,然后灯泡就会导通正常工作。当然灯泡也可以换成其他的220V工作的物品。
作品实物图如图:
然后下面看看主要的PID代码
void PID_Calc() //pid计算
{
float DelEk;
float ti,ki;
// float Iout;
// float Pout;
// float Dout;
float td;
float kd;
float out;
if(pid.C10ms<(pid.T)) //计算周期未到
{
return ;
}
pid.Ek=pid.Sv-pid.Pv; //得到当前的偏差值
pid.Pout=pid.Kp*pid.Ek; //比例输出
pid.SEk+=pid.Ek; //历史偏差总和
DelEk=pid.Ek-pid.Ek_1; //最近两次偏差之差
ti=pid.T/pid.Ti;
ki=ti*pid.Kp;
pid.Iout=ki*pid.SEk*pid.Kp; //积分输出
td=pid.Td/pid.T;
kd=pid.Kp*td;
pid.Dout=kd*DelEk; //微分输出
out= pid.Pout+ pid.Iout+ pid.Dout;
//
if(out>pid.pwmcycle)
{
pid.OUT=pid.pwmcycle;
}
else if(out<0)
{
pid.OUT=pid.OUT0;
}
else
{
pid.OUT=out;
}
//pid.OUT+=; //本次的计算结果
pid.Ek_1=pid.Ek; //更新偏差
pid.C10ms=0;
}
如果想获取整套资料的欢迎关注微信公众号 一手创客 回复 01 即可获得下载链接 里面包含设计原理图、程序,以及显示装置等。也可以在微信公众号下面提问。
csdn下载链接:https://download.csdn.net/download/qq_40442656/12467589