设计规格:
输入 DC5V
输出 5V
申请的物料及用处:
HY1202S 作为电机驱动的下管,导通到地,HY1303作为备选。
HY12P03S 作为电机驱动的上管,接到电压VCC,HY15P03S 作为备选。
单片机提供四个管的开关信号,驱动电机的前进后退,加减速。
设计规格:
输入 DC5V
输出 5V
申请的物料及用处:
HY1202S 作为电机驱动的下管,导通到地,HY1303作为备选。
HY12P03S 作为电机驱动的上管,接到电压VCC,HY15P03S 作为备选。
单片机提供四个管的开关信号,驱动电机的前进后退,加减速。
经过一个下午的焊接,终于焊好了两块,下班回来今天去工厂忙去了,都还没有空折腾。先上图,,,、
手工焊接,水平有限,一般般,能用就行,也没空去用洗板水清洁一下了。。。。
正面
背面
今晚吃了饭,回来就想折腾一下,但是焊好都没进行开短路测量,先用一个小负载的烧录器连接吧,由于输出电流有效,就算有什么问题也不会烧了,,,,
结果一接上USB供电,果然,系统没起来,连下载器的LED灯都没亮起来,再把一个老古董的万用表请出来,电源一一量,没有短路啊,怎么上电就是不行呢、。
继续检查电源部分,发现LDO AS1117居然接反了,
再打开原理图,PCB进行对照,原理图正确啊,难道是封装管脚定义错了???
说明一下,为了不做这么多封装,从网上下了一个PCB进行提取的库。。。
回头一看还真是封装的1脚位置和我原理图的1脚没对应上,郁闷啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊。
见下图的LDO 117,明天把它翻个身就算了,就可以把1脚和3脚换过来了,,,,,,
明天换过来,再烧个程序试试,
教训:
使用别人的库一定还要检查自己的原理图和库的管脚次序是否对应,特别是二极管,LED,三极管,SOT-23封装的器件,,,,,,
驱动板测试部分:
1,PWM测试
使用Time1和Time3的四个通道进行控制H桥的四个mos管,进行开关,通过设置不同的通道之间的占空比,来实现电机控制。。
下图是电机在反向加速时候的上管波形,由于上管关闭,导致部分悬浮,从而导致波形变形。。。。
下面是电机正转时候上管的波形。。。。。波形很正常,现在测试的频率是1Khz的。。
下图是通过了电阻分压,加10uf+0.1uf电容进行滤波后,电机处于循环减速的电机端电压,这个是用来给ADC进行采样,从而监控电机的转速,,,,
下图是测试不同占空比下,滤波后电压纹波的情况,基本控制在200mv以内,到时候进行多次采样进行数字滤波就可以采集到不同占空比下输出电机端电压,从而使用PID去进行调整有刷电机的转速。。。。
后期的工作,是使用串口进行设置电机转速和输出设置速度和实际转换出来转换速度,,,,,,,,,
把PID算法植入,控制电机可以根据设置转速进行转动既可以完成设计任务,,
今天调试了PID控制,使用的是最简单的只有比例的控制算法,算是简约版吧,但是从测试的情况来看还不错,大概经过4-7次的PID调整就可以达到稳态了,(设置PWM后延时时间不同,PID调整次数不同)
上图,
以下是今天测试的结果,驱动一个小马达而且,而且用手阻挡转动叶片作为负载不同进行了测试,转速可控,而且稳态后调整次数控制在2次以内,,,,
系统是使用5V供电,通过一个稳压模块进行稳压供电,驱动一个小电机,
电机和主板特写
以下是bug调试的图片
第一次PID进行补偿,误差很大,所以输出的DerrorPWM补偿很大,
当输入的误差errorVot很小在20mV以内的时候,PWM不在配置新的参数,,
怎么进行视频连接来着,不太记得了,,,
使用下面连接进去看视频吧,怎么增加不了视频连接了呢。。。。。
欢迎点击上面视频
今晚测试串口发送数据控制电机的转速,测试图片以及视频见下图
定义的串口接收缓存数组的各个为定义
测试过程中的观察窗口数据
通过串口发送数据以及打印出来的数据
麻烦各位到以下地址观看吧,或者明天让天边给我上传上去,,,,
观看地址:http://v.youku.com/v_show/id_XMzI4OTEzMDYzMg==.html?spm=a2hzp.8244740.0.0
结贴咯。。。。。
结贴咯。。。。。
结贴咯。。。。。
结贴咯。。。。。
经过一个多月的调试,今天终于迎来了结贴的时刻,,,
最后把测试的串口打印信息发来一起分享。。。
今天使用的是12V的大电机,已替换前几次的小米电机,肌肉秀秀
由于还是使用5V进行供电,所以在低占空比的时候误差有点大,而且过低占空比(直接关系到电机的两端电压过低。10%占空比,电机两端电压约为0.5V,很难可以驱动一个12V电机)
以下测试分别设置占空比为10%,12%,14%,但是软件通过PID调整可以调整到一定的误差内达到稳态。。。。。每一次打印PID调整后占空比就是通过了一次PID调整
从正转18%到反向81%的转速变化极大的情况下,PID调整次数也很少。。。。
串口设置的部分定义,,,,,,0x18f=(399+1)/800=50%
再次通过修改转向数据,电机的动态好不错,立马就可以进入到稳态了,,,,,,,
最后感谢后羿的活动,以及提供的样品,让我进行了一次对电机驱动的软硬件的制作,也算刚刚入了门的小白了(以前都是做控制系统,ARM,FPGA指之类的核心控制主板,主要和信号,控制打交道,对电机,功率接触不多,,,,,,);