找时间把项目整理了一下,添加了一些具体的东西。具体实现功能及应用场景请参照我的上一篇文章:
话不多说,直接上干货~
加了一些新的东西:
关于如何停止电机的运作,可以通过在上下位置都安装限位器来实现。
平台顶部和底部加装限位器,当平台压到限位器时触发电平变化;
通过检测这个电平变化来判断平台是否下降到位。
void test(void)
{
adc_value;
flag=0; //标志位
/*逻辑部分*/
if(外部电平 == 0)
{
if(flag == 0)
{
;
}
else
{
flag=1; //物品拿开,平台上升
}
if(外部电平 == 1)
{
flag=2; //物品放下,平台下降
}
/*功能实现部分*/
if(flag == 1)
{
if(上限位器=高电平)
{
+reset();
-reset(); //平台停止
}
else
{
+reset(); //平台停止
-reset();
}
}
else if(flag == 2)
{
+set();
-reset(); //平台下降
if(下限位器=高电平)
{
+reset();
-reset(); //平台停止
}
}
else
{
+reset(); //平台停止
-reset();
}
}