MCP23017

Hvad kan en MCP23017?

Er en microchip som gør det muligt, at udvide
med 18 pins til en raspberry pi eller arduino,
så man for hver pin på en pi kan få 18 porte extra,
på den måde kan man forbinde mange ting let.
http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

 

Sådan forbinder du en MCP23017

mcp23017_bb

1:  sudo nano /etc/modules

2: tilføj :
ic2-bcm2708
i2c-dev

3: sudo nano /etc/modprobe.d/raspi-blacklist.conf
4: udkommenter følge med # sådan her
#blacklist spi-bcm2708
#blacklist i2c-bcm2708

5:  sudo apt-get install python-smbus i2c-tools

Load i2c når din pi starter

1:  sudo crontab -e
2:  Sæt følgende ind linier ind i starten :
@reboot /usr/local/bin/gpio load i2c

Genstart din Pi


Test om din pi kan “Se” MC23017
sudo i2cdetect -y 1

 

Hvis der kommer et UU, skal du ikke være nervøs det er helt
normalt og skal bare ignores, men den skulle gerne vise sig på
0 20 eller 0x20  (nul og ikke O)

Sådan styrer du en MCP23017

Først skal du sætte den pin du skal bruge til fx out
gpio -x mcp23017:100:0x20 mode 100 out

Følgende kommando sætter pin 21 (GPA0) til 1 
gpio -x mcp23017:100:0x20 write 100 1

For at slukke den igen skifter du bare 1 til 0
gpio -x mcp23017:100:0x20 write 100 0

Efterfølgende pins hedder så
gpio -x mcp23017:100:0x20:1 write 101 1
gpio -x mcp23017:100:0x20:1 write 102 1
gpio -x mcp23017:100:0x20:1 write 103 1
gpio -x mcp23017:100:0x20:1 write 104 1
gpio -x mcp23017:100:0x20:1 write 105 1
gpio -x mcp23017:100:0x20:1 write 106 1
gpio -x mcp23017:100:0x20:1 write 107 1

Hvordan læser man om en pin er 0 eller 1
gpio -x mcp23017:100:0x20 read 100

Sådan adressere du en MCP23017
I det her setup har vi brugt adressen 0x20, så vi har sat
A0 A1 A2 til stel, men har man flere MCP23017 skal de have
hver deres adresse.