大致功能要求就是检测转轮的圈数,和设定值相比较,当前值和设定值相同即控制继电器停止电机。考虑到轮子转动的惯性问题,所以添加一个1602显示当前值和设定值,直观明了。
系统框图1.单片机
既然对实际工作条件要求不苛刻,又想尽量压低成本,那就用只有在学校最常见51吧(大神勿喷,我以前去过一家做医疗器械的公司,温控单元用的就是51系列,对此我只能说存在即合理),懒得动手焊从网上买的最小系统板。
2.脉冲检测圈数检测我用的是很常见的霍尔元件,去五金市场买了块磁铁,固定在轮子上用以产生脉冲。
3.1602显示矩阵键盘设定值及当前值这地方开始遇见点小问题,矩阵键盘用的是带数字4*3那种,按一次键改变一下输入位置,开始想通过写指令码实现但效果不尽人意,遂另谋它法,新加一个TIme变量用以记录按键次数,同样能达到循环输入的效果,而且省去了再去读取1602 SV值的麻烦(因为SV和CV要做比较),可谓一举两得!
4.继电器这个就更没什么好说的了,继电器仅开关而已,需要注意的就是最好单独供电,我实验时从单片机引脚取电,不太规范。
整体效果图总结
编程逻辑和细节是基础,灵活的思维和良好的算法非常重要。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)