資料介紹
描述
盾牌到底是怎么回事?
這個 Arduino 擴展板帶有 4 個高側開關BTS7002-1EPP (每個輸出的標稱電流為 21A)。為了演示繼電器和保險絲的更換,該屏蔽可用于控制和保護 12V 電源的輸出、打開/關閉負載(例如燈泡、加熱電阻器、電機驅動器)、測量負載電流和檢測空載條件。PROFET? +2 12V 系列針對大電流汽車應用(例如 ECU 電源、輔助電源插座、加熱器)。
解剖盾牌
引腳定義和功能
Push button digital
: Push button digital (optional).
IN4
: Input PROFET?+2 device U4.
LED1
: Indicator LED 1.
LED2
: Indicator LED 2.
DEN 1+3
: Diagnosis enable PROFET?+2 device U1+U3.
OLOFF
: Option for Open Load in OFF detection.
DEN 2+4
: Diagnosis enable PROFET?+2 device U2+U4.
IN1
: Input PROFET?+2 device U1.
IN2
: Input PROFET?+2 device U2.
IN3
: Input PROFET?+2 device U3.
LED3
: Indicator LED 3.
LED4
: Indicator LED 4.
VIN
: Supply voltage.
Push button analog
: Push button analog (optional).
VBAT
: Measuring of VBAT via voltage divider.
IS 1+2
: Current sense of PROFET?+2 device U1+U2.
IS 3+4
: Current sense of PROFET?+2 device U3+U4.
軟件端
將插入屏蔽板的 Arduino 連接到您的計算機后,啟動 Arduino IDE 并安裝高端開關 ino 庫。為此,請單擊 Sketch,然后將鼠標懸停在 Include Library 上,然后單擊 Manage Libraries... 在搜索欄中:鍵入 high side switch ino,然后您將找到安裝庫的選項。
現在該庫已正確安裝,您可以選擇探索各種預先編寫的代碼示例。為此:只需單擊文件,然后將鼠標懸停在示例和高端開關上,然后選擇您想要的任何示例代碼片段。
該庫實質上為您省去了手動尋址代碼中的每個引腳和控制屏蔽的麻煩,包括用于通道控制的模擬輸出信號、用于啟用診斷功能的數字輸出以及用于使用英飛凌電流感應診斷功能的模擬輸入。
設置代碼
我們首先包含我們的庫,然后使用 hss 命名空間
#include
using namespace hss;
因此,我們用我們想要的任何名稱來實例化一個屏蔽對象(在我們當前擁有的代碼片段的情況下:它是 HSS)。此外,我們還實例化了一個錯誤變量,其中設置了一個名為 OK 的定義的值(您將在下面知道原因)。
Bts700xShieldIno HSS = Bts700xShieldIno(&BTS7002);
Error_t err = OK;
進入我們的設置函數:我們所要做的就是初始化我們剛剛使用 init() 函數實例化的 HSS 對象。此函數返回一個錯誤代碼,我們將與我們最初分配給錯誤變量的值(OK 定義)進行比較。為確保一切正常,您可以檢查控制器告訴我們初始化是否成功的串行監視器。如果您遵循所有這些,您的代碼現在應該如下所示:
#include
using namespace hss;
Bts700xShieldIno HSS = Bts700xShieldIno(&BTS7002);
Error_t err = OK;
void setup()
{
Serial.begin(9600);
Serial.println("Serial initialized");
err = HSS.init();
if(OK!=err)
{
Serial.println("Initialization failed!");
}
else
Serial.println("Initialization successful!");
}
可能返回的錯誤代碼有:
OK
:
No error
INTF_ERROR
: Interface error
CONF_ERROR
: Configuration error
READ_ERROR
: Read error
WRITE_ERROR
: Write error
NULLPTR_ERROR
: Null pointer error
INVALID_CH_ERROR
: Invalid channel error
UNSUPPORTED_OP_ERROR
: Invalid channel error
INIT_ERROR
: Not initialized
活動軟件組件
現在設置已完全完成,我們可以選擇實際控制開關通道并檢查通道的診斷。對于我們的高端開關通道控制,我們有兩個主要功能,即switchesHxOn(bool out1= false, bool out2= false, bool out3= false, bool out4= false)
和switchesHxOff(bool out1= false, bool out2= false, bool out3= false, bool out4= false)
。
這兩個函數采用 4 個值(0s 或 1s / true 或 false)表示它們的目標操作通道。switchHxOff()
您還可以使用或函數一次打開/關閉單個通道switchHxOn()
,其中兩者都采用目標輸出通道號。
以下代碼片段將所有屏蔽通道打開三秒鐘,然后將它們再次關閉連續三秒鐘。
void loop(){
HSS.switchesHxOn(1,1,1,1);
delay(3000);
HSS.switchesHxOff(1,1,1,1);
delay(3000);
}
診斷:
我們用于診斷的庫的 MVP 函數是 readDiagx(uint8_t x) 函數。此函數返回 DiagStatus_t 類型值。它接受一個從 1 到 4 的數字,代表輸出通道號。
返回的診斷狀態可能是:
DIAG_READ_ERROR:
Read Error
NOT_ENABLED:
Diagnosis not enabled
NORMAL
Switch works correctly
FAULT
: Switch is in fault condition (Is_fault at IS pin), which can mean “Short to GND”, “Overtemperature” or “Overload”
FAULT_OL_IC:
Switch is either in Open Load (whit enable channel) or inverse current is flowing
SHORT_TO_GND_OR_OT:
Short to the ground or Overtemperature detected
SHORT_TO_VSS:
Short to the supply voltage
OPEN_LOAD:
Open load detected
另一個診斷功能是英飛凌的電流感應功能,它使我們能夠找出流過負載的電流值。負責讀取電流的功能是readIsx()
。該readIsx()
函數以浮點數的形式返回電流值,單位為安培。
為了增加交易,該readVss()
函數讀取 vBAT 引腳上的電壓(檢查上圖)并以浮點形式以伏特為單位返回。
以下代碼片段取自庫中的 BTS700x-hss-advanced 代碼示例片段。自定義函數 getSwitchParams() 具有三個內置自定義函數,每個函數都使用本節中提到的函數提供診斷信息:
void getSwitchParams(int switch_no)
{
Serial.println("Reading the current, battery voltage and diagnosis status of switch ...");
/** Read current value */
readCurrent(switch_no);
/** Get diagnosis result */
readDiagnosis(switch_no);
/** Read battery voltage */
readBatteryVoltage();
}
/**
* @brief Read current flowing through the switch
* @param switch_no Switch number
*/
void readCurrent(int switch_no)
{
float readAmps = 0.0;
readAmps = HSS.readIsx(switch_no);
Serial.print("Current flowing through the switch: ");
Serial.print(readAmps);
Serial.println(" A");
return;
}
/**
* @brief Read diagnosis status of the switch
* @param switch_no Switch number
*/
void readDiagnosis(int switch_no)
{
DiagStatus_t switchStatus;
for(int i = 0; i<10; i++){
switchStatus = HSS.readDiagx(switch_no); // Read the diagnosis function more than once to make sure the IS value is correct (internal exponential filter)
}
if(switchStatus == OPEN_LOAD)
{
Serial.println("Openload detected!");
}
if(switchStatus == FAULT)
{
Serial.println("Short circuit to ground detected, Overtemperature or Overload detected!");
}
if(switchStatus == FAULT_OL_IC)
{
Serial.println("Open load with active switch or inverse current detected!");
}
if(switchStatus == SHORT_TO_VSS)
{
Serial.println("Short circuit to Vss detected!");
}
if(switchStatus == NORMAL)
{
Serial.println("Normal operation!");
}
return;
}
/**
* @brief Reads the current battery voltage
*/
void readBatteryVoltage()
{
float batteryVoltage = 0.0;
for(int i = 0; i<10; i++){
batteryVoltage = HSS.readVss(); // Measure more than once to make use of the internal exponential filter
}
Serial.print("Current battery voltage : ");
Serial.print(batteryVoltage);
Serial.println(" V");
return;
}
使用盾牌的按鈕功能
還提供在占位符 S1 處焊接 SMD 按鈕的選項。此外,還需要一個電阻器 (RS1= 82 kOhm) 和一個電容器 (CS1 = 100 nF) 來對開關進行去抖動處理。此外,根據跳線 J2/J3 的設置,按鈕可用于數字輸入 D2 (P1.4) 或模擬輸入 A0 (P2.6)。
哪里使用數字輸入焊接跳線J3,而使用模擬輸入焊接跳線J2
您實際上可以同時焊接跳線 J2 和 J3,這將允許您同時使用analogReadButton()
和digitalReadButton()
功能
下面的代碼片段演示了analogReadButton()和digitalReadbutton()函數的使用,如果按鈕被按下,Arduino板串行打印“按下”,如果不是,則打印“未按下”:
void loop(){
if (HSS.digitalReadButton()){
Serial.println("digital: pressed");
}
else {
Serial.println("digital: not pressed");
}
if (HSS.analogReadButton()){
Serial.println("analog: pressed");
}
else {
Serial.println("analog: not pressed");
}
delay(1000);
}
LED控制
屏蔽層的 LED 在操作各自的輸出通道號時亮起(當您使用 HxSwitchesOn/HxSwitchOn 功能時),但是,如果只是通過向其引腳發送 PWM 信號來操作開關,它們不會亮起。要手動控制 LED:只需將數字高邏輯信號發送到四個 LED 引腳中的任何一個。
以下代碼片段通過手動操作輸出 3 的開關并同時打開 LED 1、2 和 4 來手動演示這一點。
//-------------PIN DEFINITIONS------------------------------
const int IN4 = 3;
const int LED1 = 4;
const int LED2 = 5;
const int DEN1_DEN3 = 6;
const int OLOFF = 7;
const int DEN2_DEN4 = 8;
const int IN1 = 9;
const int IN2 = 10;
const int IN3 = 11;
const int LED3 = 12;
const int LED4 = 13;
const int Button = A0;
const int IS_U1U2 = A2;
const int IS_U3U4 = A3;
//-------------END OF PIN DEFINITIONS------------------------
void setup() {
//------------- PIN MODE SETUP-------------------------------
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(Button,INPUT);
pinMode(IS_U1U2,INPUT);
pinMode(IS_U3U4,INPUT);
pinMode(DEN1_DEN3,OUTPUT);
pinMode(DEN2_DEN4,OUTPUT);
pinMode(OLOFF,OUTPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
//-----------------END OF PIN MODE SETUP--------------------
}
void loop(){
analogWrite(IN3,255);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED4,HIGH);
}
?
- AMX8040A低內阻,高電壓,大電流高邊驅動IC 0次下載
- NodeMCU32屏蔽開源分享
- 一文看懂:BTS5210G 智能高側電源開關
- 4.5*4.5邊三腳觸控開關原理圖 13次下載
- 6*6邊三腳觸控開關原理圖 15次下載
- BTS 4141D智能高壓側電源開關產品資料 29次下載
- 002-BTS7960大功率直流電機驅動DXP資料
- 基于BTS425L1_Typical ApplicationPower Switch的參考設計
- 高精度原邊反饋開關電源芯片SP5719數據手冊 22次下載
- 精密高邊電流讀出放大器
- LTC6104:高壓、高邊、雙向電流檢測放大器數據表
- LTC6115:高壓高邊電流和電壓檢測
- 如何構建高邊電流檢測的理想選擇
- 大電流驅動芯片bts7960芯片手冊pdf下載 21次下載
- DK912 12V1A原邊反激式AC-DC開關電源控制芯片方案 107次下載
- 穩先微WSD7040AF雙通道高邊智能開關的功能特性 172次閱讀
- 穩先微WS7020AF高邊智能開關產品特點和關鍵功能 164次閱讀
- 低邊開關所需的最小開關電流容量探討 203次閱讀
- H橋中的高邊低邊是什么意思?有什么區別? 1512次閱讀
- 構建超低功耗精密高邊電流檢測電路,你的選擇是? 785次閱讀
- 構建完整的超低功耗精密高邊電流檢測電路的理想選擇! 851次閱讀
- 國內首款單晶技術的雙通道30mΩ級別智能高邊開關發布 1219次閱讀
- MAX14915八通道、工業、高邊開關CRC編程指南 1041次閱讀
- 如何對MAX14915/16進行編程 - 8通道高邊開關 1608次閱讀
- 運算放大器為高邊開關增加了短路保護 1168次閱讀
- 精確的高邊電流檢測放大器監視PWM負載電流 2480次閱讀
- 高邊正電流傳感器監控負電源 671次閱讀
- 高邊電流放大器構成28V斷路器 1024次閱讀
- 基于LTC2063零漂移放大器的精密高邊電流檢測電路 2282次閱讀
- 變壓器原邊電流分解第一個原邊電流尖峰消除方案 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多