色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>大電流高邊開關屏蔽BTS7002 1EPP開源

大電流高邊開關屏蔽BTS7002 1EPP開源

2022-10-31 | zip | 0.11 MB | 次下載 | 免費

資料介紹

描述

盾牌到底是怎么回事?

這個 Arduino 擴展板帶有 4 個高側開關BTS7002-1EPP (每個輸出的標稱電流為 21A)。為了演示繼電器和保險絲的更換,該屏蔽可用于控制和保護 12V 電源的輸出、打開/關閉負載(例如燈泡、加熱電阻器、電機驅動器)、測量負載電流和檢測空載條件。PROFET? +2 12V 系列針對大電流汽車應用(例如 ECU 電源、輔助電源插座、加熱器)。

解剖盾牌

poYBAGNYuNKAczOLAArC_seAyV0977.png
?

引腳定義和功能

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,然后您將找到安裝庫的選項。

poYBAGNYuNaAWfCmAABlFZvH03A166.png
?

現在該庫已正確安裝,您可以選擇探索各種預先編寫的代碼示例。為此:只需單擊文件,然后將鼠標懸停在示例和高端開關上,然后選擇您想要的任何示例代碼片段。

poYBAGNYuNmAUymmAACPli67C1w677.png
?

該庫實質上為您省去了手動尋址代碼中的每個引腳和控制屏蔽的麻煩,包括用于通道控制的模擬輸出信號、用于啟用診斷功能的數字輸出以及用于使用英飛凌電流感應診斷功能的模擬輸入。

設置代碼

我們首先包含我們的庫,然后使用 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;
}

使用盾牌的按鈕功能

poYBAGNYuNyADUs2AAKuGRKEmN0068.png
?

還提供在占位符 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);
}
pYYBAGNYuN-AP4NkAACmInWnxKc189.png
?

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);
}

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 国产成人a v在线影院| 欧美国产精品主播一区| 在线va无卡无码高清| 久久亚洲电影www电影网| 69日本人XXXX护士HD| 欧美白人战黑吊| 古装性艳史电影在线看| 亚色九九九全国免费视频| 国产最新精品亚洲2021不卡| 亚洲视频网站欧美视频网站| 久久综合伊人| JIZZ幻女大全| 四虎精品久久| 果冻传媒在线播放| 最新毛片网| 日本50人群体交乱| 国产成人在线免费观看| 亚洲欧美精品无码大片在线观看| 玖玖爱这里只有精品视频| beeg日本老妇人| 偷偷要色偷偷| 九九久久精品| 99视频在线观看免费| 天津相声广播在线收听| 精品国产国产综合精品| 97成人精品视频在线播放| 色老99九久精品偷偷鲁| 好湿好紧水多AAAAA片秀人网| 最近的2019中文字幕国语完整版| 日本aa大片| 黑兽在线观看高清在线播放樱花| 18av 在线| 色欲AV亚洲情无码AV蜜桃| 国产在线精品一区二区在线看| 最新色导航| 少妇大荫蒂毛多毛大| 久久4k岛国高清一区二区| 99精品网站| 性一交一乱一色一视频| 美女胸禁止18以下看| 国产激情视频在线播放|