繼電器是控制電路的電子元器件,通過(guò)感應(yīng)輸入電流的變化控制電路的通斷,通常用于自動(dòng)化控制電路中,在電路中起著自動(dòng)調(diào)節(jié)、隔離、安全保護(hù)和轉(zhuǎn)換等作用。直流繼電器通常有5個(gè)引腳,其中有兩個(gè)引腳是線圈控制引腳,其他3個(gè)引腳分別是是常開(kāi)端、常閉端和公共端。在沒(méi)有上電時(shí),線圈沒(méi)有通電,常閉端和公共端相連,常開(kāi)端和公共端斷開(kāi);上電后,線圈通電,常開(kāi)端和公共端相連,常閉端和公共端斷開(kāi)。所以繼電器就相當(dāng)于是一個(gè)開(kāi)關(guān),可以使用低壓控制高壓。
一、模塊來(lái)源
模塊實(shí)物展示:
資料鏈接:http://pan.baidu.com/share/link?shareid=3950641169&uk=2302102993
二、規(guī)格參數(shù)
工作電壓:5V
可控制的交流電壓范圍:可達(dá)250V,10A
可控制的交流電壓范圍:可達(dá)30V,10A
控制方式:GPIO
說(shuō)明:采用光耦隔離保護(hù)MCU引腳;采用三極管驅(qū)動(dòng);
以上信息見(jiàn)廠家資料文件
三、移植過(guò)程
我們的目標(biāo)是將例程移植至CW32F030C8T6開(kāi)發(fā)板上【能夠?qū)崿F(xiàn)控制繼電器的吸合與釋放的功能】。首先要獲取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。
3.1查看資料
如果繼電器在低壓電源導(dǎo)通的狀態(tài)下,電磁鐵有了磁力,吸合銜鐵,觸點(diǎn)閉合,高壓電源形成回路處于導(dǎo)通狀態(tài);如果繼電器在低壓電源斷開(kāi)的狀態(tài)下,電磁鐵沒(méi)有磁力,因?yàn)閺椈傻木壒?,彈簧將觸點(diǎn)斷開(kāi),高壓電源沒(méi)有形成回路處于斷開(kāi)狀態(tài);
知道了控制原理,再來(lái)看原理圖。K1為繼電器,其中的4腳和5腳是繼電器的低壓電源控制引腳,當(dāng)IN1輸出低電平,U1光耦隔離器的1腳2腳導(dǎo)通使得4腳和3腳導(dǎo)通,VCC通過(guò)4腳到3腳經(jīng)過(guò)R2給三極管的基極得電,因?yàn)槿龢O管的基極得電,使得三極管導(dǎo)通,VCC經(jīng)過(guò)繼電器的4腳到5腳到三極管到地。因此繼電器的線圈得電,繼電器的1腳觸點(diǎn)由2腳吸合到3腳,達(dá)到了我們控制開(kāi)關(guān)的目的。其中原理圖中的P1端子的1腳是常閉觸點(diǎn),2腳是公共觸點(diǎn),3腳是常開(kāi)觸點(diǎn)。對(duì)應(yīng)的接線圖見(jiàn)下方右圖。
3.2引腳選擇
該模塊有3個(gè)引腳,具體引腳連接見(jiàn)各引腳連接。
模塊接線圖
3.3移植至工程
移植步驟中的導(dǎo)入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_relay.c與bsp_relay.h。這里不再過(guò)多講述,移植完成后面修改相關(guān)代碼。
在文件bsp_relay.c中,編寫(xiě)如下代碼。
/* * Change Logs: * Date Author Notes * 2024-06-24 LCKFB-LP first version */ #include "bsp_relay.h" #include "stdio.h" /****************************************************************** * 函 數(shù) 名 稱:relay_GPIO_Init * 函 數(shù) 說(shuō) 明:繼電器引腳初始化 * 函 數(shù) 形 參:無(wú) * 函 數(shù) 返 回:無(wú) * 作 者:LC * 備 注:無(wú) ******************************************************************/ void Relay_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; // GPIO初始化結(jié)構(gòu)體 RCC_RELAY_IN_ENABLE(); // 使能GPIO時(shí)鐘 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ù) 說(shuō) 明:設(shè)置繼電器狀態(tài) * 函 數(shù) 形 參:0繼電器吸合 1繼電器斷開(kāi) * 函 數(shù) 返 回: * 作 者:LC * 備 注: ******************************************************************/ void Set_Relay_Switch(unsigned char state) { RELAY_OUT(state); }
在文件bsp_relay.h中,編寫(xiě)如下代碼。
/* * 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);//設(shè)置繼電器狀態(tài) #endif
四、移植驗(yàn)證
在自己工程中的main主函數(shù)中,編寫(xiě)如下。
/* * 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(); // 開(kāi)發(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);//控制繼電器松開(kāi) delay_ms(1000); } }
移植現(xiàn)象:一上電就會(huì)聽(tīng)到繼電器吸合的聲音
模塊移植成功案例代碼:
鏈接:https://pan.baidu.com/s/1A3N-aVpZ0V6seaxmHz40Ag?pwd=LCKF
提取碼:LCKF
審核編輯 黃宇
-
繼電器模塊
+關(guān)注
關(guān)注
1文章
10瀏覽量
13004 -
CW32
+關(guān)注
關(guān)注
1文章
278瀏覽量
1541
發(fā)布評(píng)論請(qǐng)先 登錄
【項(xiàng)目展示】基于CW32的遙控循跡小車(chē)

10路繼電器輸出模塊
10路繼電器輸出模塊
智能繼電器模塊是什么,它的作用是什么
固態(tài)繼電器和電磁繼電器模塊

常用繼電器模塊的PCB設(shè)計(jì)與實(shí)物分享

cw32和stm32的區(qū)別
如何使用繼電器模塊來(lái)控制電路?
基于CW32的遙控循跡小車(chē)

評(píng)論