基于PIC16F877的红外测距系统
出处:网络整理 发布于:2025-06-12 17:12:20
基于 PIC16F877 的红外测距系统设计,主要利用红外传感器(如 GP2Y0A21YK 或 SHARP IR 系列)进行非接触式距离测量,并通过单片机处理数据,终显示或输出结果。以下是完整的系统设计方案:
1. 系统组成
模块 | 功能说明 |
---|---|
PIC16F877 | 主控MCU,负责信号采集、处理和输出 |
红外测距传感器 | 如GP2Y0A21YK(10-80cm) |
ADC模块 | 将模拟电压信号转换为数字值 |
LCD显示 | 如16x2字符LCD,显示距离值 |
蜂鸣器/报警 | 超出阈值时报警(可选) |
电源管理 | 5V稳压供电 |
2. 硬件连接
PIC16F877 与红外传感器
PIC16F877 引脚 | 连接目标 | 说明 |
---|---|---|
RA0/AN0 | 红外传感器输出 | 模拟输入(ADC通道0) |
VDD (+5V) | 传感器VCC | 供电(需注意电流要求) |
GND | 传感器GND | 共地 |
PIC16F877 与 LCD
PIC16F877 引脚 | LCD 引脚 | 说明 |
---|---|---|
RB0-RB7 | D0-D7 | 数据总线(8位) |
RC0 (RS) | RS | 寄存器选择 |
RC1 (RW) | RW(可接地) | 读/写控制 |
RC2 (EN) | EN | 使能信号 |
其他可选模块
蜂鸣器 → 连接 RD0(通过三极管驱动)
LED指示灯 → 连接 RD1(距离正常/异常指示)
3. 软件设计(C语言,MPLAB X IDE + XC8编译器)
(1) ADC初始化
#include <xc.h> #define _XTAL_FREQ 4MHz // 假设使用4MHz晶振 void ADC_Init() { ADCON1 = 0b10000000; // 右对齐,AN0-AN7模拟输入 ADCON0 = 0b01000001; // 选择AN0,ADC使能,Fosc/8 } int ADC_Read(int channel) { ADCON0 = (ADCON0 & 0b11000011) | (channel << 2); // 选择通道 __delay_us(20); // 采样时间 GO_nDONE = 1; // 启动转换 while (GO_nDONE); // 等待转换完成 return (ADRESH << 8) + ADRESL; // 返回10位ADC值 }
(2) 红外测距计算
红外传感器(如GP2Y0A21YK)输出电压与距离成反比,需校准公式:
float Get_Distance() { int adc_value = ADC_Read(0); // 读取AN0的ADC值 float voltage = adc_value * 5.0 / 1023.0; // 转换为电压(0-5V) float distance_cm = 27.86 * pow(voltage, -1.15); // 校准公式(需实测调整) return distance_cm; }
注意:公式
27.86 * V^(-1.15)
是GP2Y0A21YK的近似关系,实际需用标定数据修正。
(3) LCD显示
#include "lcd.h" // 假设已实现LCD驱动 void main() { ADC_Init(); LCD_Init(); while (1) { float distance = Get_Distance(); LCD_Clear(); LCD_String("Distance:"); LCD_SetCursor(2, 1); LCD_PrintFloat(distance, 1); // 显示1位小数 LCD_String(" cm"); __delay_ms(500); } }
(4) 报警功能(可选)
if (distance > 50.0) { // 超过50cm报警 RD0 = 1; // 蜂鸣器响 RD1 = 1; // LED亮 } else { RD0 = 0; RD1 = 0; }
4. 关键注意事项
传感器供电稳定:红外传感器对电压敏感,建议使用LDO稳压(如AMS1117-5V)。
ADC参考电压:确保VREF稳定,可外接精准基准电压(如2.5V)提高精度。
非线性校准:红外传感器输出非线性,需通过实测数据拟合公式(如分段线性化)。
抗干扰:
避免环境光干扰(加遮光罩)。
软件上可多次采样取平均(如采样10次去极值后平均)。
5. 扩展优化
串口输出:通过UART将距离数据发送到PC(如Putty显示)。
无线传输:加装蓝牙模块(HC-05)实现手机监控。
多传感器融合:结合超声波模块(HC-SR04)提高测距范围。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 陀螺仪是什么,它的工作原理是什么?2025/8/6 11:39:27
- EMI 滤波器应用揭秘:实现和谐 “共舞” 的秘诀2025/8/6 11:08:06
- 整流二极管反向恢复过程全解析2025/8/6 10:42:32
- 锁存器与触发器的区别2025/8/5 17:08:30
- 减速机有什么用?它的作用在哪?2025/8/5 16:52:16