TB@@@2.9元買個幾個小電機鎖,無任何電路驅動部分,金屬減速箱力量很大,手弄不不停。只是一直沒寫程序直接3.6V電就能轉,但是用來開鎖沒程序控制不行,一直轉會打壞齒輪。。。。 就幾根線就不畫電路圖了,L298直驅就行。
制作出來的實物圖如下:
15473660249160.6806892886438327.jpg (317.25 KB, 下載次數: 95)
下載附件
2019-1-13 15:55 上傳
20190113_154526.jpg (323.28 KB, 下載次數: 97)
下載附件
2019-1-13 15:54 上傳
20190113_154518.jpg (340.98 KB, 下載次數: 93)
下載附件
2019-1-13 15:54 上傳
20190113_154559.jpg (333.2 KB, 下載次數: 112)
下載附件
2019-1-13 15:54 上傳
//電機鎖單片程序///
- #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, 下載次數: 39)
2019-1-13 15:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|