当前位置: 首页 > news >正文

stm32第七天震动传感器

一:震动传感器 

1.震动传感器工作原理
震动传感器黑色震动检测传感器,工作时电源LED灯常量,震动信号检测LED灯发生震动的时候会保持亮的过程。正常工作模块DO口输出高电平,震动瞬间DO口输出低电平,用于各种震动触发作用,防盗报警,智能小车,电子积木灯等。
2.震动传感器硬件引脚接线
1.VCÇ:接到板子电源的5v或者3.3v。
2.GND:地,连接到板子电源的负极或者GND。
3.DO:数字信号输出口,可以与单片机相连检测环境是否发生震动。
3.要动传威器软件开发流程
·初始化系统
。 初始化震动传感器DO相连的单片机引脚时钟
。 初始化震动传感器DO相连的单片机引脚输入配置
·检测震动控制LED灯

1:shake.c工程

#include "shake.h"

#include "stm32f10x.h"

void Shake_Init(void)//震动传感器的初始化函数
{
	//有两个步骤  1:初始化震动传感器DO相连的单片机引脚输入配置,也就是初始震动传感器外设
	//           2:初始化震动传感器DO相连的单片机引脚时钟
	GPIO_InitTypeDef Shake_Initstruct;//初始化震动传感器的结构体
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开APB2总线下GPIOA的时钟
	
	Shake_Initstruct.GPIO_Pin=GPIO_Pin_0;//配置A0引脚
	Shake_Initstruct.GPIO_Mode=GPIO_Mode_IPU;//配置输入模式为上拉输入
	GPIO_Init( GPIOA, &Shake_Initstruct);//初始化GPIOA0的结构体
	
}

2:shake.h工程

#ifndef SHAKE_H_
#define SHAKE_H_


void Shake_Init(void);//声明函数

#endif

3:main.c工程

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "Bear.h"
#include "key.h"
#include "relay.h"
#include "shake.h"

void delay(uint16_t time)//延时1ms  软件延时粗延时
{
	uint16_t i=0;
	while(time --)
	{
		i=12000;
		while(i --);
	}
	
}


int  main()
{



	LED_Init();
	
	Bear_Init();//初始化蜂鸣器的引脚GPIO A3
	Key_Init();//初始化按键的时钟和引脚配置
	//GPIO_SetBits(GPIOA, GPIO_Pin_1); //初始化灯为灭
	Relay_Init();//初始化继电器的时钟和引脚配置
	//GPIO_SetBits(GPIOA, GPIO_Pin_0);//初始化GPIOA为高电平为绿灯灭
	Shake_Init();//初始化震动传感器的时钟和引脚配置
	

   while(1)
	 {
		if(GPIO_ReadInputDataBit( GPIOA, GPIO_Pin_0)==0)//因为震动瞬间DO输出低电平,当触发震动为低电平也就等于0
		{
			GPIO_ResetBits(GPIOA, GPIO_Pin_1);//灯亮
			delay(1000);//延时一秒
			GPIO_SetBits(GPIOA, GPIO_Pin_1);//灯灭
			delay(1000);//延时一秒
		}
		else
		{
			GPIO_SetBits(GPIOA, GPIO_Pin_1);//没有震动,为正常工作模式,就灯灭
		}
		
	 }
		 
   
}


相关文章:

  • Java 文件和IO流基础(生动形象版)
  • 进程间通信(1)——管道
  • Android AI ChatBot-v1.6.3-28-开心版[免登录使用GPT-4o和DeepSeek]
  • 深入理解Java内存模型(JMM)及其并发编程中的应用
  • 「JavaScript深入」WebSocket:高效的双向实时通信技术
  • 【基于深度学习的验证码识别】---- part3数据加载、模型等API介绍(2)
  • HAL库编程知识点---Can.c和Driver_can.c分层开发
  • Linux | gcc编译篇
  • 从零构建大语言模型全栈开发指南:第一部分:数学与理论基础-1.1.2核心数学基础:线性代数、概率论与梯度优化
  • Blender制作次表面材质
  • python 函数入门指南
  • sql小记,20250319
  • Lombok常用注解
  • C语言每日一练——day_12(最后一天)
  • Java protected 关键字详解及探究过程(详细、准确)
  • 实验二 进程通信
  • CVPR2025 | AnyAttack:对任意图像的视觉语言模型的目标性对抗攻击
  • 实现拖拽图片验证的基本步骤
  • vulhub Matrix-Breakout
  • Ai知识库私有化部署
  • 上海劳模风采馆焕新升级后重新开放,展示480位劳模先进故事
  • 乘客被地铁厕所门砸伤,南京地铁:突然坏的,已和乘客沟通处理
  • 西甲上海足球学院揭幕,用“足球方法论”试水中国青训
  • 陕西永寿4岁女童被蜜蜂蜇伤致死,当地镇政府介入处理
  • 如此城市|上海老邬:《爱情神话》就是我生活的一部分
  • 外交部答澎湃:美方攻击抹黑中加关系与合作的卑劣图谋不会得逞