STM32学习100步之第五十六步

您所在的位置:网站首页 4脚继电器怎么接断电 STM32学习100步之第五十六步

STM32学习100步之第五十六步

2024-07-14 23:46| 来源: 网络整理| 查看: 265

继电器

所谓继电器就是一个开关电路,给线圈通电,利用电流的磁效应产生磁场吸合开关。具体怎么利用单片机来控制继电器,原理图如下: 在这里插入图片描述 其中ULN2003为达林顿管,有很强的驱动能力,因为单片机输出的电流特别小,不足以使继电器能够产生强大的吸引力。内部结构如下: 在这里插入图片描述 具体开发板连接如下: 在这里插入图片描述 在这里插入图片描述 具体的三个输出接口接到了三个端口上面(某一时刻必然有两个端口是连接在一起的即构成了通路),注意这里的端口的电流特别大,因为连接了实际电流,这里充分体现了单片机的小电流带动大电流的工作。

继电器内部原理图如下: 在这里插入图片描述 其中relay_1、relay_2分别连接着单片机的PA13、PA14,默认接了JTAG接口,因为单片机的接口不够用,所以采用了复用。

单片机控制继电器的原理和控制按键程序相同,程序如下:

RCC_Configuration(); //系统时钟初始化 TOUCH_KEY_Init();//触摸按键初始化 RELAY_Init();//继电器初始化 while(1){ if(!GPIO_ReadInputDataBit(TOUCH_KEYPORT,TOUCH_KEY_A))RELAY_1(1); //当按键A按下时继电器1标志置位 if(!GPIO_ReadInputDataBit(TOUCH_KEYPORT,TOUCH_KEY_B))RELAY_1(0); //当按键B按下时继电器1标志置位 if(!GPIO_ReadInputDataBit(TOUCH_KEYPORT,TOUCH_KEY_C))RELAY_2(1); //当按键C按下时继电器2标志置位 if(!GPIO_ReadInputDataBit(TOUCH_KEYPORT,TOUCH_KEY_D))RELAY_2(0); //当按键D按下时继电器2标志置位 }

relay.c中的程序:

void RELAY_Init(void){ //继电器的接口初始化 GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE, ENABLE); //APB2外设时钟使能 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//启动AFIO重映射功能时钟 GPIO_InitStructure.GPIO_Pin = RELAY1 | RELAY2; //选择端口号(0~15或all) GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz) GPIO_Init(RELAYPORT, &GPIO_InitStructure); //必须将禁用JTAG功能才能做GPIO使用 GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);// 改变指定管脚的映射,完全禁用JTAG+SW-DP GPIO_ResetBits(RELAYPORT,RELAY1 | RELAY2); //都为低电平(0) 初始为关继电器 } void RELAY_1(u8 c){ //继电器的控制程序(c=0继电器放开,c=1继电器吸合) GPIO_WriteBit(RELAYPORT,RELAY1,(BitAction)(c));//通过参数值写入接口 } void RELAY_2(u8 c){ //继电器的控制程序(c=0继电器放开,c=1继电器吸合) GPIO_WriteBit(RELAYPORT,RELAY2,(BitAction)(c));//通过参数值写入接口 }

需要特别注意这里禁用了JTAG接口。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3