最近接了一个项目,是做一个绕线机,一般用来绕变压器线圈,已经基本做好了,原理并不难,就是根据你输入的一些参数,比如漆包线的直径以及每一层的圈数还有就是一共要绕多少圈,然后由控制器控制步进电机根据光电传感器的信号来回运动,已达到均匀绕线的目的。
其实这个项目拖了很长时间,因为自己拖延症太严重,而且中间又发生了很多事情,导致项目中间耽搁了很久,还好甲方没有在意,也没有太催我,上周终于下定决心要结束了这个项目,于是就用了一个下午还有晚上的时间完成了这个项目,因为手头没有合适的漆包线,于是就用了直径较细的焊锡丝代替,经过测试效果很好,因为步进电机的转动是通过细分的,所以可以做到很精细的控制,经过测试,精度可以达到0.0035mm,而甲方的要求是0.01mm,也算是完全符合要求了,于是我就把测试视频发给了甲方,甲方首先给予了肯定(那是必然呀,哈哈哈哈),然后给我发了一个红包,我一个疑惑,然后他就提出了一个新的需求,就是希望能够做到反转退线的功能,并且这种情况下能做到减计数。
我思考了一下,觉得是可以做到的,用一个光电传感器是可以判断转动的次数,那用两个光电传感器就可以判断次数和转动方向,原理是根据两个光电传感器被遮挡的先后来判断转动方向,例如光电1先被遮挡,然后光电2又被遮挡,则认为是正转,反之则认为是反转,理论可行,就差一个实践了,于是就修改了一下硬件(因为第一版硬件只留出了一个光电接口,而且少画了一个二极管),又发去打了一次板,板子还没到,所以也还没开始验证,应该是可以的,所以就等之后板子到了再验证下。
板子已经到了,经过验证,完全没问题,算是满足了甲方所有的要求,很开心,也收到了剩下的款项,基本这个项目是告一段落了;
下边是关于这个算法的程序:
1 | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) |
基本上判断正反转的关键的代码都在这个中断程序里边了,这个程序已经验证过了,确保是没有问题的。
不得不说,这个甲方很好!