在本教程中,我将教你如何将继电器与stm32f103微控制器接口。Stm32微控制器工作在3.3伏TTL逻辑上。而电气继电器最小需要+5伏才能正常连接。我们必须需要一个外部电路来驱动带有stm32微控制器的继电器。这篇文章是关于教你如何使用stm32微控制器来驱动多个继电器。它们是关于如何用微控制器驱动高负载的几种方法。我在另一个教程中加入了这些方法。如果你有兴趣知道通过哪些方式我们可以用微控制器驱动高负载,只需点击下面的按钮来学习教程。
晶体管最适合与微控制器一起驱动继电器。但是如果我们的项目中有很多继电器,那么使用晶体管来代替每个继电器并不是最好的选择。单个晶体管不仅使我们的电路更大,而且混乱。幸运的是,我们在市场上有一些集成电路,其中包含了晶体管组合。与独立的单晶体管相比,这些集成电路体积小,占用的空间少。ULN2003和ULN2803是目前市场上流行的晶体管组合集成电路。ULN2003有7个晶体管通道,ULN2803有8个晶体管通道。每个通道由达林顿一对2个晶体管组成。在达林顿结构中,电流被第一个晶体管放大,并被第二个晶体管进一步放大。我们可以得出结论,ULN2003和ULN2803的每个通道都是高电流增益放大器。 In this project i am going to use ULN2003 darlington pair ic. ULN2003 in this project will work as relay driver.
ULN2003作为继电器驱动器
项目电路
我将用stm32微控制器打开和关闭四个继电器。四个按钮用作stm32微控制器的输入。这四个按钮对应四个输出继电器。按下每个按钮将改变其相应继电器的状态。例如,如果继电器打开,按下相应的按钮将使其状态变为关闭。我们可以说,每个按钮都在切换每个按钮上继电器的状态。
项目中使用的微控制器为stm32f103c8t6。它建立在皮质m3核心之上。stm32微控制器的端口A引脚0、1、2、3用作输出引脚。端口a的引脚0连接到ULN2003继电器驱动器的输入1。端口a的引脚1连接到输入3,引脚2连接到输入5,引脚3连接到ULN2003继电器驱动器的引脚7。
输入按钮连接到端口b引脚6,7,8,9。Stm32微控制器在每个单独的gpio管脚上建立了上拉和下拉电阻。我们可以在代码中启用和禁用它们。对于我们的按钮输入,我启用了与每个gpio(Port-B引脚#6,7,8,9)相关联的上拉电阻。输入按钮的一侧与微控制器引脚相连,另一侧共同接地。
我在项目中使用的继电器在+9伏时激活。我将继电器线圈一端连接到ULN2003输出,另一端连接到+12伏。继电器的Com引脚与负载电源接地。继电器Nc引脚与负载连接,负载另一端与负载电源正极引线连接。继电器的任何针脚都不会被触碰。ULN2003的接地引脚通过继电器12伏电源接地,stm32接地。注:ULN2003 GND必须与stm32电源和ULN2003继电器电源共同接地。
项目代码
Stm32cubemx用于微控制器配置。输入和输出引脚在其中声明。在stm32cubemx中,输入引脚上的上拉和下拉电阻器也被激活。为keil uvision arm 5 mdk ide创建并导入配置和设置项目代码后。下图是stm32cubemx中的最终stm32设置。
如果您没有使用stm32cubemx代码配置器和keil uvision mdk arm 5,那么您是该领域的新手。我还有一个关于stm32 cubemx和keil ide的全面入门教程。单击下面的按钮查看教程。
代码在keil uvision ide中编写和编译。项目中使用了Stm32 HAL库。代码的主要逻辑和关键在while 1循环中。该声明
如果(HAL_GPIO_ReadPin(GPIOB,B6_Pin)==GPIO_Pin_RESET)//检查输入按钮是否按下
正在检查按钮是否按下。该语句利用stm32 HAL库检查输入按钮的状态。端口B针脚#6已在上述代码中检查。GPIO_引脚_复位意味着如果引脚处于低电压(0伏)。按下按钮时,此针脚上会显示接地。由于按钮的另一端连接到stm32接地。如果上述语句为真,则执行下一个语句。
HAL_GPIO_TogglePin (GPIOA A0_Pin);
如果if语句为true,则上述语句将在if语句之后执行。它切换继电器的状态。此语句还使用stm32 HAL库。该语句切换端口a引脚6的状态。
在面包板上制作上述电路对于diy项目来说很难。如果你正在做一个关于stm32继电器驱动的diy项目。我建议您在项目中使用预装配的中继板。市场上有许多继电器板,包含不同数量的继电器。2通道、4通道和8通道中继板在市场上最常见。这些板上安装了ULN2003或ULN2803继电器驱动器ic。它们上面还有状态指示灯。Led显示继电器的状态。每个继电器的接线板也非常有助于连接负载。
以上代码可与继电器板一起使用。连接是一样的。你只需要让继电器电源和stm32电源接地共用。
以上代码可与继电器板一起使用。连接是一样的。你只需要让继电器电源和stm32电源接地共用。
继电器板也带有光耦合器和单晶体管电路。本项目中的代码可用于任何包含ULN2003、ULN2803、光耦合器或单个晶体管的继电器板作为继电器驱动器。
根据以下文件提交:188金宝搏提款有问题吗,STM32