Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
ip_selctor [2014/12/30 17:42] admin created |
ip_selctor [2014/12/30 22:09] (current) admin |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ---- | ---- | ||
| **IP Selctor** | **IP Selctor** | ||
| + | with the MCP23008 and MCP23017 | ||
| ---- | ---- | ||
| - | + | **Preparing the RPi for I2C:**\\ | |
| - | **MCP23008 and MCP23017**\\ | + | |
| [[http:// | [[http:// | ||
| + | [[http:// | ||
| + | Open the file:\\ | ||
| + | $ sudo nano / | ||
| + | Comment out:\\ | ||
| + | #blacklist i2c-bcm2708 | ||
| + | Open the file:\\ | ||
| + | $ sudo nano / | ||
| + | Add:\\ | ||
| + | i2c-dev | ||
| + | Load modules:\\ | ||
| + | $ sudo modprobe i2c_bcm2708 | ||
| + | $ sudo modprobe i2c-dev | ||
| + | Check the i2c modules:\\ | ||
| + | $ lsmod | ||
| + | | ||
| + | Module | ||
| + | i2c_dev | ||
| + | i2c_bcm2708 | ||
| + | Install some programs:\\ | ||
| + | $ sudo apt-get update | ||
| + | $ sudo apt-get install i2c-tools | ||
| + | $ sudo apt-get install python-smbus | ||
| + | Check the address:\\ | ||
| + | $ sudo i2cdetect -y 1 | ||
| + | $ sudo i2cdump -y 1 0x20 | ||
| + | |||
| + | **Library: | ||
| + | [[https:// | ||
| + | Download Adafruit libraries: | ||
| + | $ wget https:// | ||
| + | unpack:\\ | ||
| + | $ unzip master.zip | ||
| + | Example:\\ | ||
| + | # Set IP Address with MCP23008 | ||
| + | from Adafruit_MCP230xx import * | ||
| + | # Use busnum = 0 for older Raspberry Pi's (256MB) | ||
| + | # Use busnum = 1 for new Raspberry Pi's (512MB with mounting holes) | ||
| + | mcp = Adafruit_MCP230XX(busnum = 1, address = 0x20, num_gpios = 8) | ||
| + | # Set pins to input with the pullup resistor enabled | ||
| + | for i in range(0,8): | ||
| + | mcp.pullup(i, | ||
| + | # Read pins and display the results | ||
| + | # bitshift output, third bit is the output | ||
| + | meineIP=0 | ||
| + | for i in range(0,8): | ||
| + | print "%d: %x" % (i, mcp.input(i) >> i) | ||
| + | meineIP = meineIP + mcp.input(i) | ||
| + | print meineIP | ||
| + | |||
| + | |||