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.