“SKU:RB-01C115 多模式電機(jī)驅(qū)動(dòng)板”的版本間的差異

來(lái)自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
第1行: 第1行:
?
[[文件:RB01C115010.png|500px|縮略圖|右]]
+
[[文件:RB01C115001.png|500px|縮略圖|右]]
 
==產(chǎn)品概述==
 
==產(chǎn)品概述==
?
產(chǎn)品為一個(gè)多功能驅(qū)動(dòng)板,可以驅(qū)動(dòng)電機(jī)、四線兩相步進(jìn)電機(jī)、舵機(jī),外觀是 Arduino 盾板,排座設(shè)計(jì),Arduino 控制器連接電機(jī)驅(qū)動(dòng)板的同時(shí),不影響傳感器擴(kuò)展板的連接,板載串行、IIC等常用通信接口,電機(jī)轉(zhuǎn)向指示燈,解決 Arduino UNO 控制器 IO 接口驅(qū)動(dòng)能力弱,不能直接驅(qū)動(dòng)電機(jī)或大扭力舵機(jī)的問(wèn)題,電機(jī)及外部供電接口采用防插反接頭,避免由于接線錯(cuò)誤造成的產(chǎn)品損壞。
+
多模式電機(jī)驅(qū)動(dòng)板為奧松最新研發(fā)的一款無(wú)需編程控制的大功率電機(jī)驅(qū)動(dòng)板,可以同時(shí)驅(qū)動(dòng)兩個(gè)直流電機(jī)。每個(gè)通道最大電流為10A。輸入電壓范圍6-24V,支持5-18節(jié)鋰電池供電。
 +
多模式電機(jī)驅(qū)動(dòng)板有四種工作模式可供選擇。模擬輸入模式、R/C輸入模式 、簡(jiǎn)易串口模式和封包話串口模式。通過(guò)板載撥碼開(kāi)關(guān)不同方式的組合在不同模式下切換,實(shí)現(xiàn)機(jī)器人創(chuàng)意開(kāi)發(fā)。多模式電機(jī)驅(qū)動(dòng)板無(wú)需編程即可完成同時(shí)控制或單獨(dú)控制兩路直流電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,在機(jī)器人運(yùn)動(dòng)或者輪式移動(dòng)平臺(tái)的開(kāi)發(fā)上降低了開(kāi)發(fā)難度和成本。一塊多模式電機(jī)驅(qū)動(dòng)板及其豐富的功能,即可讓機(jī)器人創(chuàng)意變得更多可能。
 +
具有以下特點(diǎn):
 +
# 模式可獨(dú)立使用也可混合使用
 +
# 同步再生驅(qū)動(dòng)
 +
# 開(kāi)關(guān)頻率高(超出人耳聽(tīng)力范圍)
 +
# 過(guò)熱和過(guò)流保護(hù)
 +
# 多種操作模式
 
==規(guī)格參數(shù)==
 
==規(guī)格參數(shù)==
?
# 產(chǎn)品貨號(hào):RB - 01C115
+
# 工作電壓:6V-24V
?
# 電機(jī)驅(qū)動(dòng)芯片:L298P
+
# 接口類型:傳感器3P接口
?
# 外部供電范圍:7V - 35V
+
# 輸出信號(hào):數(shù)字信號(hào)
?
# 外形特點(diǎn):Arduino UNO 盾板
+
# 控制模式:模擬輸入模式、R/C模式、簡(jiǎn)易的串口模式、封包話串口模式
?
# 外形尺寸:70 * 56mm
+
# 產(chǎn)品尺寸:72.747mm x47.244mm
?
# 擴(kuò)展接口
+
# 固定孔尺寸:64.111mm x 38.608mm
?
* 電機(jī)接口 * 2 個(gè)
+
# 重量大?。?0g
?
* 外部供電接口 * 1 個(gè)
+
?
* UART 接口 * 1 個(gè)
+
?
* IIC 接口 * 1 個(gè)
+
?
* 數(shù)字接口 * 14 個(gè)
+
?
* 模擬接口 * 6 個(gè)
+
?
# 電源指示燈:紅色
+
?
# 電機(jī)轉(zhuǎn)向指示燈:4 個(gè)(紅色 * 2 個(gè),綠色 * 2 個(gè))
+
?
==接口示意圖==
+
?
[[文件:RB01C11502.png|700px|縮略圖|居中]]
+
?
* 接口說(shuō)明:
+
?
[[文件:RB01C11503.png|300px|縮略圖|左]]
+
?
(1)Vin 接口<br/>
+
?
當(dāng)外部供電范圍在 7V - 12V 之間時(shí),將此處連接,Arduino UNO 可以直接從電機(jī)驅(qū)動(dòng)板上取電,默認(rèn)為連接狀態(tài)。<br/>
+
?
當(dāng)外部供電范圍在 12V - 35V 之間時(shí),需要將 Vin 斷開(kāi),Arduino UNO 控制器需要單獨(dú)供電,不能從電機(jī)驅(qū)動(dòng)板上取電。<br/>
+
?
當(dāng) Arduino UNO 控制器使用 DC 接口供電 7V - 12V 之間時(shí),將此處連接,電機(jī)驅(qū)動(dòng)板可以直接從 Arduino UNO 控制器上取電。<br/>
+
  
?
(2)SNS0、SNS1 接口<br/>
 
?
將兩組排針?lè)謩e連接時(shí),A0、A1 接口會(huì)被占用,分別讀取 L298 的輸出電流。<br/>
 
?
將兩組排針?lè)謩e斷開(kāi)時(shí),A0 、 A1 不會(huì)被占用。<br/>
 
  
?
<br/>
+
===引腳定義===
?
<br/>
+
* B-:電源負(fù)極
?
<br/><br/><br/>
+
* B+:電源正極
?
==使用方法==
+
* M1A:電機(jī)1正向接口
?
===驅(qū)動(dòng)兩路電機(jī)===
+
* M1B:電機(jī)1反向接口
?
* 實(shí)驗(yàn)硬件
+
* M2A:電機(jī)2正向接口
?
# 直流減速電機(jī) * 2個(gè)
+
* M2B:電機(jī)2反向接口
?
# Arduino UNO 控制器 * 1個(gè)
+
* S1:信號(hào)1輸入端
?
# 7.4V 1200mAh 鋰電池 * 1個(gè)
+
* S2:信號(hào)2輸入端
?
# Arduino 程序下載線 * 1條
+
  
?
* 實(shí)物連接圖
+
==操作模式概述==
?
[[文件:RB01C11504.png|600px|縮略圖|居中]]
+
1.模擬輸入模式 <br/>
?
* 例子程序
+
模擬輸入模式可以通過(guò)一個(gè)或者兩個(gè)模擬輸入控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。模擬輸入電壓范圍0-5V。這使得多模式電機(jī)驅(qū)動(dòng)板可以通過(guò)電位計(jì)或者單片機(jī)輸出的PWM控制。<br/>
?
<pre style='color:blue'>#define PWA 3
+
2.R/C輸入模式<br/>
?
#define PWB 11
+
R/C輸入模式可采用兩個(gè)標(biāo)準(zhǔn)的R/C通道,并通過(guò)接收的信號(hào)控制電機(jī)的轉(zhuǎn)速和方向??刂破骶哂幸粋€(gè)超時(shí)的設(shè)置。當(dāng)暫停啟用時(shí),電機(jī)驅(qū)動(dòng)器將關(guān)閉信號(hào)的損失。這是為了安全,并防止機(jī)器人運(yùn)行時(shí)會(huì)遇到的干擾,當(dāng)使用無(wú)線電控制器控制驅(qū)動(dòng)器的時(shí)候。如果超時(shí)命令被禁用,電機(jī)驅(qū)動(dòng)器將繼續(xù)執(zhí)行上一個(gè)命令的速度和方向,直到下一個(gè)命令。這使得多模式電機(jī)驅(qū)動(dòng)板容易容易接口其他低速控制器。<br/>
?
#define DIRA 12
+
3.簡(jiǎn)易的串口輸入模式<br/>
?
#define DIRB 13
+
簡(jiǎn)易的串口模式使用TTL電平串口RS-232數(shù)據(jù)設(shè)定電機(jī)速度和方向。這種模式可以連接到PC或者單片機(jī)。<br/>
?
#define BRAKEA 9
+
簡(jiǎn)易的串口模式使用的是8N1串口協(xié)議(8位數(shù)據(jù)字節(jié),無(wú)奇偶校驗(yàn),1停止位)控制馬達(dá)的速度和方向。TTL邏輯電平為0V,5V。簡(jiǎn)易串口模式控制為單向的控制。<br/>
?
#define BRAKEB 8               
+
4.封包化串口輸入模式<br/>
?
void setup(){
+
封包化串口模式使用多字節(jié)串口指令控制兩路馬達(dá)的速度和方向,通信協(xié)議為8N1。TTL邏輯電平為0V,5V。與簡(jiǎn)易串口模式同樣是單向控制,TXD接IN1,RXD不接線。<br/>
?
  Serial.begin(9600);         
+
6.鋰電池保護(hù)模式<br/>
?
  pinMode(PWA,OUTPUT);
+
通電前,將DIP 開(kāi)關(guān)第3 位撥至“0”將啟用鋰電電池保護(hù)功能。通電后“Lithium”LED 閃爍的次數(shù)表示模塊探測(cè)到的鋰電電池組內(nèi)部的電池個(gè)數(shù)。鋰電電池保護(hù)功能將即時(shí)地檢測(cè)每節(jié)電池的電壓,當(dāng)單節(jié)電池電壓低于3V 時(shí),模塊將自動(dòng)切斷電源,停止耗電以達(dá)到保護(hù)電池組的效果。<br/>
?
  pinMode(PWB,OUTPUT);
+
'''
?
  pinMode(DIRA,OUTPUT);
+
<big>注意!鋰電電池組在單節(jié)電池電壓低于3V 時(shí),電池組充電能力會(huì)下降,當(dāng)電壓低于2V時(shí),電池組將徹底喪失充電能力!這一點(diǎn)和鎳鉻、鎳氫電池是不一樣的!在模塊自動(dòng)斷電后模塊仍然會(huì)消耗少量電量,因此在自動(dòng)斷電后應(yīng)當(dāng)立即取下電池組以免損壞電池組。</big>'''<br/>
?
  pinMode(DIRB,OUTPUT);
+
?
  pinMode(BRAKEA,OUTPUT);
+
?
  pinMode(BRAKEB,OUTPUT);
+
?
}
+
  
?
void loop(){
+
當(dāng)使用非鋰電電源供電時(shí),DIP 開(kāi)關(guān)第3 位應(yīng)撥至“1”<br/>
?
  head();
+
?
  delay(3000);
+
?
  back();
+
?
  delay(3000);
+
?
  left();
+
?
  delay(3000);
+
?
  right();
+
?
  delay(3000);
+
?
  breaka();
+
?
  delay(3000);
+
?
  stopt();
+
?
  delay(3000);
+
?
}
+
  
?
void head(){
+
==模擬輸入模式==
?
  analogWrite(PWA,180);
+
1.模式選擇<br/>
?
  analogWrite(PWB,180);
+
通電前,將DIP 開(kāi)關(guān)第1 位 和 第2 位撥至“1 1”將啟用模擬信號(hào)控制模式。為達(dá)到最佳效果,信號(hào)源的輸出抗阻應(yīng)當(dāng)小于10KΩ。如果使用電位器/分壓器產(chǎn)生信號(hào)源,推薦使用1 KΩ、5KΩ 或者10 KΩ 的線性電阻分壓器。在模擬信號(hào)控制模式下,輸入端子IN1 和/或IN2 上的電位:等于2.5V 為馬達(dá)靜止,大于
?
  digitalWrite(DIRA,HIGH);
+
2.5V 為正轉(zhuǎn),小于2.5V 為反轉(zhuǎn)。<br/>
?
  digitalWrite(BRAKEA,LOW);
+
[[文件:01C115002.png|500px|縮略圖|居中]]
?
  digitalWrite(DIRB,HIGH);
+
2.獨(dú)立驅(qū)動(dòng)/差速驅(qū)動(dòng)<br/>
?
  digitalWrite(BRAKEB,LOW);
+
DIP 開(kāi)關(guān)第4 位為混合驅(qū)動(dòng)和獨(dú)立驅(qū)動(dòng)的切換開(kāi)關(guān),撥至“0”為獨(dú)立驅(qū)動(dòng)模式,即S1 獨(dú)立控制M1,S2 獨(dú)立控制M2。<br/>
?
}
+
[[文件:01C115003png|500px|縮略圖|居中]]
?
 
+
將DIP 開(kāi)關(guān)第4 位撥至“1”時(shí)為混合驅(qū)動(dòng)(差速驅(qū)動(dòng))模式,在此模式下,S1 控制油門(前進(jìn)、后退、剎車),IN2 控制方向。這樣一來(lái)在能控制油門的情況下,車體的轉(zhuǎn)向更具有差速傳動(dòng)的效果!<br/>
?
void back(){
+
[[文件:01C115004.png|500px|縮略圖|居中]]
?
  analogWrite(PWA,180);
+
==使用例程==
?
  analogWrite(PWB,180);
+
===測(cè)試環(huán)境===
?
  digitalWrite(DIRA,LOW);
+
* 硬件環(huán)境:Arduino UNO R3 、旋轉(zhuǎn)角度電位計(jì)x2、USB轉(zhuǎn)TTL串口模塊、2.4G無(wú)線遙控手柄及接收器
?
  digitalWrite(BRAKEA,LOW);
+
* 軟件環(huán)境:Arduino IDE 1.7.7
?
  digitalWrite(DIRB,LOW);
+
?
  digitalWrite(BRAKEB,LOW);
+
?
}
+
?
 
+
?
void left(){
+
?
  analogWrite(PWA,180);
+
?
  analogWrite(PWB,180);
+
?
  digitalWrite(DIRA,HIGH);
+
?
  digitalWrite(BRAKEA,LOW);
+
?
  digitalWrite(DIRB,LOW);
+
?
  digitalWrite(BRAKEB,LOW);
+
?
}
+
?
 
+
?
void right(){
+
?
  analogWrite(PWA,180);
+
?
  analogWrite(PWB,180);
+
?
  digitalWrite(DIRA,LOW);
+
?
  digitalWrite(BRAKEA,LOW);
+
?
  digitalWrite(DIRB,HIGH);
+
?
  digitalWrite(BRAKEB,LOW);
+
?
}
+
?
 
+
?
void breaka(){
+
?
  analogWrite(PWA,180);
+
?
  analogWrite(PWB,180);
+
?
  digitalWrite(DIRA,HIGH);
+
?
  digitalWrite(BRAKEA,HIGH);
+
?
  digitalWrite(DIRB,HIGH);
+
?
  digitalWrite(BRAKEB,HIGH);
+
?
}
+
?
 
+
?
void stopt(){
+
?
  analogWrite(PWA,0);
+
?
  analogWrite(PWB,0);
+
?
  digitalWrite(DIRA,LOW);
+
?
  digitalWrite(BRAKEA,HIGH);
+
?
  digitalWrite(DIRB,LOW);
+
?
  digitalWrite(BRAKEB,HIGH);
+
?
}</pre>
+
?
 
+
?
* 程序效果
+
?
連接在A口和B口電機(jī)以下面的順序運(yùn)動(dòng)
+
?
* A口電機(jī)順時(shí)針、B口電機(jī)逆時(shí)針
+
?
* A口電機(jī)逆時(shí)針、B口電機(jī)順時(shí)針
+
?
* A口、B口電機(jī)順時(shí)針
+
?
* A口、B口電機(jī)順時(shí)針
+
?
* A口、B口電機(jī)制動(dòng) - 電機(jī)指示燈全部亮起
+
?
* A口、B口電機(jī)停止 - 電機(jī)指示燈全部熄滅
+
?
 
+
?
===驅(qū)動(dòng)舵機(jī)===
+
?
* 準(zhǔn)備硬件
+
?
# 金屬齒舵機(jī) * 1個(gè)
+
?
# Arduino UNO 控制器 * 1個(gè)
+
?
# 7.4V 1200mAh 鋰電池 * 1個(gè)
+
?
# Arduino 程序下載線 * 1條
+
?
* 硬件連接
+
?
[[文件:RB01C11505.png|600px|縮略圖|居中]]
+
?
 
+
?
* 例子程序
+
?
 
+
?
<pre style='color:blue'>#include <Servo.h>  
+
?
+
?
Servo myservo; 
+
?
+
?
int pos = 0; 
+
?
+
?
void setup()
+
?
{
+
?
  myservo.attach(10); 
+
?
}
+
?
+
?
void loop()
+
?
{
+
?
  for(pos = 0; pos <= 180; pos += 1) 
+
?
  {                               
+
?
    myservo.write(pos);           
+
?
    delay(15);                   
+
?
  }
+
?
  for(pos = 180; pos>=0; pos-=1) 
+
?
  {                               
+
?
    myservo.write(pos);         
+
?
    delay(15);                 
+
?
  }
+
?
}
+
?
</pre>
+
?
 
+
?
* 程序效果
+
?
連接在 D10 引腳的舵機(jī),從0度開(kāi)始順時(shí)針旋轉(zhuǎn)180度,然后再逆時(shí)針旋轉(zhuǎn)180度,循環(huán)執(zhí)行。
+
?
+
?
===UART 接口測(cè)試===
+
?
* 準(zhǔn)備硬件
+
?
# LCD1602 串行液晶 * 1個(gè)
+
?
# Arduino UNO 控制器 * 1個(gè)
+
?
# 7.4V 1200mAh 鋰電池 * 1個(gè)
+
?
# Arduino 程序下載線 * 1條
+
?
# 4P 傳感器連接線 * 1個(gè)
+
?
 
+
?
* 硬件連接
+
?
注意接線時(shí),串行液晶的TX,連接控制器的RX;串行液晶RX,連接控制器TX
+
?
[[文件:RB01C11506.png|600px|縮略圖|居中]]
+
?
 
+
?
* 例子程序
+
?
注意:程序上傳時(shí),不能連接 LCD1602 串行液晶
+
?
<pre style='color:blue'>void setup()
+
?
{
+
?
Serial.begin(9600);                //設(shè)置波特率為 9600
+
?
Serial.print("$CLEAR\r\n");            //清屏
+
?
}
+
?
void loop()
+
?
{
+
?
Serial.print("$GO 1 4\r\n");            //顯示的地址為第 1 行第 4 列
+
?
Serial.print("$PRINT Welcome to\r\n"); //打印字符 Welcome to
+
?
Serial.print("$GO 2 1\r\n");            //顯示的地址為第 2 行第 1 列
+
?
Serial.print("$PRINT www.robotbase.cn\r\n");//打印字符 www.robotbase.cn
+
?
}</pre>
+
?
 
+
?
* 程序效果
+
?
將程序上傳至 UNO 控制器后,連接電機(jī)驅(qū)動(dòng)板和串行液晶,液晶第一行顯示"Welcome to",第二行顯示"www.robotbase.cn"
+
?
 
+
?
===IIC 接口測(cè)試===
+
?
* 準(zhǔn)備硬件
+
?
# 4 - Digital Display * 1個(gè)
+
?
# Arduino UNO 控制器 * 1個(gè)
+
?
# 7.4V 1200mAh 鋰電池 * 1個(gè)
+
?
# Arduino 程序下載線 * 1條
+
?
# 4P 傳感器連接線 * 1個(gè)
+
?
 
+
?
* 硬件連接
+
?
[[文件:RB01C11507.png|600px|縮略圖|居中]]
+
?
* 例子程序
+
?
<pre style='color:blue'>#include <EEPROM.h>
+
?
#include <TimerOne.h>
+
?
#include <avr/pgmspace.h>
+
?
#include "TM1637.h"
+
?
#define ON 1
+
?
#define OFF 0
+
?
 
+
?
int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
+
?
unsigned char ClockPoint = 1;
+
?
unsigned char Update;
+
?
unsigned char microsecond_10 = 0;
+
?
unsigned char second;
+
?
unsigned char _microsecond_10 = 0;
+
?
unsigned char _second;
+
?
unsigned int eepromaddr;
+
?
boolean Flag_ReadTime;
+
?
 
+
?
#define CLK A5   
+
?
#define DIO A4
+
?
TM1637 tm1637(CLK,DIO);
+
?
 
+
?
void setup()
+
?
{
+
?
  Serial.begin(9600);
+
?
  tm1637.set(BRIGHT_TYPICAL);
+
?
  tm1637.init();
+
?
  Timer1.initialize(10000);
+
?
  Timer1.attachInterrupt(TimingISR);
+
?
  Serial.println("Please send command to control the stopwatch:");
+
?
  Serial.println("S - start");
+
?
  Serial.println("P - pause");
+
?
  Serial.println("L - list the time");
+
?
  Serial.println("W - write the time to EEPROM ");
+
?
  Serial.println("R - reset");
+
?
}
+
?
void loop()
+
?
{
+
?
  char command;
+
?
  command = Serial.read();
+
?
  switch(command)
+
?
  {
+
?
    case 'S':stopwatchStart();Serial.println("Start timing...");break;
+
?
    case 'P':stopwatchPause();Serial.println("Stopwatch was paused");break;
+
?
    case 'L':readTime();break;
+
?
    case 'W':saveTime();Serial.println("Save the time");break;
+
?
    case 'R':stopwatchReset();Serial.println("Stopwatch was reset");break;
+
?
    default:break;
+
?
  }
+
?
  if(Update == ON)
+
?
  {
+
?
    TimeUpdate();
+
?
    tm1637.display(TimeDisp);
+
?
  }
+
?
}
+
?
 
+
?
void TimingISR()
+
?
{
+
?
  microsecond_10 ++;
+
?
  Update = ON;
+
?
  if(microsecond_10 == 100){
+
?
    second ++;
+
?
    if(second == 60)
+
?
    {
+
?
      second = 0;
+
?
    }
+
?
    microsecond_10 = 0; 
+
?
  }
+
?
  ClockPoint = (~ClockPoint) & 0x01;
+
?
  if(Flag_ReadTime == 0)
+
?
  {
+
?
    _microsecond_10 = microsecond_10;
+
?
    _second = second;
+
?
  }
+
?
}
+
?
void TimeUpdate(void)
+
?
{
+
?
  if(ClockPoint)tm1637.point(POINT_ON);
+
?
  else tm1637.point(POINT_ON);
+
?
  TimeDisp[2] = _microsecond_10 / 10;
+
?
  TimeDisp[3] = _microsecond_10 % 10;
+
?
  TimeDisp[0] = _second / 10;
+
?
  TimeDisp[1] = _second % 10;
+
?
  Update = OFF;
+
?
}
+
?
void stopwatchStart()//timer1 on
+
?
{
+
?
  Flag_ReadTime = 0;
+
?
  TCCR1B |= Timer1.clockSelectBits;
+
?
}
+
?
void stopwatchPause()
+
?
{
+
?
  TCCR1B &= ~(_BV(CS10) | _BV(CS11) | _BV(CS12));
+
?
}
+
?
void stopwatchReset()
+
?
{
+
?
  stopwatchPause();
+
?
  Flag_ReadTime = 0;
+
?
  _microsecond_10 = 0;
+
?
  _second = 0;
+
?
  microsecond_10 = 0;
+
?
  second = 0;
+
?
  Update = ON;
+
?
}
+
?
void saveTime()
+
?
{
+
?
  EEPROM.write(eepromaddr ++,microsecond_10);
+
?
  EEPROM.write(eepromaddr ++,second);
+
?
}
+
?
void readTime()
+
?
{
+
?
  Flag_ReadTime = 1;
+
?
  if(eepromaddr == 0)
+
?
  {
+
?
    Serial.println("The time had been read");
+
?
    _microsecond_10 = 0;
+
?
    _second = 0;
+
?
  }
+
?
  else{
+
?
  _second = EEPROM.read(-- eepromaddr);
+
?
  _microsecond_10 = EEPROM.read(-- eepromaddr);
+
?
  Serial.println("List the time");
+
?
  }
+
?
  Update = ON;
+
?
}</pre>
+
?
* 程序效果
+
?
程序上傳后,數(shù)碼管顯示模塊開(kāi)始計(jì)時(shí),最大計(jì)時(shí)時(shí)間1分鐘,1分鐘后,清零,重新再計(jì)時(shí)。
+
?
 
+
?
==產(chǎn)品相關(guān)推薦==
+
?
[[文件:erweima.png|230px|無(wú)框|右]]
+
?
===產(chǎn)品購(gòu)買地址===
+
?
* [http://www.alsrobot.com.cn/goods-769.html 多功能電機(jī)驅(qū)動(dòng)板]<br/>
+
?
* [http://pan.baidu.com/s/1eSFS0VK L298 Datasheet]
+

2017年2月22日 (三) 14:21的版本

RB01C115001.png

目錄

產(chǎn)品概述

多模式電機(jī)驅(qū)動(dòng)板為奧松最新研發(fā)的一款無(wú)需編程控制的大功率電機(jī)驅(qū)動(dòng)板,可以同時(shí)驅(qū)動(dòng)兩個(gè)直流電機(jī)。每個(gè)通道最大電流為10A。輸入電壓范圍6-24V,支持5-18節(jié)鋰電池供電。 多模式電機(jī)驅(qū)動(dòng)板有四種工作模式可供選擇。模擬輸入模式、R/C輸入模式 、簡(jiǎn)易串口模式和封包話串口模式。通過(guò)板載撥碼開(kāi)關(guān)不同方式的組合在不同模式下切換,實(shí)現(xiàn)機(jī)器人創(chuàng)意開(kāi)發(fā)。多模式電機(jī)驅(qū)動(dòng)板無(wú)需編程即可完成同時(shí)控制或單獨(dú)控制兩路直流電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,在機(jī)器人運(yùn)動(dòng)或者輪式移動(dòng)平臺(tái)的開(kāi)發(fā)上降低了開(kāi)發(fā)難度和成本。一塊多模式電機(jī)驅(qū)動(dòng)板及其豐富的功能,即可讓機(jī)器人創(chuàng)意變得更多可能。 具有以下特點(diǎn):

  1. 模式可獨(dú)立使用也可混合使用
  2. 同步再生驅(qū)動(dòng)
  3. 開(kāi)關(guān)頻率高(超出人耳聽(tīng)力范圍)
  4. 過(guò)熱和過(guò)流保護(hù)
  5. 多種操作模式

規(guī)格參數(shù)

  1. 工作電壓:6V-24V
  2. 接口類型:傳感器3P接口
  3. 輸出信號(hào):數(shù)字信號(hào)
  4. 控制模式:模擬輸入模式、R/C模式、簡(jiǎn)易的串口模式、封包話串口模式
  5. 產(chǎn)品尺寸:72.747mm x47.244mm
  6. 固定孔尺寸:64.111mm x 38.608mm
  7. 重量大?。?0g


引腳定義

  • B-:電源負(fù)極
  • B+:電源正極
  • M1A:電機(jī)1正向接口
  • M1B:電機(jī)1反向接口
  • M2A:電機(jī)2正向接口
  • M2B:電機(jī)2反向接口
  • S1:信號(hào)1輸入端
  • S2:信號(hào)2輸入端

操作模式概述

1.模擬輸入模式
模擬輸入模式可以通過(guò)一個(gè)或者兩個(gè)模擬輸入控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。模擬輸入電壓范圍0-5V。這使得多模式電機(jī)驅(qū)動(dòng)板可以通過(guò)電位計(jì)或者單片機(jī)輸出的PWM控制。
2.R/C輸入模式
R/C輸入模式可采用兩個(gè)標(biāo)準(zhǔn)的R/C通道,并通過(guò)接收的信號(hào)控制電機(jī)的轉(zhuǎn)速和方向??刂破骶哂幸粋€(gè)超時(shí)的設(shè)置。當(dāng)暫停啟用時(shí),電機(jī)驅(qū)動(dòng)器將關(guān)閉信號(hào)的損失。這是為了安全,并防止機(jī)器人運(yùn)行時(shí)會(huì)遇到的干擾,當(dāng)使用無(wú)線電控制器控制驅(qū)動(dòng)器的時(shí)候。如果超時(shí)命令被禁用,電機(jī)驅(qū)動(dòng)器將繼續(xù)執(zhí)行上一個(gè)命令的速度和方向,直到下一個(gè)命令。這使得多模式電機(jī)驅(qū)動(dòng)板容易容易接口其他低速控制器。
3.簡(jiǎn)易的串口輸入模式
簡(jiǎn)易的串口模式使用TTL電平串口RS-232數(shù)據(jù)設(shè)定電機(jī)速度和方向。這種模式可以連接到PC或者單片機(jī)。
簡(jiǎn)易的串口模式使用的是8N1串口協(xié)議(8位數(shù)據(jù)字節(jié),無(wú)奇偶校驗(yàn),1停止位)控制馬達(dá)的速度和方向。TTL邏輯電平為0V,5V。簡(jiǎn)易串口模式控制為單向的控制。
4.封包化串口輸入模式
封包化串口模式使用多字節(jié)串口指令控制兩路馬達(dá)的速度和方向,通信協(xié)議為8N1。TTL邏輯電平為0V,5V。與簡(jiǎn)易串口模式同樣是單向控制,TXD接IN1,RXD不接線。
6.鋰電池保護(hù)模式
通電前,將DIP 開(kāi)關(guān)第3 位撥至“0”將啟用鋰電電池保護(hù)功能。通電后“Lithium”LED 閃爍的次數(shù)表示模塊探測(cè)到的鋰電電池組內(nèi)部的電池個(gè)數(shù)。鋰電電池保護(hù)功能將即時(shí)地檢測(cè)每節(jié)電池的電壓,當(dāng)單節(jié)電池電壓低于3V 時(shí),模塊將自動(dòng)切斷電源,停止耗電以達(dá)到保護(hù)電池組的效果。
注意!鋰電電池組在單節(jié)電池電壓低于3V 時(shí),電池組充電能力會(huì)下降,當(dāng)電壓低于2V時(shí),電池組將徹底喪失充電能力!這一點(diǎn)和鎳鉻、鎳氫電池是不一樣的!在模塊自動(dòng)斷電后模塊仍然會(huì)消耗少量電量,因此在自動(dòng)斷電后應(yīng)當(dāng)立即取下電池組以免損壞電池組。

當(dāng)使用非鋰電電源供電時(shí),DIP 開(kāi)關(guān)第3 位應(yīng)撥至“1”

模擬輸入模式

1.模式選擇
通電前,將DIP 開(kāi)關(guān)第1 位 和 第2 位撥至“1 1”將啟用模擬信號(hào)控制模式。為達(dá)到最佳效果,信號(hào)源的輸出抗阻應(yīng)當(dāng)小于10KΩ。如果使用電位器/分壓器產(chǎn)生信號(hào)源,推薦使用1 KΩ、5KΩ 或者10 KΩ 的線性電阻分壓器。在模擬信號(hào)控制模式下,輸入端子IN1 和/或IN2 上的電位:等于2.5V 為馬達(dá)靜止,大于 2.5V 為正轉(zhuǎn),小于2.5V 為反轉(zhuǎn)。

01C115002.png

2.獨(dú)立驅(qū)動(dòng)/差速驅(qū)動(dòng)
DIP 開(kāi)關(guān)第4 位為混合驅(qū)動(dòng)和獨(dú)立驅(qū)動(dòng)的切換開(kāi)關(guān),撥至“0”為獨(dú)立驅(qū)動(dòng)模式,即S1 獨(dú)立控制M1,S2 獨(dú)立控制M2。

將DIP 開(kāi)關(guān)第4 位撥至“1”時(shí)為混合驅(qū)動(dòng)(差速驅(qū)動(dòng))模式,在此模式下,S1 控制油門(前進(jìn)、后退、剎車),IN2 控制方向。這樣一來(lái)在能控制油門的情況下,車體的轉(zhuǎn)向更具有差速傳動(dòng)的效果!

01C115004.png

使用例程

測(cè)試環(huán)境

  • 硬件環(huán)境:Arduino UNO R3 、旋轉(zhuǎn)角度電位計(jì)x2、USB轉(zhuǎn)TTL串口模塊、2.4G無(wú)線遙控手柄及接收器
  • 軟件環(huán)境:Arduino IDE 1.7.7