Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ip_selctor [2014/12/30 18:20] admin |
ip_selctor [2014/12/30 22:09] admin |
||
---|---|---|---|
Line 1: | Line 1: | ||
---- | ---- | ||
**IP Selctor** | **IP Selctor** | ||
+ | with the MCP23008 and MCP23017 | ||
---- | ---- | ||
- | + | **Preparing the RPi for I2C:**\\ | |
- | **MCP23008 and MCP23017**\\ | + | |
- | Configuration: | + | |
[[http:// | [[http:// | ||
[[http:// | [[http:// | ||
- | |||
Open the file:\\ | Open the file:\\ | ||
- | sudo nano / | + | |
Comment out:\\ | Comment out:\\ | ||
#blacklist i2c-bcm2708 | #blacklist i2c-bcm2708 | ||
Open the file:\\ | Open the file:\\ | ||
- | sudo nano / | + | |
Add:\\ | Add:\\ | ||
i2c-dev | i2c-dev | ||
Load modules:\\ | 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:\\ | + | **Library:**\\ |
[[https:// | [[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 | ||
+ | |||
+ |