82、基于STM32单片机电动车充电桩 MLX90614温度检测自动灭火设计 (程序+原理图+PCB源文件+参考论文+开题报告+流程图+原理图文字讲解+元器件清单等)

一、设计简介:

本设计是基于STM32单片机电动车充电桩 MLX90614温度检测自动灭火设计,主要实现以下功能:

1、设计可以通过非接触红外测温传感器进行电动车充电桩温度检测。
2、按下按键,指示灯点亮模拟充电正在进行中。
3、可以通过按键设置温度上下限安全值。
4、当检测的温度小于下限时,蜂鸣器报警;当检测的温度高于上限时,蜂鸣器报警且继电器控制小风扇进行降温灭火,充电指示灯熄灭,充电结束。
5、当检测的温度过高,充电指示灯熄灭,这种状况表明充电出现故障,只能通过断电重新上电才能恢复正常充电。

主要硬件组成:

STM32单片机+LCD1602显示+继电器模块+DS18B20温度传感器+小风扇+非接触测温模块

二、原理图

三、PCB图 

四、程序源码  

五、资源获取  

本项目包含的所有文件都可以点击下面的名片,发送 “ 82、基于STM32单片机电动车充电桩 MLX90614温度检测自动灭火设计 ” 获取!
项目纯手打,不是免费的哦~
希望可以帮到你哈! 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于stm32f103的mlx90614红外检测程序的示例代码: ```c #include "stm32f10x.h" #include "i2c.h" #include "delay.h" #define SCL GPIO_Pin_6 #define SDA GPIO_Pin_7 #define IIC_SCL_H GPIO_SetBits(GPIOB, SCL) #define IIC_SCL_L GPIO_ResetBits(GPIOB, SCL) #define IIC_SDA_H GPIO_SetBits(GPIOB, SDA) #define IIC_SDA_L GPIO_ResetBits(GPIOB, SDA) #define IIC_SDA_IN GPIO_InitTypeDef GPIO_InitStructure; \ GPIO_InitStructure.GPIO_Pin = SDA; \ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; \ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; \ GPIO_Init(GPIOB, &GPIO_InitStructure) #define IIC_SDA_OUT GPIO_InitTypeDef GPIO_InitStructure; \ GPIO_InitStructure.GPIO_Pin = SDA; \ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; \ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; \ GPIO_Init(GPIOB, &GPIO_InitStructure) void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = SCL | SDA; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_Init(GPIOB, &GPIO_InitStructure); IIC_SCL_H; IIC_SDA_H; } void IIC_Start(void) { IIC_SDA_OUT; IIC_SDA_H; IIC_SCL_H; delay_us(5); IIC_SDA_L; delay_us(5); IIC_SCL_L; } void IIC_Stop(void) { IIC_SDA_OUT; IIC_SCL_L; IIC_SDA_L; delay_us(5); IIC_SCL_H; IIC_SDA_H; delay_us(5); } uint8_t IIC_WaitAck(void) { uint16_t cnt = 0; IIC_SDA_IN; IIC_SDA_H; delay_us(1); IIC_SCL_H; delay_us(1); while (GPIO_ReadInputDataBit(GPIOB, SDA)) { cnt++; if (cnt > 250) { IIC_Stop(); return 1; } } IIC_SCL_L; return 0; } void IIC_SendByte(uint8_t byte) { uint8_t i; IIC_SDA_OUT; for (i = 0; i < 8; i++) { if (byte & 0x80) IIC_SDA_H; else IIC_SDA_L; byte <<= 1; delay_us(1); IIC_SCL_H; delay_us(1); IIC_SCL_L; } } uint8_t IIC_ReceiveByte(void) { uint8_t i, byte = 0; IIC_SDA_IN; for (i = 0; i < 8; i++) { byte <<= 1; IIC_SCL_H; delay_us(1); if (GPIO_ReadInputDataBit(GPIOB, SDA)) byte |= 0x01; IIC_SCL_L; delay_us(1); } return byte; } uint16_t MLX90614_ReadTemp(void) { uint16_t temp; IIC_Start(); IIC_SendByte(0xB4); IIC_SendByte(0x07); IIC_Stop(); delay_ms(5); IIC_Start(); IIC_SendByte(0xB5); temp = IIC_ReceiveByte() << 8; temp |= IIC_ReceiveByte(); IIC_Stop(); return temp; } int main(void) { uint16_t temp; IIC_Init(); while (1) { temp = MLX90614_ReadTemp(); temp = (temp * 0.02) - 273.15; delay_ms(1000); } } ``` 该代码使用了STM32F103芯片,以及I2C通信协议,通过读取MLX90614红外检测模块的寄存器数据,计算出温度值并输出。需要注意的是,该代码仅供参考,具体实现还需根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值