• 正文
    • 一模塊來源
    • 二規(guī)格參數(shù)
    • 三移植過程
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

【CW32模塊使用】繼電器模塊

02/09 10:55
907
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

繼電器控制電路電子元器件,通過感應輸入電流的變化控制電路的通斷,通常用于自動化控制電路中,在電路中起著自動調(diào)節(jié)、隔離、安全保護和轉(zhuǎn)換等作用。直流繼電器通常有5個引腳,其中有兩個引腳是線圈控制引腳,其他3個引腳分別是是常開端、常閉端和公共端。在沒有上電時,線圈沒有通電,常閉端和公共端相連,常開端和公共端斷開;上電后,線圈通電,常開端和公共端相連,常閉端和公共端斷開。所以繼電器就相當于是一個開關(guān),可以使用低壓控制高壓。

模塊來源

模塊實物展示:

資料鏈接:http://pan.baidu.com/share/link?shareid=3950641169&uk=2302102993

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

工作電壓:5V

可控制的交流電壓范圍:可達250V,10A

可控制的交流電壓范圍:可達30V,10A

控制方式:GPIO

管腳數(shù)量:4 Pin(2.54mm間距排針

說明:采用光耦隔離保護MCU引腳;采用三極管驅(qū)動;

以上信息見廠家資料文件

移植過程

我們的目標是將例程移植至CW32F030C8T6開發(fā)板上【能夠?qū)崿F(xiàn)控制繼電器的吸合與釋放的功能】。首先要獲取資料,查看數(shù)據(jù)手冊應如何實現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

如果繼電器在低壓電源導通的狀態(tài)下,電磁鐵有了磁力,吸合銜鐵,觸點閉合,高壓電源形成回路處于導通狀態(tài);如果繼電器在低壓電源斷開的狀態(tài)下,電磁鐵沒有磁力,因為彈簧的緣故,彈簧將觸點斷開,高壓電源沒有形成回路處于斷開狀態(tài);

知道了控制原理,再來看原理圖。K1為繼電器,其中的4腳和5腳是繼電器的低壓電源控制引腳,當IN1輸出低電平,U1光耦隔離器的1腳2腳導通使得4腳和3腳導通,VCC通過4腳到3腳經(jīng)過R2給三極管的基極得電,因為三極管的基極得電,使得三極管導通,VCC經(jīng)過繼電器的4腳到5腳到三極管到地。因此繼電器的線圈得電,繼電器的1腳觸點由2腳吸合到3腳,達到了我們控制開關(guān)的目的。其中原理圖中的P1端子的1腳是常閉觸點,2腳是公共觸點,3腳是常開觸點。對應的接線圖見下方右圖。

3.2引腳選擇

該模塊有3個引腳,具體引腳連接見各引腳連接。

模塊接線圖

3.3移植至工程

移植步驟中的導入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_relay.c與bsp_relay.h。這里不再過多講述,移植完成后面修改相關(guān)代碼。

在文件bsp_relay.c中,編寫如下代碼。

/* * Change Logs: * Date           Author       Notes * 2024-06-24     LCKFB-LP    first version */
#include "bsp_relay.h"#include "stdio.h"


/****************************************************************** * 函 數(shù) 名 稱:relay_GPIO_Init * 函 數(shù) 說 明:繼電器引腳初始化 * 函 數(shù) 形 參:無 * 函 數(shù) 返 回:無 * 作       者:LC * 備       注:無******************************************************************/void Relay_GPIO_Init(void){    GPIO_InitTypeDef        GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體
    RCC_RELAY_IN_ENABLE();        // 使能GPIO時鐘
    GPIO_InitStruct.Pins = GPIO_RELAY_IN;                  // GPIO引腳    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;            // 推挽輸出    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;               // 輸出速度高    GPIO_Init(PORT_RELAY_IN, &GPIO_InitStruct);            // 初始化}
/****************************************************************** * 函 數(shù) 名 稱:Set_Relay_Switch * 函 數(shù) 說 明:設置繼電器狀態(tài) * 函 數(shù) 形 參:0繼電器吸合   1繼電器斷開 * 函 數(shù) 返 回: * 作       者:LC * 備       注:******************************************************************/void Set_Relay_Switch(unsigned char state){    RELAY_OUT(state);}

在文件bsp_relay.h中,編寫如下代碼。

/* * Change Logs: * Date           Author       Notes * 2024-06-24     LCKFB-LP    first version */
#ifndef _BSP_RELAY_H_#define _BSP_RELAY_H_
#include "board.h"
#define RCC_RELAY_IN_ENABLE()   __RCC_GPIOA_CLK_ENABLE()#define PORT_RELAY_IN           CW_GPIOA#define GPIO_RELAY_IN           GPIO_PIN_2#define RELAY_OUT(x)            GPIO_WritePin(PORT_RELAY_IN, GPIO_RELAY_IN, x?GPIO_Pin_SET:GPIO_Pin_RESET)
void Relay_GPIO_Init(void);//繼電器引腳初始化void Set_Relay_Switch(unsigned char state);//設置繼電器狀態(tài)
#endif

移植驗證
>>>

在自己工程中的main主函數(shù)中,編寫如下。

/* * Change Logs: * Date           Author       Notes * 2024-06-24     LCKFB-LP    first version */#include "board.h"#include "stdio.h"#include "bsp_uart.h"#include "bsp_relay.h"
int32_t main(void){    board_init();        // 開發(fā)板初始化
    uart1_init(115200);        // 串口1波特率115200
    Relay_GPIO_Init(); //繼電器初始化    printf("Demo Start...rn");    while(1)    {        Set_Relay_Switch(0);//控制繼電器吸合        delay_ms(1000);
        Set_Relay_Switch(1);//控制繼電器松開        delay_ms(1000);    }}

移植現(xiàn)象:一上電就會聽到繼電器吸合的聲音

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1A3N-aVpZ0V6seaxmHz40Ag?pwd=LCKF

提取碼:LCKF

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

以開放、共享、互助為理念,致力于構(gòu)建武漢芯源半導體CW32系列MCU生態(tài)社區(qū)。無論是嵌入式MCU小自還是想要攻破技術(shù)難題的工程師,亦或是需求解決方案的產(chǎn)品經(jīng)理都可在CW32生態(tài)社區(qū)汲取營養(yǎng)、共同成長。

B站