一:繼電器
1.繼電器的工作原理
繼電器是一個電控開關,工作原理基于電磁感應,繼電器包括一個電磁線圈和一組觸點。常用于控制高電流或高電壓的電路,例如自動控制原理,電力系統和自動化設備中,由于可靠性和電氣隔離的特性可以實現小電流實現大電流,通過小電流控制線圈產生磁場驅動觸點動作,實現對大電流/高電壓電路的通斷控制。繼電器在各種應用中都有廣泛的用途。
?2.繼電器的引腳說明
1.VCC(+):供電正極,連接此引腳到電源,以提供繼電器所需的電流(判斷是3.3v還是5v)
2.GND():地,連接此引腳到電源的負極或者地。
3.IN:控制輸入信號,通常用于連接控制信號,當該信號變化,繼電器切換狀態。(判斷是低電平導通還是高電平導通)
4.COM (common):公共端,通常是中間的觸點,與常開或常閉觸點相連。
5.NO(Normally Open):常開接口,繼電器吸合前懸空,吸合后于COM連接。
6.NC(Normally Closed):常閉接口,繼電器吸合前與COM連接,吸合后懸空。
3:單片機控制繼電器軟件開發流程
· 初始化系統
。 初始化繼電器IN引腳對應的GPIO外設時鐘
。初始化繼電器IN的引腳
·輸出電平控制繼電器開和關
1:relay.c工程
#include "relay.h"#include "stm32f10x.h"void Relay_Init(void)//繼電器的初始化函數
{//有兩個步驟:1:初始化繼電器外設 2:初始化繼電器時鐘GPIO_InitTypeDef Relay_Initstruct;//初始化繼電器結構體RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//打開APB2總線下GPIOA的時鐘Relay_Initstruct.GPIO_Pin=GPIO_Pin_0;//配置A0引腳Relay_Initstruct.GPIO_Speed=GPIO_Speed_10MHz;//配置A0引腳傳輸速度為10MHZRelay_Initstruct.GPIO_Mode=GPIO_Mode_Out_PP;//配置A0引腳輸出模式為推挽輸出GPIO_Init(GPIOA, &Relay_Initstruct);//初始化GPIOA0的結構體}
2:relay.h工程
void Relay_Init(void);//聲明函數
3:main.c工程
#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "Bear.h"
#include "key.h"
#include "relay.h"void delay(uint16_t time)//延時1ms 軟件延時粗延時
{uint16_t i=0;while(time --){i=12000;while(i --);}}int main()
{LED_Init();Bear_Init();//初始化蜂鳴器的引腳GPIO A3Key_Init();//初始化按鍵的時鐘和引腳配置GPIO_SetBits(GPIOA, GPIO_Pin_1); //初始化燈為滅Relay_Init();//初始化繼電器的時鐘和引腳配置GPIO_SetBits(GPIOA, GPIO_Pin_0);//初始化GPIOA為高電平為綠燈滅while(1){GPIO_ResetBits(GPIOA, GPIO_Pin_0);//A0輸出低電平綠燈亮delay(1000);//延時1秒鐘GPIO_SetBits(GPIOA, GPIO_Pin_0);//A0輸出高電平綠燈滅delay(1000);//延時1秒鐘}}