2017年5月13日 星期六

Teensyduino (筆記 4 ) Teensy 3.6 BPW21R 光電二極體(PD)

****軟體使用 Teensyduino  1.36  + Arduino 1.82 ********

    光電二極體與常規的半導體二極體基本相似,只是光電二極體可以直接暴露在光源附近或通過透明小窗、光導纖維封裝,來允許光到達這種器件的光敏感區域來檢測光訊號。許多用來設計光電二極體的二極體使用了一個PIN結,而不是一般的PN接面,來增加器件對訊號的響應速度。光電二極體常常被設計為工作在逆向偏壓狀態。
   一個光電二極體的基礎結構通常是一個PN接面或者PIN結。當一個具有充足能量的光子衝擊到二極體上,它將激發一個電子,從而產生自由電子(同時有一個帶正電的電洞)。這樣的機制也被稱作是內光電效應。如果光子的吸收發生在結的空乏層,則該區域的內電場將會消除其間的屏障,使得電洞能夠向著陽極的方向運動,電子向著陰極的方向運動,於是光電流就產生了。實際的光電流是暗電流和光照產生電流的綜合,因此暗電流必須被最小化來提高器件對光的靈敏度。

 這是BPW21R 的照片現在半導體這樣亮晶晶的包裝不多了


     Teensy 3.6 內部有16Bit 的ADC預設滿檔位3.3v的狀況下提供了65536的分辨率,比Arduino的10Bit 的1024高出許多。

電路圖



/****以下是程式碼****/

#include <Adafruit_GFX.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_ILI9341.h>

#include <ADC.h>

int readPin = A0; // ADC0

ADC *adc = new ADC();; // adc object

#define TFT_RST   24       //LCM  接腳
#define TFT_DC    25
#define TFT_CS    26
#define TFT_MOSI  27
#define TFT_MISO  28
#define TFT_CLK   29

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);

void setup() {

    pinMode(readPin, INPUT);
    
    tft.begin();                                          //LCM 啟始
    tft.fillScreen(ILI9341_BLACK);      //LCM 畫面更新為黑色
    tft.setRotation(1);                             // LCM 旋轉90度

    adc->setAveraging(64); // set number of averages
    adc->setResolution(16); // set bits of resolution

    adc->setConversionSpeed(ADC_CONVERSION_SPEED::VERY_LOW_SPEED); // change the conversion speed
    adc->setSamplingSpeed(ADC_SAMPLING_SPEED::VERY_LOW_SPEED); // change the sampling speed
    delay(500);
}

int value = 0;
int pin=0;

void loop() {

    value = adc->adc0->analogRead(readPin); // read a new value, will return ADC_ERROR_VALUE if the comparison is false.
    tft.setCursor(0,0);
    tft.setTextSize(2);
    tft.fillRect(0,0,320,40,0);
    tft.print("Value: ");
    tft.print(value*3.3/adc->getMaxValue(ADC_0), DEC);
    
    delay(1000);

}

上傳到Teensy 3.6後 就會開始顯示光電二極體偵測到的亮度值,因為這設計是要低照度下還能做線性檢出在一般亮度下一定爆表,如果應用在一般亮度須更改放大器的放大倍率!!

這是關燈後的照片感測電路還可輸出1.4V左右


這是開燈後的照片,改測器輸出已經是滿檔的3.2V。


Teensy3.6雖然有16Bit的ADC但是在麵包版上雜訊等問題能達到12Bit的穩定度就很好了。

沒有留言:

張貼留言