找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于TEMT6000的输出为什么大多数是0跟255?

[复制链接]
跳转到指定楼层
楼主
ID:349275 发表于 2020-5-15 23:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大佬们,请问一下TEMT6000在经过ADC转换在lcd显示屏上显示出来的数值为什么大多数是0跟255?是需要特定的转换公式吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:420836 发表于 2020-5-16 07:48 | 只看该作者
它的照度应在10至1000 lux范围内呈线性,输出应在一个已知值(例如10k欧姆)的电阻上进行测量。 如果将模拟亮度转换为数字值的代码正确,则显示的值应为0到255之间的任何数字,与亮度相对应,除非将传感器置于完全黑暗的环境中或环境光超过1000 lux。
回复

使用道具 举报

板凳
ID:349275 发表于 2020-5-16 10:24 | 只看该作者
TTQ001 发表于 2020-5-16 07:48
它的照度应在10至1000 lux范围内呈线性,输出应在一个已知值(例如10k欧姆)的电阻上进行测量。 如果将模拟 ...

你好,它的输出值有在一个10K的电阻上进行测量,然后置于的环境也是正常的室内环境。将模拟亮度转换为数字值的是用ADC0832转换的,代码如下,能帮忙看一下吗?
uchar Adc0832()     //AD转换,返回结果
{
   uchar u=0;
   uchar dat=0;
   ADCLK=0;
   delayms(1);
   ADCS=0;//拉低CS端
   delayms(1);
   ADDI=1;
   delayms(1);
   ADCLK=1;//拉高CLK端
   delayms(1);
   ADCLK=0;//形成下降沿1
   delayms(1);
   ADCLK=1;//拉高CLK端
   ADDI=1;
   delayms(1);
   ADCLK=0;//形成下降沿2
   delayms(1);
   ADCLK=1;//拉高CLK端
   ADDI=1;
   delayms(1);
   ADCLK=0;//形成下降沿3
   delayms(1);
   ADDI=1;//控制命令结束
   delayms(1);
   dat=0;
   for(u=0;u<8;u++)
   {       
     ADCLK=1;
     delayms(1);
     ADCLK=0;//形成一次时钟脉冲
     delayms(1);
         dat|=ADDO;//收数据
         if(u<7)
     dat<<=1;
   }  
   for(u=0;u<8;u++)
   {   
     ADCLK=1;
     delayms(1);
     ADCLK=0;//形成一次时钟脉冲
     delayms(1);
   }
   ADCS=1;//拉低CS端
   ADCLK=0;//拉低CLK端
   ADDO=1;//拉高数据端,回到初始状态
   return dat;            //return 数据       
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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