stm32第七天震动传感器

一:震动传感器

1. 震动传感器工作原理

震动传感器黑色震动检测传感器,工作时电源LED灯常量,震动信号检测LED灯发生震动的时候会保持亮的过程。正常工作模块DO口输出高电平,震动瞬间DO口输出低电平, 用于各种震动触发作用,防盗报警,智能小车,电子积木灯等。
2 .震动传感器硬件引脚接线

1.VCÇ:接到板子电源的5v或者3.3v。

2.GND:地,连接到板子电源的负极或者GND。

3.DO:数字信号输出口 ,可以与单片机相连检测环境是否发生震动。
3. 要动传威器软件开发流程

·初始化系统

。 初始化震动传感器DO相连的单片机引脚时钟

。 初始化震动传感器DO相连的单片机引脚输入配置

·检测震动控制LED灯

1:shake.c工程

cs 复制代码
#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工程

cs 复制代码
#ifndef SHAKE_H_
#define SHAKE_H_


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

#endif

3:main.c工程

cs 复制代码
#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);//没有震动,为正常工作模式,就灯灭
		}
		
	 }
		 
   
}
相关推荐
jianqiang.xue几秒前
ESP32-S3 运行 Linux 全指南:从 RISC-V 模拟器移植到 8 秒快速启动
linux·stm32·单片机·mongodb·risc-v·esp32s3
busideyang25 分钟前
STC8H单片机delay_ms函数闪烁不准?原因是参数溢出!
c语言·单片机·嵌入式硬件·嵌入式
Hello_Embed27 分钟前
LVGL 入门(十五):接口优化
前端·笔记·stm32·单片机·嵌入式
是翔仔呐1 小时前
第10章 模拟量采集基础:外置ADC/DAC芯片驱动(PCF8591/ADC0832)
c语言·开发语言·单片机·嵌入式硬件·51单片机
somi71 小时前
ARM-04-蜂鸣器
arm开发·单片机·嵌入式硬件
Nice__J2 小时前
Mcu架构以及原理——1.Mcu总体架构
单片机·嵌入式硬件·架构
炸膛坦客2 小时前
单片机/C/C++八股:(二十二)数组名,以及和指针的区别(一/二维数组)
c语言·c++·单片机
熬夜有啥好2 小时前
51 单片机常用通信协议与外设驱动基础
单片机·嵌入式硬件
熬夜有啥好2 小时前
51 单片机 GPIO 与中断系统详解
单片机·嵌入式硬件
jianqiang.xue3 小时前
嵌入式软件架构设计:从分层思想到状态机实现,打造高可维护、高可移植的工程级代码
c语言·驱动开发·stm32·单片机·mcu·物联网·iot