## HiPi::Interface::HTADCI2C

This module provides an interface to the HobbyTronics HTADCI2C analog to digital converter with i2c interface.

It uses HiPi::Device::I2C as a backend

IMPORTANT: I have found that this device employs clock stretching and requires an i2c bus baudrate of 32000.

See I2C Device Driver.

## Object Constructor and Methods

##### my $adc = HiPi::Interface::HTADCI2C->new( %params );

        Returns a new instance of the HiPi::Interface::HTADCI2C class.

        Optional key => values pairs in %params and their defaults

        address     => 0x28,
        devicename  => ( RPi board rev == 1 ) ? '/dev/i2c-0' : '/dev/i2c-1',
        res         => 1,
        fil1        => 0,
        fil0        => 0,

        The keys res, fil1 and fil0 correspond to the configuration bytes
        described in the adci2c datasheet.

        when : res   == 1 - device has  8 bit resolution
               res   == 0 - device has 10 bit resolution
               fil0  == 1 - use complimentary feature

        ( fil1 currently unused according to datasheet )

        Example usage with 10 bit resolution and complimentary feature

        my $adc = HiPi::Interface::HTADCI2C->new( res => 1, fil0 => 1 );

##### my @vals = $adc->read_register();

        Returns an array containing the 10 values read from all of the
        connectors on the adci2c.

        The values will always be between 0 and 1020. When the device is
        in 8 bit mode, values are shifted to their 10 bit equivalent.

##### my $val = $adc->read_channel( $channel );

        $channel - the number of the channel to read ( 0 - 9 )

        A convenience method that allows retrieving the value for a
        single channel.

        Calls read_register internally and extracts the required value.

##### my @vals = $adc->read_channels( @channels );

        @channels - An array specifying the channels to retrieve.

        A convenience method that allows retrieving the values for a
        number of specified channels. The return @vals will contain
        a number of values equal to the number of @channels requested
        in the order requested.

        e.g. my @vals = $adc->read_channels(0,5,7);
        print $vals[0] . ' is value for channel 0' .qq(n);
        print $vals[1] . ' is value for channel 5' .qq(n);
        print $vals[2] . ' is value for channel 7' .qq(n);

        Calls read_register internally and extracts the required values.

HiPi Modules Copyright © 2013 - 2016 Mark Dootson