资讯详情

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

STM振动传感器控制继电器

文章目录

  • STM32——震动传感器控制继电器开灯
    • 环境概述:
    • 硬件清单:
    • 注意:
    • 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;

image-20220211133032973

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

3、初始化

image-20220211133124499

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文件

通过读取传感器的电平的高低,去判断并控制开灯

如果读取传感器是低电平,那么就实行开灯操作

image-20220211133613168

代码:

#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);//关灯		}	}}

总结:

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

标签: 基于振动传感器

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

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