NAME

RPi::WiringPi::Pin - Access and manipulate Raspberry Pi GPIO pins

SYNOPSIS

use RPi::WiringPi;

use constant {
    INPUT => 0,
    OUTPUT => 1,
    ON => 1,
    OFF => 0,
};

my $pi = RPi::WiringPi->new;

my $pin = $pi->pin(5);

$pin->mode(OUTPUT);
$pin->write(ON);

my $pin_num = $pin->num;
my $pin_state = $pin->read;

print "pin number $pin_num is in state $pin_state\n";

DESCRIPTION

Through a RPi::WiringPi object, creates objects that directly attach to Raspberry Pi GPIO pins.

Using the pin object's methods, the GPIO pins can be controlled and monitored.

METHODS

new($pin_num)

Takes the number representing the Pi's GPIO pin you want to use, and returns an object for that pin.

Parameters:

$pin_num

Mandatory.

The wiringPi representation of a pin number.

mode($mode)

Puts the GPIO pin into either INPUT or OUTPUT mode. If $mode is not sent in, we'll return the pin's current mode.

Parameters:

$mode

Optional: If not sent in, we'll simply return the current mode of the pin. Otherwise, send in: 0 for INPUT, 1 for OUTPUT, 2 for PWM and 3 for GPIO_CLK (clock) mode.

read()

Returns 1 if the pin is HIGH (on) and 0 if the pin is LOW (off).

write($state)

For pins in OUTPUT mode, will turn on (HIGH) the pin, or off (LOW).

Parameters:

$state

Send in 1 to turn the pin on, and 0 to turn it off.

pull($direction)

Used to set the internal pull-up or pull-down resistor for a pin.

Parameter:

$direction

Mandatory: 2 for UP, 1 for DOWN and 0 to turn off the resistor.

pwm($value)

Sets the level of the Pulse Width Modulation (PWM) of the pin. Dies if the pin's mode() is not set to PWM (2).

Parameter:

$value

Mandatory: values range from 0-1024. 0 for 0% (off) and 1024 for 100% (fully on).

num()

Returns the wiringPi numeric representation of the GPIO pin number attached to this pin object.

SEE ALSO

AUTHOR

Steve Bertrand, <steveb@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2016 by Steve Bertrand

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.18.2 or, at your option, any later version of Perl 5 you may have available.