金牌会员
 
- 积分
- 1589
- 威望
- 778
- 贡献
- 511
- 兑换币
- 449
- 注册时间
- 2012-11-29
- 在线时间
- 150 小时
|
推荐

楼主 |
发表于 2014-5-11 10:10:28
|
只看该作者
来套舵机pD,软件设置切内道- /***************************舵机PID函数*********************************/
- void Angle_PID(int CENTER)
- {
- //2.8
- float angle_kp=7.38,angle_kd=17.2;//系数 PD控制
-
- if(lost_time==0 ||left_lost_time==0 ||right_lost_time==0 ) //判断如果黑线都丢失了,则不更新数据
- {
- angle_error=CENTER-CENTER_INIT;
- // if(left_lost_time>20 && right_lost_time==0)
- // angle_error=CENTER_INIT-CENTER+abs(angle_error)/8.5;
- // else if(left_lost_time==0 && right_lost_time>20)
- //angle_error=CENTER_INIT-CENTER-abs(angle_error)/8.5;
- angle=(int)(angle_init+angle_kp*angle_error+angle_kd*(angle_error-angle_last_error));
- if(angle<=angle_init-250) //防止系数过大导致舵机打死
- {
- angle=angle_init-250; //6%-9% ,,2000
- }
- if(angle>=angle_init+250)
- {
- angle=angle_init+250;
- }
- angle_last_error=angle_error;
- PWMDTY23=angle;
- }
- }
复制代码 |
|