poniedziałek, 11 stycznia 2016

PCF8574 i Raspberry PI

Raspberry Pi 2m układ pinów




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
2. Instalacja tools
root@raspberrypi:~# apt-get install i2c-tools
    
3. Sprawdzenie adresu
root@raspberrypi:~# i2cdetect -y 1



 4. Wszytkie piny na stan 0, czyli włączone
root@raspberrypi:~# i2cset -y 1 0x20 0x00
5. Wszystkie piny na stan 1, czyli wyłączone
root@raspberrypi:~# i2cset -y 1 0x20 0xFF
6. pin 0,1,2 wyłączone, piny 3,4,5,6,7 włączone
>>> hex(int('00000111', 2))
    '0x7'
root@raspberrypi:~# i2cset -y 1 0x20 0x7
7. Sprawdzenie stanu pinów
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
8. Instalacja smbus
apt-get install python-smbus
9. Przykładowy program
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