要实现的功能是电机的上行和下行....通过一个霍尔元件来判断是在顶部还是在底部(在设备的顶部和底部都会安装一个磁铁的)
当然电机的行走是单片机控制的....
在程序里我是这样写的,上行状态时,如果检测到有霍尔元件信号就算是到了顶部位置.
下行状态时,如果检测到有霍尔元件信号就算是到了底部位置.
正常情况下都可以正常工作...但是当出现异常.比如突然断电时...并且电机又刚好停止在顶部位置,,,...这应该如何处理...因为只有一个霍尔元件,并且单片机刚启动后所以数据都清空了..要如何判断这个位置是顶部而不是底部呢???
有没有哪位前辈有做过类似的程序...能不能指点一下?小弟的QQ:183770398..谢谢指点啊!!!!
我目前有一个想法,就是让单片机在启动时就让电机下行500ms...那么,如果在顶部这500ms应该离开了顶部的霍尔元件位置; 如果在底部..电机动不了.还在位置上就是真正的底部了...但是这种办法如果真在底部这500ms下行,因为是堵转的..电流可能比较大.......这方法可能不太可靠.....希望能得到大家的帮助...谢谢!!! |