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