ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [비] TCD1201D Code
    LinearImageSensor 2022. 4. 1. 20:39

    TCD1201D 이미지 센서 코드

    TCD1201D linear CCD connected to Arduino.  
    Pin map: 

    SS(2)=GND OD=5V 8=SH 9=CLK1 10=CLK2 11=BT 12=RS OS=A0.

    tcd1201d.ino

    #define TCD_SH 0x01
    #define TCD_CLK1 0x02
    #define TCD_CLK2 0x04
    #define TCD_BT 0x08
    #define TCD_RS 0x10
    
    void tcd1201d_setup() {
      DDRB = 0x1F;
    }
    
    unsigned char tcd1201d_out[1047];
    
    int tcd1201d_dark;
    
    void tcd1201d_read() {
      PORTB = TCD_SH | TCD_CLK1;
      PORTB = TCD_CLK1;
      
      for (int i = 0; i < 1047; ++i) {
        PORTB = TCD_CLK1;
        PORTB = TCD_RS | TCD_CLK1;
        PORTB = TCD_RS | TCD_BT | TCD_CLK1;
        PORTB = TCD_BT | TCD_CLK1;
        PORTB = TCD_BT | TCD_CLK2;
        // Could read here too, but we'll skip half of them.
    
        PORTB = TCD_CLK2;
        PORTB = TCD_RS | TCD_CLK2;
        PORTB = TCD_RS | TCD_BT | TCD_CLK2;
        PORTB = TCD_BT | TCD_CLK2;
        PORTB = TCD_BT | TCD_CLK1;
            
        int v = analogRead(A0);
        if (i == 14) tcd1201d_dark = v;
        if (v > tcd1201d_dark) v = tcd1201d_dark;
        v = (tcd1201d_dark - v) / 2;
        if (v > 255) v = 255;
        tcd1201d_out[i] = v;
      }
    }
    
    void setup() {
      analogReference(DEFAULT);
      tcd1201d_setup();
      Serial.begin(115200);
    }
    
    void loop() {
      tcd1201d_read();
      tcd1201d_read();
      for (int i = 0; i < 1047; ++i) {
        Serial.print(tcd1201d_out[i], HEX);
      }
      Serial.println();
    }

     

    'LinearImageSensor' 카테고리의 다른 글

    TCD1209DG 정보  (0) 2022.04.01
    아두이노 Linear CCD project  (0) 2022.04.01
    TCD1304AP + 아두이노 자료  (0) 2022.04.01
    TCD1201 이미지 센서  (0) 2022.04.01
    [비] FCCD 143A PDF 관련 자료 모음  (2) 2022.04.01
Designed by Tistory.