MCP23008 Module¶
Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2015-03-02 | AllAboutEE | AllAboutEE | mcp23008.lua |
This Lua module provides access to MCP23008 I²C I/O Expander.
Note
This module requires i2c
C module built into firmware.
Require¶
mcp32008 = require("mcp32008")
Release¶
mcp32008 = nil
package.loaded["mcp32008"] = nil
mcp32008.begin()¶
Sets the MCP23008 device address's last three bits.
Note
The address is defined as binary 0100[A2][A1][A0]
where A2
, A1
, and A0
are defined by the connection of the pins, e.g. if the pins are connected all to GND then the parameter address will need to be 0x0
.
Syntax¶
mcp23008.begin(address, pinSDA, pinSCL, speed)
Parameters¶
address
: The 3 least significant bits (LSB) of the addresspinSDA
: The pin to use for SDApinSCL
: The pin to use for SCLspeed
: The speed of the I2C signal
Returns¶
nil
mcp23008.writeGPIO()¶
Writes a byte of data to the GPIO register.
Syntax¶
mcp23008.writeGPIO(dataByte)
Parameters¶
dataByte
: The byte of data to write
Returns¶
nil
mcp23008.readGPIO()¶
Reads a byte of data from the GPIO register
Syntax¶
mcp23008.readGPIO()
Parameters¶
None
Returns¶
One byte of data
mcp23008.writeIODIR()¶
Writes one byte of data to the IODIR register.
Syntax¶
mcp23008.writeIODIR(dataByte)
Parameters¶
dataByte
: The byte of data to write
Returns¶
nil
mcp23008.readIODIR()¶
Reads a byte from the IODIR register
Syntax¶
mcp23008.readIODIR()
Parameters¶
None
Returns¶
The byte of data in IODIR
mcp23008.writeGPPU()¶
Writes a byte of data to the GPPU (Pull-UP resistors register)
Syntax¶
mcp23008.writeIODIR(dataByte)
Parameters¶
dataByte
: the value to write to the GPPU register. Each bit in this byte is assigned to an individual GPIO pin
Returns¶
nil
mcp23008.readGPPU()¶
Reads the GPPU (Pull-UP resistors register) byte
Syntax¶
mcp23008.readGPPU()
Parameters¶
None
Returns¶
The GPPU byte i.e. state of all internal pull-up resistors
Notes¶
Other examples of using this module can be found in mcp23008_buttons.lua and mcp23008_leds.lua files.