NAME

PINE64::GPIO - Perl interface to PineA64 and PineA64+ GPIO pins

SYNOPSIS

        use PINE64::GPIO;

        #instantiate PINE64::GPIO object
        my $p64 = PINE64::GPIO->new();
        
        #export pin 25 (physical pin 40) for output
        $p64->gpio_enable(25, 'out');

        #continuously blink LED
        for(;;){
                $p64->gpio_write(25, 1);
                sleep(1);
                $p64->gpio_write(25, 0);
                sleep(1);
        }#end for

DESCRIPTION

This module manipulates the GPIO file system interface of the PineA64 and PineA64+ single board computers so you can control the GPIO pins on the PineA64's PI-2 bus.

The PineA64's 40-pin PI-2 bus has the same pinout as the Raspberry Pi's 40-pin GPIO, however this module has it's own GPIO pin numbering convention for the 26 GPIO pins as follows:

Module# Physical# A64 sys# ------------------------------------------ 0 3 227 1 5 226 2 7 362 3 11 71 4 13 233 5 15 76 6 19 64 7 21 65 8 23 66 9 29 229 10 31 230 11 33 69 12 35 73 13 37 80 14 8 32 15 10 33 16 12 72 17 16 77 18 18 78 19 22 79 20 24 67 21 26 231 22 32 68 23 36 70 24 38 74 25 40 75

METHODS

new()

Returns a new PINE64::GPIO object.

gpio_enable($pin, 'out')

Takes the GPIO pin number and direction as arguments and exports it for use as either an input or output.

Valid pin number arguments are 0-15, and the direction is either 'in' or 'out'.

$p64->gpio_enable(25, 'out');

gpio_read($pin)

Takes pin number as an argument and returns the logic value on the pin.

gpio_write($pin, $value)

Takes pin number and value as an argument and writes the value to the GPIO pin. Valid values are 0 or 1.

gpio_disable($pin)

Takes pin number as an argument and unexports the pin in the file system interface.

AUTHOR

Dustin La Ferney