电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机加pid算法去控制步进电机的具体措施或方法

单片机加pid算法去控制步进电机的具体措施或方法_第1页
1/8
单片机加pid算法去控制步进电机的具体措施或方法_第2页
2/8
单片机加pid算法去控制步进电机的具体措施或方法_第3页
3/8
单片机加pid算法去控制步进电机的具体措施或方法 2009-7-25 12:13 最 佳答案 //P1.1(T0):Count They Distance //P0.4:Tx //P0.5:Rx #include //SFR declarations #include //Standard I/O definition file #include //Math library file #include #include unsigned int j,i; char a=0; unsigned int t=0; //sbit led=P0^2; //P0.0(PWM0):给定左轮速度. sbit vls=P0^4; //P0.4(GPIO):给定左轮方向. sbit vlf=P0^6; //P0.6(T0) :反馈左轮速度. sbit dlf=P1^0; //P1.0(GPIO): 反馈左轮方向. //P0.2(PWM0):给定右轮速度. sbit vrs=P0^5; //P0.5(GPIO):给定右轮方向. sbit vrf=P0^7; //P0.7(T0) :反馈右轮速度. sbit drf=P1^1; //P1.1(GPIO): 反馈右轮方向. int ol; //左轮给定值 int len; int len_1,len_2; int lyn_1,lyn_2; int vl1,vl2; //反馈左轮速度值(取样周期内的方波数) int lfz; //运算后赋给 PWM 的值 int lyn,lynn; int lun=0,lun_1=0; //偏差校正值 即校正 PWM 输出 int lunp,luni,lund; //PID 校正值 int or; //右轮给定值 int ren; int ren_1,ren_2; int ryn_1,ryn_2; int vr1,vr2; //反馈右轮速度值(取样周期内的方波数) int rfz; //运算后赋给PWM 的值 int ryn,rynn; int run=0,run_1=0; //偏差校正值 即校正PWM 输出 int runp,runi,rund; //PID 校正值 float kp=2.0; //比例系数1.8 float kd=0.2; //微分系数0.4 float lki; //积分系数 void pio_init(void); void sys_init(void); void t01_init(void); void TIME3_INT(void); void PID(void); void interrupt_init(void); void delay(unsigned int x); void pwm1_1(void); void main(void) { PCA0MD &= ~ 0x40; //关闭 pio_init(); //P11 为测距输入端 sys_init(); t01_init(); pwm1_1(); TIME3_INT(); interrupt_init(); vls=1;vrs=0; while(1) { ol=50; or=50; delay(1000); ol=100; or=100; delay(1000); ol=-50; or=50; delay(1000); } } void PID(void) { /****************左轮PID 调节******************/ if(dlf==1) { lyn=(vl2*256+vl1); //dlf 是左轮反馈方向,0 表示向前 vl=TL0 } else { lyn=-(vl2*256+...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机加pid算法去控制步进电机的具体措施或方法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部