门磁模块详解(防盗感应开关 STM32)

news/2025/1/15 6:13:41/

目录

一、介绍

二、程序设计

main.c文件

gate_guard.h文件

gate_guard.c文件

三、实验效果 

四、资料获取

项目分享


一、介绍

        MC-38常闭式门磁开关是作为IO开关输入数字信号的,原理是合在一起信号是导通的 , 配合有线主机使用 不能单独使用。适用于非铁质(如木制或铝合金制)门或窗表面安装,做防盗报警使用。

以下是门磁模块的参数:

型号

MC-38

开关耐压

100VDC

负载电流

150mA

外观尺寸

27*14*10 mm

动作距离

18mm ± 6mm

寿命

100万次

开关输入

常闭式

哔哩哔哩视频:

门磁模块详解(防盗感应开关 STM32)

(资料分享见文末) 


二、程序设计

1.使用STM32F103C8T6读取门磁模块采集的数据,通过串口发送至电脑

2.将读取得到信息数据同时在OLED上显示

门磁IO

PB15

OLED_SCL

PB11

OLED_SDA

PB10

串口

串口1

main.c文件

#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "gate_guard.h"
#include "adcx.h"/*****************辰哥单片机设计******************STM32* 项目			:	门磁模块实验                     * 版本			: V1.0* 日期			: 2024.9.6* MCU			:	STM32F103C8T6* 接口			:	参看gate_guard.h							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/u16 value;int main(void)
{ SystemInit();//配置系统时钟为72M	delay_init(72);LED_Init();LED_On();GATE_GUARD_Init();USART1_Config();OLED_Init();delay_ms(1000);OLED_Clear();//显示“门磁状态:”OLED_ShowChinese(0,0,0,16,1);OLED_ShowChinese(16,0,1,16,1);OLED_ShowChinese(32,0,2,16,1);OLED_ShowChinese(48,0,3,16,1);	OLED_ShowChar(64,0,':',16,1);while (1){value = GATE_GUARD_GetData();if(value == 1){OLED_ShowChinese(60,30,4,16,1);  //开printf("开\r\n");LED_Toggle();delay_ms(100);}else{OLED_ShowChinese(60,30,5,16,1);		//关printf("关\r\n");delay_ms(100);}}
}

gate_guard.h文件

#ifndef __GATE_GUARD_H
#define	__GATE_GUARD_H
#include "stm32f10x.h"
#include "adcx.h"
#include "delay.h"
#include "math.h"/*****************辰哥单片机设计******************STM32* 文件			:	门磁模块h文件                   * 版本			: V1.0* 日期			: 2024.9.6* MCU			:	STM32F103C8T6* 接口			:	见代码							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥**********************BEGIN***********************//***************根据自己需求更改****************/
// 门磁模块 GPIO宏定义#define		GATE_GUARD_GPIO_CLK								RCC_APB2Periph_GPIOB
#define 	GATE_GUARD_GPIO_PORT							GPIOB
#define 	GATE_GUARD_GPIO_PIN								GPIO_Pin_15/*********************END**********************/#define GATE_GUARD  GPIO_ReadInputDataBit(GATE_GUARD_GPIO_PORT,GATE_GUARD_GPIO_PIN)		//读取按键1void GATE_GUARD_Init(void);
uint16_t GATE_GUARD_GetData(void);#endif /* __ADC_H */

gate_guard.c文件

#include "gate_guard.h"/*****************辰哥单片机设计******************STM32* 文件			:	1×4矩阵键盘c文件                   * 版本			: V1.0* 日期			: 2024.8.31* MCU			:	STM32F103C8T6* 接口			:	见代码							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥**********************BEGIN***********************/void GATE_GUARD_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd (GATE_GUARD_GPIO_CLK, ENABLE );			// 打开连接 单片机引脚端口时钟GPIO_InitStructure.GPIO_Pin = GATE_GUARD_GPIO_PIN;					// 配置连接 单片机引脚模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;								// 设置为上拉输入GPIO_Init(GATE_GUARD_GPIO_PORT, &GPIO_InitStructure);					// 初始化 }uint16_t GATE_GUARD_GetData()
{if(GATE_GUARD==1){delay_ms(10);//去抖动 if(GATE_GUARD==1)return 1;}    return 0;// 无按键按下
}

三、实验效果 

四、资料获取

项目分享


http://www.ppmy.cn/news/1526118.html

相关文章

基于Python实现一个庆祝国庆节的小程序

功能: 添加互动功能:允许用户选择不同的祝福语或者查询不同的国庆节信息。动态背景音乐:播放国庆节相关的背景音乐。增加节日小测验:提供一些关于国庆节的趣味小测验,让用户参与。增强图形用户界面 (GUI):…

中断门+陷阱门

中断门: 中断描述符在IDT表里面 kd> dq idtr 80b95400 83e48e000008bfc0 83e48e000008c150 80b95410 0000850000580000 83e4ee000008c5c0 80b95420 83e4ee000008c748 83e48e000008c8a8 80b95430 83e48e000008ca1c 83e48e000008d018 80b95440 000085000050…

git github仓库管理

原文链接:git github仓库管理 拉取镜像 github的仓库有两种下载方式,http和ssh,http是对外公开的,可以直接clone,ssh的一般是自己的或内部的仓库,仓库需要配置ssh-key才能使用git clone. 或者直接网页下载 #https git clone https://github.com/git/git.git #ssh…

vue element时间选择不能超过今天 时间选中长度不能超过7天

背景: 使用elenmet plus 组件实现时间选择;且日期时间选择不能超过今天;连续选中时间的长度范围不能超过7天 效果展示: 实现思路: 一、使用element组件自带的属性和方法; :disabled-date"disabledDate…

Java设计模式之责任链模式详细讲解和案例示范

在本文中,我们将详细讲解Java设计模式中的责任链模式,探讨其基本概念、使用场景、常见问题和解决方式。同时,我们还会介绍责任链模式与策略模式的区别,并结合电商交易系统的示例进行说明。此外,我们还会探讨责任链模式…

Basler 相机与LabVIEW进行集成

Basler 提供的相机驱动和 SDK (Software Development Kit) 允许用户通过 LabVIEW 对相机进行控制和图像采集。以下是 Basler 相机与 LabVIEW 集成的几种方式: 1. Baslers Pylon SDK Basler 提供的 Pylon SDK 是一套用于控制 Basler 相机的开发工具包,支…

ubuntu 安装 nvidia-docker

安装 nvidia-docker 之前要先安装好显卡驱动和docker,不需要安装CUDA 1、安装docker 先卸载旧版本docker sudo apt-get remove docker docker-engine docker.io containerd runc再进行 sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb…

ModuleNotFoundError: No module named ‘datasets‘

报错信息: 解决:安装datasets 方法1: pip install datasets 方法2: python3可以使用以下命令: pip3 install datasets