标题:
关于TEMT6000的输出为什么大多数是0跟255?
[打印本页]
作者:
一站到底
时间:
2020-5-15 23:07
标题:
关于TEMT6000的输出为什么大多数是0跟255?
大佬们,请问一下TEMT6000在经过ADC转换在lcd显示屏上显示出来的数值为什么大多数是0跟255?是需要特定的转换公式吗?
作者:
TTQ001
时间:
2020-5-16 07:48
它的照度应在10至1000 lux范围内呈线性,输出应在一个已知值(例如10k欧姆)的电阻上进行测量。 如果将模拟亮度转换为数字值的代码正确,则显示的值应为0到255之间的任何数字,与亮度相对应,除非将传感器置于完全黑暗的环境中或环境光超过1000 lux。
作者:
一站到底
时间:
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 数据
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1