【STM32单片机】

该博客介绍了如何使用STM32微控制器通过振动传感器来控制继电器,从而实现灯光的自动开关。文中详细阐述了继电器的工作原理,以及STM32对LED、继电器和振动传感器的初始化配置。在主函数中,当检测到振动(GPIO输入为低)时,继电器断开,灯光关闭,延时后再恢复,实现了振动感应的灯光控制系统。
摘要由CSDN通过智能技术生成

STM32项目->振动传感器控制继电器开灯

一、STM32项目->振动传感器控制继电器开灯

继电器的工作原理:继电器工作时,电磁铁通电,把衔铁吸下来使D和E接触,工作电路闭合。电磁铁断电时失去磁性,弹簧把衔铁拉起来,切断工作电路。它实际上是用小电流去控制大电流运作的一种“自动开关”。继电器的作用有扩大控制范围、放大、综合信号、自动、遥控、监测。

#include "led.h"
#include "stm32f10x.h"

void LED_Init(void)
{
	  GPIO_InitTypeDef led_init;
	  //使能APB2时钟GPIC    //rcc.h
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    
	  //结构体配置 (需要放在前面)   //gpio.h
	  
	  led_init.GPIO_Mode  =GPIO_Mode_Out_PP; //推挽输出
	  led_init.GPIO_Pin   =GPIO_Pin_1;
	  led_init.GPIO_Speed =GPIO_Speed_10MHz;
	  GPIO_Init(GPIOA,&led_init);
}

#include "stm32f10x.h"
#include "relay.h"

void Relay_Init()
{
	GPIO_InitTypeDef Relay_init ;
	//1.使能GPIOA时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	//2.GPIOA3配置结构体
	Relay_init.GPIO_Mode  = GPIO_Mode_Out_PP;
	Relay_init.GPIO_Pin   = GPIO_Pin_3;
	Relay_init.GPIO_Speed = GPIO_Speed_10MHz;
	
	GPIO_Init(GPIOA, &Relay_init);
}
#include "shake.h"
#include "stm32f10x.h"

void Shake_Init(void)
{
	GPIO_InitTypeDef shake_init;
	//1.打开我们的GPIOA
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

	//2.配置GPIOA的时钟
	shake_init.GPIO_Mode   = GPIO_Mode_IPU;
	shake_init.GPIO_Pin    = GPIO_Pin_1;
	shake_init.GPIO_Speed  = GPIO_Speed_10MHz;
  GPIO_Init(GPIOA, &shake_init);

}
int main()
{
	LED_Init();
	Relay_Init();//继电器IO口初始化
	Shake_Init();
	GPIO_ResetBits(GPIOA,GPIO_Pin_3);//初始化继电器开关为关闭状态
	while(1)
	{
    	if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0)
    	{
    		GPIO_ResetBits(GPIOA,GPIO_Pin_3);
    		delay(1000);
    		GPIO_ResetBits(GPIOA,GPIO_Pin_3);
    	}
    	else
    	{
			GPIO_ResetBits(GPIOA,GPIO_Pin_3);
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值