完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
去年比赛培训的时候做的一个小东西,现在整理了出来和大家分享。
本设计采用STC12C5A60S2单片机作为主控芯片实现了PID电机调速控制器。传感器采用欧姆龙的200线编码器。电机驱动模块采用L298N,使用LM2596来对电机供电。设计中的重点是电机转速的获取和基于PID的电机控制算法的实现。 [C] 纯文本查看 复制代码 //******************频率测量函数*****************void hight_frequency(){h_count=0; //脉冲计数初值为0EX0=1; //INT0中断允许,开始计数TR1=1; //启动定时器1while(EX0); //等待外部中断0关闭TR1=0; //关T1中断h_count=(h_count-1)*50; //得到实际频率,因为定时器计数的是20ms的个数所以此处乘50,即为1sSpeed=h_count/200; //获取电机转速,此处采用200线编码器if((Speed>300)||(Speed<0))Speed=0;SpeedTable[0]=0x30+(Speed/100); SpeedTable[1]=0x30+(Speed%100/10); SpeedTable[2]=0x30+(Speed%10); SpeedTable[3]=0x20; }[C] 纯文本查看 复制代码 /*****INT0中断函数***/ void Int0_Routine(void) interrupt 0 {h_count++; //高频计数脉冲加1} [C] 纯文本查看 复制代码 //**************内部定时器T1中断******void Timer1_Routine() interrupt 3{TH1=0xb1;TL1=0xe0; //重装初值EX0=0; //20ms定时结束,停止计数}[C] 纯文本查看 复制代码 //**********PID算法******long int PID(int setpoint,int achieved){long int result,TempResult;en=setpoint-achieved;ErrorNum=p*en-i*(en-en1)+d*(en1-en2);TempResult=(long int)(ErrorNum/20);result=TempResult;en2=en1;en1=en;return result;} STC12C5A60S2主控板 焊接完成后的主控板 传感器和电机连接部分,直接上胶枪,简单粗暴! 运行中的12864显示结果 PID测速.zip (113.09 KB ) |
|
相关推荐
1 条评论
51个回答
|
|
不错,顶。。。。。
|
|
|
|
cool....
|
|
|
|
谢谢帮顶
|
|
|
|
以后争取做出更好的作品回报论坛的网友们
|
|
|
|
好东西,最近一直想做这么个玩意。
|
|
|
|
这个是最简单的增量式PID。
|
|
|
|
这个最多也就验证一下PID的原理,过几天可能会研究研究模糊控制。
|
|
|
|
|
|
围观ing
|
|
|
|
请教下这位哥哈 你这P I D 这三个参数是怎么整定的呢
|
|
|
|
一点一点试出来的。
|
|
|
|
|
|
|
|
楼主你好,TempResult=(longint)(ErrorNum/20); 这里为什么要除以20 有点不太理解
|
|
|
|
楼主你好,TempResult=(longint)(ErrorNum/20); 这里为什么要除以20 有点不太理解
|
|
|
|
为了缩小计算出来的误差而已,你可以试着把这个值改打或改小
|
|
|
|
好的 谢谢你
|
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1099浏览 3评论
568浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2300浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1855浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 17:07 , Processed in 1.689486 second(s), Total 92, Slave 82 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号