推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

获得赏金
20.00元
对射式红外传感器计次+外部中断+KEIL+标准库开发(详细注释教程)

更新时间:2024-06-08 21:11:15 大小:8M 上传用户:mulanhk查看TA发布的资源 标签:红外传感器外部中断keil 下载积分:4分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

项目内容:

用STM32F10X标准库进行开发,基于KEIL平台

包含对射式红外传感器的封装函数部分

还有OLED屏的显示部分函数

有详细的教程文档和源代码(包括注释)


对射式红外传感器原理介绍

image.png


1. 使用进口ITR9606高灵敏度槽型光耦传感器,槽宽度5mm。

2. 有输出状态指示灯,输出高电平灯灭,输出低电平灯亮。

3. **有遮挡,输出高电平;无遮挡,输出低电平。**

4. 比较器输出,信号干净,波形好,驱动能力强,超过15mA。

5. 工作电压**3.3V-5V**

6. 输出形式:数字开关量输出(0和1)

7. 设有M3固定螺栓孔,方便安装

8. 小板PCB尺寸:3.2cm x 1.4cm

9. 使用宽电压LM393比较器

10. **广泛用于电机转速检测,脉冲计数,位置限位等。**


实现思路

利用MCU主控板对对射式红外传感器的反馈信号,进行不间断读取电平信号。根据读取的信号不同,在OLED屏上面显示计次增加后的结果。思路很简单,接下来是实现过程。


工程配置

源代码

OLED.h

image.png


第一个是OLED屏的初始化函数,进行在MCU主控上电后的初始化。

第二个是OLED屏的清屏函数,用来进行清除屏幕上的像素点。

对于个人来说最重要的是定义SCL和SDA,时钟线和数据线这两个引脚配置

image.png

COUNTER.C


对射式红外传感器的封装函数


image.png

首先开启RCC时钟源,开启AFIO时钟,用于外部中断

GPIO端口初始化:

包括对引脚输出模式,端口选择,运行速率。

打开外部中断。

外部中断部分配置:


image.png


参数包括:

中断优先级和响应优先级。


中断回调函数的编写:


image.png

主函数实现

int main(void)

{

/*模块初始化*/

OLED_Init(); //OLED初始化

CountSensor_Init(); //计数传感器初始化

/*显示静态字符串*/

OLED_ShowString(1, 1, "Count:"); //1行1列显示字符串Count:

while (1)

{

OLED_ShowNum(1, 7, CountSensor_Get(), 5); //OLED不断刷新显示CountSensor_Get的返回值

}

}


最终实现效果图

image.png



部分文件列表

文件名大小
对射式红外传感器计次+外部中断+KEIL+标准库开发/
对射式红外传感器计次+外部中断+KEIL+标准库开发/DebugConfig/
对射式红外传感器计次+外部中断+KEIL+标准库开发/DebugConfig/Target_1_STM32F103C8_1.0.0.dbgconf7KB
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/CountSensor.c4KB
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/CountSensor.h
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/Key.c2KB
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/Key.h
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/LED.c3KB
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/LED.h
对射式红外传感器计次+外部中断+KEIL+标准库开发/Hardware/OLED.c8KB
...
  • 21ic小能手打赏了20.00

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载