TSL1401CL线性CCD模块使用方法
TSL1401CL模块含有128个感光单元呈线性排列,每一个感光单元可以读取环境的光线强度并转换为电压输出,光线越强电压值越高,因此可以通过单片机的ADC依次采集每个感光单元的电压值(共128组)并存在数组中。
TSL1401CL接口:
· SI--串行输入口,决定数据序列的起始,用单片机IO口控制即可;
· CLK--时钟管脚,控制电荷转换、输出像素和芯片复位,可用单片机IO口或者PWM控制;
· AO--模拟输出,接单片机的ADC口进行采集;
· VDD--接电源正 (3.3V—5.2V);
· GND--接电源地;
操作时序图:
Arduino驱动程序
digitalWrite(CCD_CLK,1);
digitalWrite (CCD_SI,0);
delayMicroseconds(1);
digitalWrite (CCD_SI,1);
digitalWrite (CCD_CLK,0);
delayMicroseconds(1);
digitalWrite (CCD_CLK,1);
digitalWrite (CCD_SI,0);
delayMicroseconds(1);
for(i=0;i<128;i++)
{
digitalWrite(CCD_CLK,0);
delayMicroseconds(1);
b=analogRead(ADC_pin);
delayMicroseconds(1);
CCD_ADV[i]=b/4; //除以4可将十位ADC值转化为八位
delayMicroseconds(1);
digitalWrite (CCD_CLK,1);
delayMicroseconds(1);
}
## 在使用上位机时,上位机的接收数据类型要与单片机发送的数据类型一至。
如:单片机发送数据类型为HEX,上位机也要调为HEX接收。