单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 394|回复: 0
收起左侧

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

[复制链接]
冰冰洁洁 发表于 2019-1-13 16:03 | 显示全部楼层 |阅读模式
TB@@@2.9元买个几个小电机锁,无任何电路驱动部分,金属减速箱力量很大,手弄不不停。只是一直没写程序直接3.6V电就能转,但是用来开锁没程序控制不行,一直转会打坏齿轮。。。。 就几根线就不画电路图了,L298直驱就行。

制作出来的实物图如下:
15473660249160.6806892886438327.jpg 20190113_154526.jpg 20190113_154518.jpg 20190113_154559.jpg

//电机锁单片程序///
  1. #include<AT89x51.H>
  2. #define uint    unsigned int                          //重定义无符号整数类型
  3. #define uchar   unsigned char                         //重定义无符号字符类型
  4. /******************* 驱动接线定义**************************************/
  5. #define Left_moto_go      {P0_0=1,P0_1=0;}    //正转
  6. #define Left_moto_back    {P0_0=0,P0_1=1;}    //反转
  7. #define Left_moto_Stop    {P0_0=0,P0_1=0;}    //停转  


  8. sbit k1=P1^0;//正转按键
  9. sbit k2=P1^1;//反转按键

  10. sbit D1=P1^2;//正转限位1
  11. sbit D2=P1^3;//反转限位2


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


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

  14. /************************************************************************/      
  15. //延时函数      
  16.    void delay(unsigned int k)
  17. {    unsigned int x,y;
  18.          for(x=0;x<k;x++)
  19.            for(y=0;y<2000;y++);
  20. }
  21. void keyscan()
  22. {
  23. if(k1==0)
  24. {
  25. kk=0;//正转标志位               
  26.         }

  27. if(k2==0)
  28. {  
  29. kk2=0;        //反转标志位      
  30.         }           
  31. }


  32. /****************************主函数*****************************************/                 
  33.         void main(void)
  34. {

  35.         while(1)                                                      
  36.             {
  37.                    keyscan();//按键
  38.                               
  39. /////////////////////////正转开锁//////////////////////////////////////////                              
  40. if(kk==0)
  41.          {
  42.   Left_moto_go;         //正转
  43.         if(D1==1)//限位1
  44.         {      
  45.         Left_moto_back;//正转、、回转一点松开限位               
  46.         }
  47.         else
  48.         {
  49.         Left_moto_Stop      
  50.                
  51.         kk=1;      
  52.         }      
  53. }      
  54. ////////////////////////反转上锁//////////////////////////////////////////         
  55. if(kk2==0)
  56.          {
  57.   Left_moto_back;         //反转
  58.         if(D2==1)//限位1
  59.         {      
  60.         Left_moto_go;//正转、、回转一点松开限位               
  61.         }
  62.         else
  63.         {
  64.                
  65.                 Left_moto_Stop
  66.           kk2=1;      
  67.         }      
  68. }               
  69. }
  70. }      
复制代码

全部资料51hei下载地址:
STC89电机锁控制OK1.zip (32.53 KB, 下载次数: 8)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51hei电子论坛2群 联系QQ:125739409;技术交流QQ群219535678

Powered by 单片机教程网

快速回复 返回顶部 返回列表