Wordpress主題 仿魅族青島seo杭州廠商
目錄
一、介紹
二、模塊原理
1.原理圖
2.引腳描述
3.工作原理介紹
三、程序設(shè)計(jì)
main.c文件
relay.h文件
relay.c文件
四、實(shí)驗(yàn)效果?
五、資料獲取
項(xiàng)目分享
一、介紹
????????繼電器(Relay),也稱電驛,是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種“自動(dòng)開(kāi)關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。
以下是繼電器模塊的參數(shù):
型號(hào) | SRD-05VDC-SL-C |
工作電壓 | 5V |
最大負(fù)載 | 250V/10A |
觸發(fā)電流 | 5mA |
尺寸 | 25mm×50mm×18.5mm |
嗶哩嗶哩視頻鏈接:
5V繼電器模塊詳解(STM32)
(資料分享見(jiàn)文末)?
二、模塊原理
1.原理圖
2.引腳描述
引腳名稱 | 描述 |
DC+ | 電源正極 |
DC- | 電源負(fù)極 |
IN | 控制信號(hào) |
NO | 常開(kāi)接口 |
COM | 公共接口 |
NC | 常閉接口 |
3.工作原理介紹
??? 利用電磁效應(yīng),當(dāng)線圈兩端加以電壓時(shí),電磁鐵會(huì)產(chǎn)生磁力,導(dǎo)致銜鐵吸合,此時(shí)彈簧壓縮,金屬觸點(diǎn)連接到常開(kāi)的一側(cè)。當(dāng)線圈兩端沒(méi)有電壓時(shí),電磁吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用下返回原來(lái)的位置,常閉的金屬觸點(diǎn)導(dǎo)通。
??? 繼電器的驅(qū)動(dòng)電流大概是50mA,而STM32的引腳輸出電流大概在8mA,如果直接用IO口控制,驅(qū)動(dòng)電流太小,繼電器不會(huì)閉合。而三極管的作用就是類似開(kāi)關(guān)控制,通過(guò)控制三極管的基極電流可以讓三極管工作在截止和飽和導(dǎo)通狀態(tài),從而控制繼電器閉合和斷開(kāi)。
三、程序設(shè)計(jì)
使用STM32F103C8T6控制5V繼電器模塊完成吸合和斷開(kāi)的操作。
RELAY_IN | PA0 |
OLED_SCL | PB11 |
OLED_SDA | PB10 |
main.c文件
#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "relay.h"/*****************辰哥單片機(jī)設(shè)計(jì)******************STM32* 項(xiàng)目 : 5V繼電器實(shí)驗(yàn) * 版本 : V1.0* 日期 : 2024.9.18* MCU : STM32F103C8T6* 接口 : 參看relay.h * BILIBILI : 辰哥單片機(jī)設(shè)計(jì)* CSDN : 辰哥單片機(jī)設(shè)計(jì)* 作者 : 辰哥 **********************BEGIN***********************/int main(void)
{ SystemInit();//配置系統(tǒng)時(shí)鐘為72M delay_init(72);LED_Init();LED_On();RELAY_Init();USART1_Config();//串口初始化OLED_Init();printf("Start \n");delay_ms(1000);OLED_Clear();//顯示“繼電器:”O(jiān)LED_ShowChinese(0,0,0,16,1);OLED_ShowChinese(16,0,1,16,1);OLED_ShowChinese(32,0,2,16,1);OLED_ShowChar(48,0,':',16,1);while (1){RELAY_ON;LED_On();OLED_ShowChinese(48,24,3,16,1); //閉OLED_ShowChinese(64,24,4,16,1); //合delay_ms(1000);RELAY_OFF;LED_Off();OLED_ShowChinese(48,24,5,16,1); //斷OLED_ShowChinese(64,24,6,16,1); //開(kāi)delay_ms(1000);}
}
relay.h文件
#ifndef __RELAY_H
#define __RELAY_H
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"/*****************辰哥單片機(jī)設(shè)計(jì)******************STM32* 文件 : 5V繼電器h文件 * 版本 : V1.0* 日期 : 2024.9.18* MCU : STM32F103C8T6* 接口 : 見(jiàn)代碼 * BILIBILI : 辰哥單片機(jī)設(shè)計(jì)* CSDN : 辰哥單片機(jī)設(shè)計(jì)* 作者 : 辰哥**********************BEGIN***********************//***************根據(jù)自己需求更改****************/
// 繼電器 GPIO宏定義#define RELAY_CLK RCC_APB2Periph_GPIOA#define RELAY_GPIO_PIN GPIO_Pin_0#define RELAY_GPIO_PROT GPIOA#define RELAY_ON GPIO_SetBits(RELAY_GPIO_PROT,RELAY_GPIO_PIN)
#define RELAY_OFF GPIO_ResetBits(RELAY_GPIO_PROT,RELAY_GPIO_PIN)/*********************END**********************/void RELAY_Init(void);#endif
relay.c文件
#include "relay.h"/*****************辰哥單片機(jī)設(shè)計(jì)******************STM32* 文件 : 5V繼電器c文件 * 版本 : V1.0* 日期 : 2024.9.18* MCU : STM32F103C8T6* 接口 : 見(jiàn)代碼 * BILIBILI : 辰哥單片機(jī)設(shè)計(jì)* CSDN : 辰哥單片機(jī)設(shè)計(jì)* 作者 : 辰哥**********************BEGIN***********************/void RELAY_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RELAY_CLK, ENABLE ); //配置時(shí)鐘GPIO_InitStructure.GPIO_Pin = RELAY_GPIO_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(RELAY_GPIO_PROT,&GPIO_InitStructure);RELAY_OFF;
}