Wordpress主題 仿魅族青島seo杭州廠商
目錄
一、介紹
二、模塊原理
1.原理圖
2.引腳描述
3.工作原理介紹
三、程序設計
main.c文件
relay.h文件
relay.c文件
四、實驗效果?
五、資料獲取
項目分享
一、介紹
????????繼電器(Relay),也稱電驛,是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起著自動調(diào)節(jié)、安全保護、轉換電路等作用。
以下是繼電器模塊的參數(shù):
型號 | SRD-05VDC-SL-C |
工作電壓 | 5V |
最大負載 | 250V/10A |
觸發(fā)電流 | 5mA |
尺寸 | 25mm×50mm×18.5mm |
嗶哩嗶哩視頻鏈接:
5V繼電器模塊詳解(STM32)
(資料分享見文末)?
二、模塊原理
1.原理圖
2.引腳描述
引腳名稱 | 描述 |
DC+ | 電源正極 |
DC- | 電源負極 |
IN | 控制信號 |
NO | 常開接口 |
COM | 公共接口 |
NC | 常閉接口 |
3.工作原理介紹
??? 利用電磁效應,當線圈兩端加以電壓時,電磁鐵會產(chǎn)生磁力,導致銜鐵吸合,此時彈簧壓縮,金屬觸點連接到常開的一側。當線圈兩端沒有電壓時,電磁吸力也隨之消失,銜鐵就會在彈簧的反作用下返回原來的位置,常閉的金屬觸點導通。
??? 繼電器的驅動電流大概是50mA,而STM32的引腳輸出電流大概在8mA,如果直接用IO口控制,驅動電流太小,繼電器不會閉合。而三極管的作用就是類似開關控制,通過控制三極管的基極電流可以讓三極管工作在截止和飽和導通狀態(tài),從而控制繼電器閉合和斷開。
三、程序設計
使用STM32F103C8T6控制5V繼電器模塊完成吸合和斷開的操作。
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"/*****************辰哥單片機設計******************STM32* 項目 : 5V繼電器實驗 * 版本 : V1.0* 日期 : 2024.9.18* MCU : STM32F103C8T6* 接口 : 參看relay.h * BILIBILI : 辰哥單片機設計* CSDN : 辰哥單片機設計* 作者 : 辰哥 **********************BEGIN***********************/int main(void)
{ SystemInit();//配置系統(tǒng)時鐘為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); //開delay_ms(1000);}
}
relay.h文件
#ifndef __RELAY_H
#define __RELAY_H
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"/*****************辰哥單片機設計******************STM32* 文件 : 5V繼電器h文件 * 版本 : V1.0* 日期 : 2024.9.18* MCU : STM32F103C8T6* 接口 : 見代碼 * BILIBILI : 辰哥單片機設計* CSDN : 辰哥單片機設計* 作者 : 辰哥**********************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"/*****************辰哥單片機設計******************STM32* 文件 : 5V繼電器c文件 * 版本 : V1.0* 日期 : 2024.9.18* MCU : STM32F103C8T6* 接口 : 見代碼 * BILIBILI : 辰哥單片機設計* CSDN : 辰哥單片機設計* 作者 : 辰哥**********************BEGIN***********************/void RELAY_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RELAY_CLK, ENABLE ); //配置時鐘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;
}