avrCCD

avrCCD is an Interface to TSL1401 128×1 Linear Sensor Array with Hold.

CCD

The TSL 1401 linear sensor array consists of a 128×1 array of photodiodes. The pixel measures 63.5um (H) by 55.5 um (W) with 63.5 um center to center spacing.

The Interface:
The interface is very simple, not as complicated as interfacing “bigger” CCD Linear Sensors.

All you need is to generate two Signals (Clk & Si):

CCD2CCD1

The Source Code:

The CLK signal is generated within a loop that counts for every pixel. The ADC then samples each output before the next clock edge is generated. The data are then transmitted to the PC via the AVR’s UART.

The analog output signal A0 is amplified to near the ADC’s reference voltage to use the complete conversation range. I’ve used a rail-to-rail amplifier (CA3130) for this.

The PC Interface – Viewing the data with VB.NET:

To dispaly the data I’ve written a small VB.net application that allows you to modify the integration time, measure distances in mm or mil. The red line is the mean value. The 50 next to the OFF-Buton means that the data are updated every 50ms.

CCD4

Downloads:

Tags: ,

10 Responses to “avrCCD”

  1. Jan Says:

    Hi,

    where did you get these line sensors?

    Thank you,

    Jan

  2. theFloe Says:

    Hi,

    I bought it here: http://www.w-r-e.de/shop/index.html

  3. Salar Says:

    Hi
    I downlod avr and pc program. But avr program does not compile. can you send me .Hex file. thanks a lot

  4. theFloe Says:

    The problem is that the source was for an older version of avrgcc. Include compat/deprected.h and try to compile again. alternative you could define the cbi, sbi macros yourself:
    #define sbi(port, bit) (port) |= (1 < < (bit))
    #define cbi(port, bit) (port) &= ~(1 << (bit))

  5. Jan Says:

    Hi,

    could you maybe post or mail a schematic of this complete setup ?

    Thanks,

  6. Celso Manoel da Silva Says:

    Hi

    Can you send me shematic

    thanks a lot

  7. Celso Says:

    Hi!
    I wolud like to see the eletrical scheme between the microcontroler and the sensor.
    thank you

  8. theFloe Says:

    Hi,

    Just connect CLK and SI to the AVR. For the analog Output of the CCD i used a OPV amplifier with a gain of about 2 (i don’t really remember). Sorry I do not have a drawn diagram.

    Tobi

  9. BRACA Says:

    Could you deeply explain how to interface the camera to microcontroller?
    I’m trying to detect a black line in a white underground, but I don’t know how to interpret the signals from the camera in order to follow the line. I’m using a freescale microcontroller.

  10. theFloe Says:

    You need to create Clk & Si signals as shown in the diagrams above. The output of the CCD is an analog voltage for each pixel representing the amount of light falling onto the pixel during the integration time. I buffered the analog signal using a unity gain follower and connected it to the AVRs ADC. Now you have to time the conversation with your pixel clk and your done. A black line on a white background would give you a range of pixels with lower voltage in your result.

Leave a Reply

CAPTCHA Image CAPTCHA Audio
Refresh Image