The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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-25, 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