實(shí)驗(yàn)7 直流減速電機(jī)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
小時(shí)候玩過四驅(qū)車的同學(xué)應(yīng)該都接觸過馬達(dá),馬達(dá)是一種直流電機(jī),馬達(dá)上有兩個(gè)銅片,同干電池正負(fù)極分別連接兩個(gè)銅片,馬達(dá)就可以轉(zhuǎn)起來了。把干電池反過來接銅片,馬達(dá)就反轉(zhuǎn)了。今天我們要學(xué)習(xí)的是控制TT馬達(dá),是一種直流減速電機(jī),所謂減速就是在馬達(dá)上裝了減速箱,速度降低了,扭矩變大了。TT馬達(dá)如下圖所示。
如果跟電機(jī)通上的電源能像PWM那樣調(diào)節(jié)占空比,那電機(jī)就能實(shí)現(xiàn)調(diào)速功能。然后單片機(jī)的引腳輸入電流大小有限,不足以使電機(jī)轉(zhuǎn)動,所以我們將使用一種器件,叫做電機(jī)驅(qū)動模塊。我們今天要使用的是L298N電機(jī)驅(qū)動模塊,如下圖所示。
L298N電機(jī)驅(qū)動模塊有如下幾個(gè)接口,供電正極端子接的電源不能單片機(jī)的供電正極共用,我們用7.4V給它供電;接地端子和單片機(jī)共用GND;ENA、ENB的插的跳線帽要取下來,連接STM8的PWM口,IN1~IN4連接STM8的IO口;OUT1、OUT2接電機(jī)的兩個(gè)銅片,OUT3、OUT4接另一個(gè)電機(jī)的兩個(gè)銅片??梢钥闯鯨298N電機(jī)驅(qū)動模塊可以控制兩路電機(jī),每一路電機(jī)可以并聯(lián)很多個(gè)電機(jī),OUT1、OUT2在電機(jī)驅(qū)動模塊功率允許的條件下可以接多個(gè)直流電機(jī)。
ENA、IN1、IN2控制OUT1、OUT2的輸出;
ENB、IN3、IN4控制OUT3、OUT4的輸出。
ENA接收的PWM信號控制電機(jī)的轉(zhuǎn)速,占空比越大,電機(jī)轉(zhuǎn)速越快。IN1、IN2的高低電平組合控制電機(jī)的轉(zhuǎn)向。
電機(jī)轉(zhuǎn)向控制如下表。
一、庫函數(shù)1、打開DAHUME MINI.stw文件;
2、在STVD左側(cè)Workspace窗口Source Files目錄下找到main.c,雙擊打開;
3、編寫如下代碼;
#include "main.h"
#define IN1PC1
#define IN2PC2
#define IN3PC3
#define IN4PC4
#define zuo1
#define you2
void setup(void)
{
delay(10);
CLOCK(_16MHz);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
PWM3_init(10, 100);
//_asm("rim");//rim為打開總中斷,sim為關(guān)閉總中斷
}
void go(unsigned char speed)
{
digitalWrite(IN1, HIGH);digitalWrite(IN3, HIGH);
digitalWrite(IN2, LOW);digitalWrite(IN4, LOW);
PWM3(zuo, speed);PWM3(you, speed);
}
main()
{
setup();
while (1)
{
go(50);
}
}
#define是C語言的關(guān)鍵字,是宏定義。#define名詞1名詞2是表示用名詞1代替名詞2,名詞2可以為地址、寄存器、變量名、數(shù)值、函數(shù)等,宏定義的作用之一是助記。
二、練習(xí)1、按照《綜合練習(xí)1循跡小車》,組裝循跡小車;
2、參照go函數(shù),編寫back、left、right函數(shù),left、right效果是原地左轉(zhuǎn)、右轉(zhuǎn);
3、編寫stop函數(shù),參數(shù)作為停止持續(xù)時(shí)間;
4、調(diào)用以上函數(shù),實(shí)現(xiàn)小車走三角形、長方形、梯形、五邊形路徑。