找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1572|回复: 2
打印 上一主题 下一主题
收起左侧

求助GP2Y1014AU0F粉尘传感器的输出电压过低

[复制链接]
跳转到指定楼层
楼主
如题,MCU是STC89C52RC,传感器是GP2Y1014AU0F,AD芯片是TLC0832


这是传感器部分的电路,为了方便看把外围电路和传感器内部电路放在一起,实物是用线连接的
具体问题是和AD芯片相连的2脚Vout输出电压过低,低尘环境万用表测出来只有0.007~0.016V。
手册上给的输出电压应该在0.6~5.0V,无尘环境应该在0.6~0.9V。
拿其它可以正常读数的板子用同一个传感器测出来是0.05~0.20V。

我的板子:Vout输出电压0.007-0.016V          Vled二极管供电电压1.37-4.48V           Led控制电压0.59-4.45V
参考的正常板子:Vout输出电压0.05-0.20V          Vled二极管供电电压2.00-4.98V           Led控制电压1.80-4.98V

输出电压的波形图:

有一个非常夸张的1V尖刺,其它部分还是0.016V

以下是主要的控制代码

int GP2Y101x_init()
{
        uchar FC_NUM;                                  //定义变量
        long SUM = 0;
                 if (FlagStartRH == 1)         //转换标志是否为1
                        FlagStartRH=0;        
                        for(FC_NUM=0;FC_NUM<100;FC_NUM++)
                        {
                                LED_DUST=1;                  //打开LED
                                
                                delay_tus(280)
                        
                                
                                //FC=(float)(adc0832(0)-0.6)*0.172/0.5*1000;
                                FC=(float)(adc0832(0)*0.0196-6.6)/0.5*1000;


                                
                                LED_DUST=0;                                 //关闭LED
                        
                                SUM=SUM+FC;                   //累加数值
                                if(SET_KEY==0) break;
                        }
                        FC = SUM/FC_NUM;       //取平均值
                        if(FC>999) FC = 999;           //正常达不到999
                        SUM=0;                           //累加值清零
                return FC;
}


其中转换标志FlagStartRH由定时器T0控制,大约1s采样一次。
为了看过小的输出电压有没有变化,中间的计算公式数值都改过肯定不对。
adc0832转换函数应该没问题,至少能读出电压变化,主要还是输出电压太低了。



/***********************************************************************
2023年5月25日16:25更新进度
***********************************************************************/
抱歉保存草稿点成发帖发出来了,第一次发帖还没找到在哪里删除。
问题已经初步解决了,大概是输出和采集没对上或者哪里冲突了。



重新测了一遍输出波形,去电尖刺后可以看到采样的输出在0.3V左右,虽然官方数据手册给的无尘电压是0.6V,但应该是可以转换成数据的。

之前没有提到的是这是一个空气质量检测系统,还有温湿度传感器之类的其它传感器,采用的结构是分别按顺序控制采样。
我把GP2Y1014粉尘传感器的驱动控制单独提了出来,写了个只驱动它的代码,内容基本没变。

结果,成了,问题没有出现,直接原因是输出和采集没有对上,但根本原因还没查明。
这是我的设计,接下来一两周我努力找找原因吧,如果找到会在这里更新。


这是正常的无尘波形,读数还是很低但能正常反馈了。

果然我还是应该把帖子删了,等我学会怎么删就回来删。
谢谢大家进来帮我,麻烦你们了,感激不尽。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1067216 发表于 2023-5-25 16:09 | 只看该作者
刚才想存草稿不小心点成发帖了。我是第一次发帖,问题已经大概找到了。

这是标题里的错误输出波形,可以看到还是有0.5V电压,虽然手册给的无尘电压是0.6V但也足以输出一个合理的数了,那么问题在哪呢。

我问题描述里没有提及这个系统的另一个传感器,SHT20温湿度传感器。
后来我把GP2Y1014AU0F传感器单独摘出来,单独写了个驱动控制就成功了。

也就是说,问题应该出在数据传输或者驱动过程中两者冲突了,也可能是我控制部分本来就错了,某个地方有延迟导致驱动和采样没有对上。
具体原因我还没找到,先在这里更新一下进度。

这是我的DIY内容的一部分,如果接下来一两周解决不了估计就放弃了,有解决进度会在这里更新。

果然我还是应该把这个帖子删了,等我学会怎么删就删了吧。
谢谢大家点进来看,有什么建议还请畅所欲言。
回复

使用道具 举报

板凳
ID:1112270 发表于 2024-3-11 13:57 | 只看该作者
请问你解决问题了嘛?我也遇到输出电压过低的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表