RPi-WiringPi
view release on metacpan or search on metacpan
lib/RPi/WiringPi.pm view on Meta::CPAN
$i2c_addr
Optional, Integer: The I2C address of your display. Defaults to C<0x3C> if not
sent in.
=head2 pin($pin_num)
Returns a L<RPi::Pin> object, mapped to a specified GPIO pin, which
you can then perform operations on. See that documentation for full usage
details.
Parameters:
$pin_num
Mandatory, Integer: The pin number to attach to.
=head2 rtc
Creates a new L<RPi::RTC::DS3231> object which provides access to the C<DS3231>
or C<DS1307> real-time clock modules.
See the linked documentation for full documentation on usage, or the
L<RPi::WiringPi::FAQ> for some usage examples.
Parameters:
$i2c_addr
Optional, Integer: The I2C address of the RTC module. Defaults to C<0x68> for
the C<DS3231> unit.
=head2 expander
Creates a new L<RPi::GPIOExpander::MCP23017> GPIO expander chip object. This
adds an additional 16 pins across two banks (8 pins per bank).
See the linked documentation for full documentation on usage, or the
L<RPi::WiringPi::FAQ> for some usage examples.
Parameters:
$i2c_addr
Optional, Integer: The I2C address of the device. Defaults to C<0x20>.
$expander
Optional, String: The GPIO expander device type. Defaults to C<MCP23017>, and
currently, this is the only option available.
=head2 serial($device, $baud)
Creates a new L<RPi::Serial> object which allows basic read/write access to a
serial bus.
See the linked documentation for full documentation on usage, or the
L<RPi::WiringPi::FAQ> for usage examples.
NOTE: Bluetooth on the Pi overlays the serial pins (14, 15) on the Pi. To use
serial, you must disable bluetooth in the C</boot/config.txt> file:
dtoverlay=pi3-disable-bt-overlay
=head2 servo($pin_num)
This method configures PWM clock and divisor to operate a typical 50Hz servo,
and returns a special L<RPi::Pin> object. These servos have a C<left> pulse of
C<50>, a C<centre> pulse of C<150> and a C<right> pulse of C<250>. On exit of
the program (or a crash), we automatically clean everything up properly.
Parameters:
$pin_num
Mandatory, Integer: The pin number (technically, this *must* be C<18> on the
Raspberry Pi 3, as that's the only hardware PWM pin.
%pwm_config
Optional, Hash. This parameter should only be used if you know what you're
doing and are having very specific issues.
Keys are C<clock> with a value that coincides with the PWM clock speed. It
defaults to C<192>. The other key is C<range>, the value being an integer that
sets the range of the PWM. Defaults to C<2000>.
Example:
my $servo = $pi->servo(18);
$servo->pwm(50); # all the way left
$servo->pwm(250); # all the way right
=head2 shift_register($base, $num_pins, $data, $clk, $latch)
Allows you to access the output pins of up to four 74HC595 shift registers in
series, for a total of eight new output pins per register. Numerous chains of
four registers are permitted, each chain uses three GPIO pins.
Parameters:
$base
Mandatory: Integer, represents the number at which you want to start
referencing the new output pins attached to the register(s). For example, if
you use C<100> here, output pin C<0> of the register will be C<100>, output
C<1> will be C<101> etc.
$num_pins
Mandatory: Integer, the number of output pins on the registers you want to use.
Each register has eight outputs, so if you have a single register in use, the
maximum number of additional pins would be eight.
$data
Mandatory: Integer, the GPIO pin number attached to the C<DS> pin (14) on the
shift register.
$clk
Mandatory: Integer, the GPIO pin number attached to the C<SHCP> pin (11) on the
( run in 2.481 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )