标题: 自己写的电机驱动机械锁单片机程序+限位+可升级无线和蓝牙红外线控制 [打印本页]

作者: 冰冰洁洁    时间: 2019-1-13 16:03
标题: 自己写的电机驱动机械锁单片机程序+限位+可升级无线和蓝牙红外线控制
TB@@@2.9元买个几个小电机锁,无任何电路驱动部分,金属减速箱力量很大,手弄不不停。只是一直没写程序直接3.6V电就能转,但是用来开锁没程序控制不行,一直转会打坏齿轮。。。。 就几根线就不画电路图了,L298直驱就行。

制作出来的实物图如下:


//电机锁单片程序///
  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, 下载次数: 39)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1