失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 自己写的电机驱动机械锁单片机程序+限位+可升级无线和蓝牙红外线控制

自己写的电机驱动机械锁单片机程序+限位+可升级无线和蓝牙红外线控制

时间:2019-02-25 03:07:21

相关推荐

自己写的电机驱动机械锁单片机程序+限位+可升级无线和蓝牙红外线控制

TB@@@2.9元买个几个小电机锁,无任何电路驱动部分,金属减速箱力量很大,手弄不不停。只是一直没写程序直接3.6V电就能转,但是用来开锁没程序控制不行,一直转会打坏齿轮。。。。 就几根线就不画电路图了,L298直驱就行。

制作出来的实物图如下:

//电机锁单片程序///

#include<AT89x51.H>

#define uint unsigned int //重定义无符号整数类型

#define uchar unsigned char //重定义无符号字符类型

/******************* 驱动接线定义**************************************/

#define Left_moto_go {P0_0=1,P0_1=0;} //正转

#define Left_moto_back {P0_0=0,P0_1=1;} //反转

#define Left_moto_Stop {P0_0=0,P0_1=0;} //停转

sbit k1=P1^0;//正转按键

sbit k2=P1^1;//反转按键

sbit D1=P1^2;//正转限位1

sbit D2=P1^3;//反转限位2

bit kk=1;//正转标志位

bit kk2=1;//反转标志位

/************************************************************************/

//延时函数

void delay(unsigned int k)

{ unsigned int x,y;

for(x=0;x<k;x++)

for(y=0;y<2000;y++);

}

void keyscan()

{

if(k1==0)

{

kk=0;//正转标志位

}

if(k2==0)

{

kk2=0; //反转标志位

}

}

/****************************主函数*****************************************/

void main(void)

{

while(1)

{

keyscan();//按键

/////////////////////////正转开锁//////////////////////////////////////////

if(kk==0)

{

Left_moto_go; //正转

if(D1==1)//限位1

{

Left_moto_back;//正转、、回转一点松开限位

}

else

{

Left_moto_Stop

kk=1;

}

}

////////////////////////反转上锁//////////////////////////////////////////

if(kk2==0)

{

Left_moto_back; //反转

if(D2==1)//限位1

{

Left_moto_go;//正转、、回转一点松开限位

}

else

{

Left_moto_Stop

kk2=1;

}

}

}

}

复制代码

全部资料51hei下载地址:

STC89电机锁控制OK1.zip(32.53 KB, 下载次数: 16)

如果觉得《自己写的电机驱动机械锁单片机程序+限位+可升级无线和蓝牙红外线控制》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。