程序员

stm32震动感应灯

作者:admin 2021-04-26 我要评论

1.先上图 2.接线图 3.实现效果 触碰一下震动传感器灯亮起过一会儿灯熄灭 4.原理 当震动传感器io为低电平打开继电器高电平关闭继电器触碰震动传感器时io接收低电...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

1.先上图

在这里插入图片描述
2.接线图在这里插入图片描述

3.实现效果
触碰一下震动传感器,灯亮起,过一会儿灯熄灭

4.原理
当震动传感器io为低电平打开继电器,高电平关闭继电器,触碰震动传感器时io接收低电平。

附上代码

在这里插入代码片

#include "stm32f10x.h"
#include "relay.h"
#include "led.h"
#include "shake.h"
#include "exti.h"
void delay(uint16_t time)
{
	uint16_t i = 0;
	while(time--)
	{
	i=12000;
	while(i--);
	
	}
}



## 主函数



int  main()
{
Shake_Init();//震动io调用
LED_Init();//ledio调用
Relay_Init();//继电器io调用调用各个模块的io口,io口默认高阻态无电平
exti_init();//中断io调用
	//拉高函数GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//GPIO_ResetBits(GPIOA,GPIO_Pin_3);//拉低函数,将3电平拉低
	 
GPIO_SetBits(GPIOA,GPIO_Pin_3);//拉高函数,将3电平拉高,初始化继电器为关闭状态
	
   while(1)
	 {
		 if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==0)
		 {
		 GPIO_ResetBits(GPIOA,GPIO_Pin_3);//拉低函数,将3电平拉低,打开继电器,初始化继电器为关闭状态
	delay(1000);
	GPIO_SetBits(GPIOA,GPIO_Pin_3);//拉高函数,将A3电平拉高
		 }
		 else
		 {
		 GPIO_SetBits(GPIOA,GPIO_Pin_3);//拉高函数,将3电平拉高,初始化继电器为关闭状态

		 }
		
	}
}


***

## 振动传感器.c文件

***
#include "stm32f10x.h"
#include "shake.h"


void Shake_Init()//驱动振动传感器
{
	GPIO_InitTypeDef shake_init;//结构体变量名
	
//打开gpioA时钟
	
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

//配置gpioA结构体
	
	
	shake_init.GPIO_Pin  = GPIO_Pin_0;
	shake_init.GPIO_Speed=GPIO_Speed_10MHz;
	shake_init.GPIO_Mode =GPIO_Mode_IPD;
	//gpioA初始化
	GPIO_Init(GPIOA,  &shake_init);
}

## 继电器.c文件

#include "relay.h"
#include "stm32f10x.h"
void Relay_Init(void)
{
	
	GPIO_InitTypeDef Relay_init;//结构体变量名
//1.打开继电器gpioA时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,  ENABLE);
	//2.gpioA3结构体的配置
	
	Relay_init.GPIO_Pin  =GPIO_Pin_3;//选择引脚
	Relay_init.GPIO_Speed=GPIO_Speed_10MHz;//选择电平大小,初始状态无电平
	Relay_init.GPIO_Mode =GPIO_Mode_Out_PP;//用推挽输出
	
	//3.gpio初始化
	
GPIO_Init(GPIOA, &Relay_init);//选择gpio端口,加入配置好的结构体

}

;原文链接:https://blog.csdn.net/weixin_46098612/article/details/115434431

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • Unity3D FPS Game(第一人称射击游戏)

    Unity3D FPS Game(第一人称射击游戏)

  • BP神经网络算法 原理讲解以及底层代码

    BP神经网络算法 原理讲解以及底层代码

  • 八数码问题 (头歌 educoder 启发式搜索

    八数码问题 (头歌 educoder 启发式搜索

  • Python绘制的爱心树与表白代码

    Python绘制的爱心树与表白代码

腾讯云代理商
海外云服务器