标题:
单片机智能窗帘的单片机程序,怎么实现开启1/2窗帘
[打印本页]
作者:
xiaoxiaov5
时间:
2018-6-13 19:39
标题:
单片机智能窗帘的单片机程序,怎么实现开启1/2窗帘
怎么用delay实现 窗帘开启1/2 且让电机随时停止
#include<reg52.h>
#define uchar unsigned char
sbit D0 = P2^0;
sbit D1 = P2^1;
sbit D2 = P2^2;
sbit K1=P3^0;
sbit K2=P3^1;
sbit IN1=P1^0;
sbit IN2=P1^1;
void delay(unsigned int z);
void run(void)
{
IN1=0;
IN2=1;
}
void stop(void)
{
IN1=0;
IN2=0;
}
void back(void)
{
IN1=1;
IN2=0;
}
void main(void)
{
uchar flag=0;
P2=0x08;
while(1)
{
if(D1==1)
{
if(D1==1)
{
flag++;
if(flag==3)
{
flag=0;
}
while(D1);
}
switch(flag)
{
case 1:
back();
D1=0;
delay(5000);
stop();
break;
case 2:
back();
D1=0;
break;
}
}
if(D2==1)
{
if(D2==1)
{
flag++;
if(flag==3)
{
flag=0;
}
while(D2);
}
switch(flag)
{
case 1:
run();
D2=0;
delay(5000);
stop();
break;
case 2:
run();
D2=0;
break;
}
}
if(K1==0||K2==0)
{
stop();
}
if(D0==1)
{
while(D0==1)
{
stop() ;
}
}
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
作者:
yzwzfyz
时间:
2018-6-14 05:10
不是程序如何写?而是你如何构思窗帘的起、停。
作者:
zhanghyg
时间:
2018-6-14 09:02
你要用时间控制的话很难到1/2的,最好的办法就是在1/2的位置加个传感器做限位。
作者:
17854168230
时间:
2018-6-14 09:47
中间加一个继电器来控制
作者:
ahshmj
时间:
2018-6-14 10:48
如果你是用步进电机作动力,通过控制运行的步数可以实现。
作者:
dzbj
时间:
2018-6-14 13:13
用时间 至少要有起点和止点开关 每次都从止点或起点开始计时 运行全行程的一半时间
用步进电机 起点脉冲数清零 到终点的一半就是1/2
用角度传感器 计算旋转多少度折算成距离
用码轨 总计多少个脉冲 走一半就是1/2
用编码器或者码盘
还有更高级的 用个红外测距头模块 读距离
等等 等等
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1