skip to navigation
skip to content

RPiMCP23S17 0.2.4

A module to access GPIO expanders MCP23S17 from a Raspberry Pi.

This is a Python module that abstracts the GPIO expander MCP23S17. It is intended for the use on a Raspberry Pi.

Provided Functions

As a quick overview, the module provides the following functions. Refer to the module documentation for details:

  • open
  • close
  • setPullupMode
  • setDirection
  • digitalRead
  • digitalWrite
  • writeGPIO
  • readGPIO

Installation

If not already done, you need to install PIP via:

sudo apt-get install python-dev python-pip

Install from PyPI:

pip install RPiMCP23S17

Example

The following demo peridically toggles all pins of two MCP23S17 components:

from RPiMCP23S17.MCP23S17 import MCP23S17
import time

mcp1 = MCP23S17(bus=0x00, ce=0x00, deviceID=0x00)
mcp2 = MCP23S17(bus=0x00, ce=0x00, deviceID=0x01)
mcp1.open()
mcp2.open()

for x in range(0, 16):
    mcp1.setDirection(x, mcp1.DIR_OUTPUT)
    mcp2.setDirection(x, mcp1.DIR_OUTPUT)

print "Starting blinky on all pins (CTRL+C to quit)"
while (True):
    for x in range(0, 16):
        mcp1.digitalWrite(x, MCP23S17.LEVEL_HIGH)
        mcp2.digitalWrite(x, MCP23S17.LEVEL_HIGH)
    time.sleep(1)

    for x in range(0, 16):
        mcp1.digitalWrite(x, MCP23S17.LEVEL_LOW)
        mcp2.digitalWrite(x, MCP23S17.LEVEL_LOW)
    time.sleep(1)

    # the lines below essentially have the same effect as the lines above
    mcp1.writeGPIO(0xFFF)
    mcp2.writeGPIO(0xFFF)
    time.sleep(1)

    mcp1.writeGPIO(0x000)
    mcp2.writeGPIO(0x0000)
    time.sleep(1)

Change Log

0.2.4

  • Updated readme.txt

0.2.3

  • Fixed error “NameError: global name ‘MCP23S17_GPIOB’ is not defined” in function digitalRead

0.2.2

  • Fixed example in documentation

0.2.1

  • Updated documentation

0.2.0

  • Reorganized module structure

0.1.1

  • Enhanced package setup script setup.py
  • Updated documentation

0.1.0

  • Initial release
 
File Type Py Version Uploaded on Size
RPiMCP23S17-0.2.4.tar.gz (md5) Source 2016-04-25 4KB