资讯详情

STM32——震动传感器控制继电器开灯

STM振动传感器控制继电器

文章目录

  • STM振动传感器控制继电器
    • 环境概述:
    • 硬件清单:
    • 注意:
    • 1、使能APB2中的GPIOA时钟打开
    • 2、配置GPIOA结构体内容
    • 3、初始化
    • 代码:
    • main.c文件
    • 代码:
    • 总结:

环境概述:

Windows10 专业版

MDK—Lite 5.25

硬件清单:

1、继电器

2、USB灯

3、SW-1801P震动传感器

4、STM32f103c8t6

注意:

在User创建相关文件夹的文件夹xx.c和xx.h包括相关头文件的文件,

前一篇文章写了一些基本操作

实验步骤:

1、使能APB2中的GPIOA时钟打开

去哪里找相关函数,也写在前一篇文章里

image-20220211132637797

//1、使能APB2中的GPIOA时钟打开  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE); 

2、配置GPIOA结构体内容

在此之前,定义结构体

GPIO_InitTypeDef Shake_GPIO_Init; 

//下拉输入 Shake_GPIO_Init.GPIO_Mode   = GPIO_Mode_IPD; //设置引脚为A1 Shake_GPIO_Init.GPIO_Pin    = GPIO_Pin_1; Shake_GPIO_Init.GPIO_Speed  = GPIO_Speed_10MHz; 

3、初始化

GPIO_Init(GPIOA,&Shake_GPIO_Init); 

代码:

#include "stm32f10x.h" #include "shake.h"  void Shake_Init() { 
          //定义结构  GPIO_InitTypeDef Shake_GPIO_Init;  //1、使能APB2中的GPIOA时钟打开  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);   //2、配置GPIOA结构体内容  //下拉输入  Shake_GPIO_Init.GPIO_Mode   = GPIO_Mode_IPD;  //设置引脚为A1  Shake_GPIO_Init.GPIO_Pin    = GPIO_Pin_1;  Shake_GPIO_Init.GPIO_Speed  = GPIO_Speed_10MHz;  GPIO_Init(GPIOA,&Shake_GPIO_Init);    }     

main.c文件

判断读取传感器的电平来判断和控制开灯

如果读取传感器为低电平,则实施开灯操作

代码:

#include "stm32f10x.h"
#include "led.h"
#include "Relay.h"
#include "Shake.h"
int main(void)
{ 
         
	LED_Init();//灯
	Relay_Init();//继电器
	Shake_Init();//震动传感器
	
	GPIO_SetBits(GPIOA, GPIO_Pin_3);//是引脚3j继电器高电平——关灯
	
	while(1){ 
        
		
		//1、通过读取传感器的电平的高低,去判断并控制开灯
		//
		if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_1 == 0)){ 
        
			//如果读取传感器是低电平,那么就实行开灯操作
			GPIO_ResetBits(GPIOA, GPIO_Pin_3);//开灯
			delayTime(1000);//延时
			GPIO_SetBits(GPIOA, GPIO_Pin_3);//关灯
		}else{ 
        
			GPIO_SetBits(GPIOA, GPIO_Pin_3);//关灯
		}
	}

}







总结:

反复练习,记住代码,记住原理,多实操。

标签: 4路继电器模块a1传感器继电单片机高低边驱动引脚控制继电器0050振动传感器4200205010振动传感器4200250108振动传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台