From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

RPi::Const - Constant variables for embedded programming, including the RPi:: family of modules

SYNOPSIS

use RPi::Const (:all);
# or...
use RPi::Const (:pinmode);
# etc

DESCRIPTION

This module optionally exports selections or all constant variables used within the RPi::WiringPi suite.

CONSTANT EXPORT TAGS

These are the individual grouping of export tags. The :all tag includes all of the below.

:mode

Setup modes. This is what determines which pin numbering scheme you're using. See wiringPi setup modes for details.

RPI_MODE_WPI => 0, # wiringPi scheme
RPI_MODE_GPIO => 1, # GPIO scheme
RPI_MODE_GPIO_SYS => 2, # GPIO scheme in SYS mode
RPI_MODE_PHYS => 3, # physical pin layout scheme
RPI_MODE_UNINIT => -1, # setup not yet run

:pinmode

Pin modes.

INPUT => 0,
OUTPUT => 1,
PWM_OUT => 2,
GPIO_CLOCK => 3,
SOFT_PWM_OUTPUT => 4, # reserved
SOFT_TONE_OUTPUT => 5, # reserved
PWM_TONE_OUTPUT => 6, # reserved

:altmode

Pin ALT modes.

ALT0 => 4,
ALT1 => 5,
ALT2 => 6,
ALT3 => 7,
ALT4 => 3,
ALT5 => 2,

:pull

Internal pin pull up/down resistor state.

PUD_OFF => 0,
PUD_DOWN => 1,
PUD_UP => 2,

:state

HIGH => 1,
LOW => 0,
ON => 1,
OFF => 0,

:pwm_mode

The modes the PWM can be set to.

PWM_MODE_MS => 0,
PWM_MODE_BAL => 1,

:pwm_defaults

Hardware defaults for PWM settings.

PWM_DEFAULT_MODE => 1, # balanced mode
PWM_DEFAULT_CLOCK => 32,
PWM_DEFAULT_RANGE => 1023

:interrupt

Edge detection states for interrupts.

EDGE_SETUP => 0, # reserved
EDGE_FALLING => 1,
EDGE_RISING => 2,
EDGE_BOTH => 3,

:mcp23017_registers

Hardware register locations and related info for the MCP23107 GPIO Expander

MCP23017_IODIRA => 0x00,
MCP23017_IODIRB => 0x01,
MCP23017_IPOLA => 0x02,
MCP23017_IPOLB => 0x03,
MCP23017_GPINTENA => 0x04,
MCP23017_GPINTENB => 0x05,
MCP23017_DEFVALA => 0x06,
MCP23017_DEFVALB => 0x07,
MCP23017_INTCONA => 0x08,
MCP23017_INTCONB => 0x09,
MCP23017_IOCONA => 0x0A,
MCP23017_IOCONB => 0x0B,
MCP23017_GPPUA => 0x0C,
MCP23017_GPPUB => 0x0D,
MCP23017_INTFA => 0x0E,
MCP23017_INTFB => 0x0F,
MCP23017_INTCAPA => 0x10,
MCP23017_INTCAPB => 0x11,
MCP23017_GPIOA => 0x12,
MCP23017_GPIOB => 0x13,
MCP23017_OLATA => 0x14,
MCP23017_OLATB => 0x15,
MCP23017_INPUT => 1,
MCP23017_OUTPUT => 0

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.