Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
RPiMCP23S17-0.2.4.tar.gz (4.8 kB) Copy SHA256 hash SHA256 Source None Apr 25, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page