找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1967|回復: 0
收起左側

TSL1401使用

[復制鏈接]
ID:668993 發(fā)表于 2019-12-20 10:26 | 顯示全部樓層 |閱讀模式
先介紹一下CCD模塊:該模塊有幾個重要的針腳

VCC:接電源正極 3.3v-5v

GND:接地

CLK:時鐘信號線

SI:邏輯信號線

AO:模擬信號輸出

1. 接法

一般VCC和GND都是直接接在單片機的接口上,如果獨立電源供電的話,注意要共地。AO接AD轉換接口。

2. 用法

使用方法如上圖所示

3. 代碼(這里使用arduino)

  digitalWrite(CCD_SI,HIGH);//SI拉高電平
  digitalWrite(CCD_CLK,HIGH);//時鐘高電平
  digitalWrite(CCD_SI,LOW);//SI低電平
  digitalWrite(CCD_CLK,LOW);//時鐘低電平
  for(i=0;i<128;i++)
  {
    digitalWrite(CCD_CLK,HIGH);
    digitalWrite(CCD_CLK,LOW);
  }//從這里結束曝光
  delayMicroseconds(exp_time);//曝光時間
  digitalWrite(CCD_SI,HIGH);
  digitalWrite(CCD_CLK,HIGH);
  digitalWrite(CCD_SI,LOW);
  piexl[0]=analogRead(A0);//AD,注意這個函數(shù)的返回值是0-1024的,所以至少要用10bit的大小才不會導致溢出。
  if(piexl[0]==255) piexl[i]=254;
  digitalWrite(CCD_CLK,LOW);
  for(i=1;i<128;i++)
  {
    digitalWrite(CCD_CLK,HIGH);
    piexl[i]=analogRead(A0);
    digitalWrite(CCD_CLK,LOW);
  }
  digitalWrite(CCD_CLK,HIGH);
  digitalWrite(CCD_CLK,LOW);
AD,注意這個函數(shù)的返回值是0-1024的,所以至少要用10bit的大小才不會導致溢出。
  if(piexl[0]==255) piexl[i]=254;
  digitalWrite(CCD_CLK,LOW);
  for(i=1;i<128;i++)
  {
    digitalWrite(CCD_CLK,HIGH);
    piexl[i]=analogRead(A0);
    digitalWrite(CCD_CLK,LOW);
  }
  digitalWrite(CCD_CLK,HIGH);
  digitalWrite(CCD_CLK,LOW);
4. 代碼介紹

每次使用ccd掃描數(shù)據(jù)的時候要進行兩次時序操作,數(shù)據(jù)輸出在第二次。

第一次時序操作是用來初始化端口的電平,兩次電平操作中間的是曝光時間設置。

輸出結果一般轉換成8比特位的數(shù)值,對應0-255的灰度值,白色是255,黑色是0

5. 常見問題解決

輸出不了數(shù)據(jù):檢查線路是否錯誤。檢查電平操作是否正確。檢查是否有進行兩次電平操作。

6. 數(shù)據(jù)查看

一般是使用串口將數(shù)據(jù)發(fā)送到上位機查看.

有現(xiàn)成的上位機軟件也可以自己去了解一下串口編程的api,自己編寫一個上位機。


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表