PCF8574
Vcc - zasilanie 3.3 V lub 5 V
GND - masa zasilania
SDA - sygnał danych magistrali i2c (TWI)
SCL - sygnał zegara magistrali i2c (TWI)
/INT - zanegowane wyjście przerwania informujące, że na wejściu zmienił się stan logiczny
A0 .. A2 - ustawienie adresu dla kolejnych układów w magistrali
P0 .. P7 - wejścia/wyjścia cyfrowe układu
1. Włączenie modułu i2c
root@raspberrypi:~# echo 'i2c-dev' >> /etc/modules
root@raspberrypi:~# reboot
root@raspberrypi:~# apt-get install i2c-tools
root@raspberrypi:~# i2cdetect -y 1
4. Wszytkie piny na stan 0, czyli włączone
root@raspberrypi:~# i2cset -y 1 0x20 0x00
root@raspberrypi:~# i2cset -y 1 0x20 0xFF
>>> hex(int('00000111', 2))
'0x7'
root@raspberrypi:~# i2cset -y 1 0x20 0x7
root@raspberrypi:~# i2cget -y 1 0x20
0x07
# konwersja z hex na bin
>>> bin(int('0x07', 16))[2:].zfill(8)
'00000111'
# Widać, że pin 0,1,2 są wyłączone
apt-get install python-smbus
from smbus import SMBus
addr = 0x20
bus = SMBus(1)
val = int('00000111', 2)
print val
# 7
# wylacz piny 0,1,2
bus.write_byte(addr, val)
# czytaj stan
s = bus.read_byte(addr)
print bin(s)[2:].zfill(8)
# 00000111
podłączenie
Brak komentarzy:
Prześlij komentarz