完善资料让更多小伙伴认识你,还能领取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个回答
|
|
恭喜,准备找个时间移植到STM32上
|
|
|
|
恩恩 加油 ,你真是太厉害了
|
|
|
|
问下 比如你设定的值为100,测出的值为100,那么这一百代表什么,是什么意思?
|
|
|
|
额。。我感觉他是不是写错了啊。。。你说的那个才是增量式PID啊。。
|
|
|
|
楼主能发一下你的PID整定的参数么。。怎么你的速度反馈前面系数是i啊
|
|
|
|
i对应的en的积分,是累加
|
|
|
|
这个好早的程序了,都忘了怎么写的了,老师给的算法,自己直接用的
|
|
|
|
差一点来吐槽,哎,以为缺文件,哪知道是KEIL4的,心里吐槽一下自己,顺便回复,,哎,,,
|
|
|
|
谢谢楼主的好的分享
|
|
|
|
正在搞PID玩玩儿,资料参考一下。谢谢楼主。
|
|
|
|
有伺服驱动开发工程师的萝卜没?来填哦。 为50464302 深圳
|
|
|
|
谢谢楼主分享!!!
|
|
|
|
只有小组成员才能发言,加入小组>>
2970 浏览 9 评论
2687 浏览 16 评论
3212 浏览 1 评论
8426 浏览 16 评论
3770 浏览 18 评论
6950浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7449浏览 3评论
6950浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5798浏览 3评论
9370浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-18 15:12 , Processed in 0.740738 second(s), Total 58, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号