STC单片机简单控制直流电机正反转
生活随笔
收集整理的這篇文章主要介紹了
STC单片机简单控制直流电机正反转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在研究智能小車,簡單研究了一下單片機簡單控制直流電機正反轉,一開始想著用單片機直接控制,結果失敗了。
原因是:雖然I/O口輸出的電壓也是5V,但輸出的電流太小,以致輸出功率太小,不足以驅動電機工作。因此,想要電機工作,需要驅動芯片,這里我選擇了L293D,插拔式芯片,如圖:
引腳圖:
注意:引腳4,5,12,13都是互相連通的,所以只需要一個引腳接地即可。
真值表:
想控制電機正反轉,我們這里只用到了兩個輸入端。
與單片機的連接過程:
| 單片機 | L293D |
| P1^0 | 引腳1,EN使能端 |
| P1^1 | 引腳2,1A,信號的輸入端1 |
| P1^2 | 引腳7,2A,信號的輸入端2 |
| 單片機的地端 | 引腳4,5,接地 |
| 單片機電源 | 引腳8,16接電源VCC |
| ? | 引腳3,6為信號的輸出端,分別接在直流電機的兩側,不需要和單片機相連 |
| ? | ? |
代碼如下:
#include <reg51.h>sbit EN = P1^0; // 電機輸入輸出1,2 sbit IN1 = P1^1; // 輸入1 sbit IN2 = P1^2; // 輸入2 sbit key1=P3^5; sbit key2=P3^4;void delay();void main() {EN=1;IN1=0;IN2=0;while(1){ if(key1==0){delay();{if(key1==0){IN1=1;IN2=0;}while(key1==0);}}if(key2==0){delay();{if(key2==0){IN1=0;IN2=1;}while(key2==0);}}} }void delay() {int i,j;for(i=0;i<10;i++){for(j=0;j<100;j++);} }效果展示這里就不展示了,因為傳不了視頻,這個是為了手機通過WIFI模塊控制直流正反轉做鋪墊的。期待學習能一直堅持下去。
我把我的硬件電路給大家看看吧:
然后我也在protues上進行了仿真,就用上面的代碼,效果是一樣的,要注意的是仿真圖中的引腳布局和實物L293D的引腳分布不一樣,需要大家注意一下。
總結
以上是生活随笔為你收集整理的STC单片机简单控制直流电机正反转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简历中的自我评价怎么写?
- 下一篇: 微信接口验证类php,微信公众平台消息接