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

【红外传感器】STM32C8T6标准库使用红外对管

好好学习,天天向上

  • 前言
  • 一、了解红外
  • 二、标准库的代码
    • 1.infrared.c
    • 2.infrared.h
    • 3.main.c
    • 4 现象
  • 总结


前言

红外线:频率介于微波与可见光之间的电磁波。
参考如下
【STM32】标准库与HAL库对照学习教程外设篇–红外避障传感器

光电红外传感器详解(STM32) <-这个UP🐖的常见传感器教学系列不错


一、了解红外

红外传感器,又叫循迹模块

对红外光线发射管与红外光线接收管、传感器电路组成,引脚上有VCC、GND、OUT三个引脚。

工作原理是红外光线发射管发射红外光线,红外光线接收管接收红外光线,当没有接收到返回的红外光线时,OUT引脚输出高电平,当接收到返回的红外光线时,OUT引脚输出低电平。

简单来说,就是有障碍物会输出为低电平。

原理图

在这里插入图片描述
LM393电压比较器,将红外对管的电压和电位器的电压进行比较,如果没有达到阈值,输出高电平。反之,低电平

二、标准库的代码

1.infrared.c

#include "infrared.h"//光电传感器-红外对管void infrared_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//GPIO配置控制 - 读取带电平信号GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = read_HW_Pin;				GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(read_HW_Port, &GPIO_InitStructure);}uint16_t infrared_Read(void)
{uint16_t tempData;tempData = !GPIO_ReadInputDataBit(read_HW_Port,read_HW_Pin);return tempData;
}

2.infrared.h

#ifndef __INFRARES_H
#define __INFRARES_H
#include "stm32f10x.h"#define read_HW_Pin GPIO_Pin_6
#define read_HW_Port GPIOAvoid infrared_Init(void);
uint16_t infrared_Read(void);#endif

3.main.c

点灯不放了,根据实际情况来

/********************************************************************************* @file    通信测试 * @author  susocool* @date    11-October-2024* @brief   红外对管测试*******************************************************************************/ #include "stm32f10x.h"	
#include "LED.h"
#include <stdlib.h>
#include "infrared.h"
#include "OLED.h"int main(void)
{uint16_t value;infrared_Init();OLED_Init();My_LED_Init();while(1){value= infrared_Read();OLED_ShowNum(1,1,value,6);if(value == 1){My_LED3_ON();}else{My_LED3_OFF();}}
}

4 现象

感觉,他的感知能力很奇怪啦。但是基本实现功能。
在这里插入图片描述
在这里插入图片描述


总结

我之前用的3.3V,半天没反应,我还以为是坏了,后面切换到5V供给VCC,就可以正常了。未必不是一种思路.
-----2024/10/10

http://www.lryc.cn/news/462835.html

相关文章:

  • STM32L010F4 最小系统设计
  • AI 工具大赏:探索智能时代的得力助手
  • 安通物流借助CRM重塑企业客户关系管理新格局
  • C++标准模板库--vector
  • 通信学习干货:运营商为什么要大力推广FTTR?
  • 【Spring篇】初识之Spring的入门程序及控制反转与依赖注入
  • OpenLayers:构建高质量的Web地图应用
  • Java比较两个Excel是否内容一致
  • UniApp入门教程
  • Vue.js中使用Element UI实现动态表单项管理及验证
  • 一插U盘就提示格式化?原因、恢复与预防全攻略
  • 云电脑使用教程标准版
  • 浏览器服务端文件下载控制(安全阻止、文件浏览器打开还是下载行为控制)
  • 机器学习——量子机器学习
  • [Linux] 创建可以免密登录的SFTP用户
  • 【部署篇】Redis-03主从模式部署(源码方式安装)
  • C/C++语言基础--C++四大类型转换讲解
  • KafKa 集群【docker compose】
  • 【工具篇】MLU运行XInference部署手册
  • 计算机网络:数据链路层 —— 扩展共享式以太网
  • 平安养老险深圳分公司:创新养老服务,深入践行金融为民
  • 静态站点生成器哪家强?
  • 从0开始部署优化虚拟机
  • 录屏有道, 四款必备录屏工具推荐!
  • 5G NR:UE初始接入信令流程浅介
  • 探索 Spring AI:Java 开发者的 AI 应用开发新利器
  • Linux历史
  • C++ 方法积累
  • 区块链-智能合约Solidity编程
  • VS Code创建VUE项目(一)工具安装与项目创建