Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

LN HUB32IO — moduł z aktywnym hubem USB i 32 pinami IO dla Banana PRO

Kolejny drugi moduł dla Banana PRO, który opiszę i przetestuję to LN HUB-32IO posiadający aż 32 piny GPIO oraz aktywny hub USB. Moduł posiada dwa układy mcp23017 komunikujące się poprzez interfejs i2c. Również jak ostatnio do sterowania modułem użyjemy biblioteki WiringBP.

Moduł posiada 32 złącza cyfrowych pinów GPIO, każdy pin ma podłączoną diodę. Obok złącz IO wyprowadzone jest też 3,3V oraz GND łącznie 4 (po 2 na każdy układ). Hub posiada 4 złącza USB oraz dwa złącza microUSB jedno do zasilenia hub-a drugi do podłączenia USB z Banana PRO

Jako że mamy w tym przypadku do czynienia z i2c warto przeskanować magistralę i znaleźć adres naszych układów. W moim przypadku układy posiadają adres 0x20 oraz 0x21, które użyłem do poniższych przykładów. # i2cdetect -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: 20 21 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

Program testowy testi2c.c #include <stdio.h> #include <wiringPi.h> #include <mcp23017.h> int main (void) { int i, bit ; wiringPiSetup () ; mcp23017Setup (100, 0x20) ; mcp23017Setup (116, 0x21) ; printf ("LN HUB-32IO - Test\n") ; for (i = 0 ; i < 16 ; ++i){ pinMode (100 + i, OUTPUT) ; } for (bit = 0 ; bit < 16 ; ++bit){ digitalWrite (100 + bit, 1) ; delay (200) ; } for (bit = 15 ; bit >= 0 ; --bit){ digitalWrite (100 + bit, 0) ; delay (200) ; } for (i = 0 ; i < 16 ; ++i){ pinMode (116 + i, OUTPUT) ; } for (bit = 0 ; bit < 16 ; ++bit){ digitalWrite (116 + bit, 1) ; delay (200) ; } for (bit = 15 ; bit >= 0 ; --bit){ digitalWrite (116 + bit, 0) ; delay (200) ; } return 0 ; }

Kompilacjagcc -Wall -o test2 testi2c.c -lwiringPi

Program ustawia kolejno piny na stan wysoki na obydwu układach a następnie je wyłącza ustawiając je na stan niski. Status testu możemy obserwować na diodach.

Również z poziomu konsoli (programów w bash-u) możemy sterować pinami za pomocą narzędzia gpio gpio -x mcp23017:100:0x20:0 mode 100 out gpio -x mcp23017:100:0x20:0 write 100 1 gpio -x mcp23017:100:0x20:0 read 100 gpio -x mcp23017:100:0x20:0 mode 101 in Więcej na stronie projektu WiringPi

Moduł bardzo dobrze sprawdzi się do projektów, które potrzebują więcej złącz IO jak również potrzebujących dodatkowego zasilania dla urządzeń USB. Jedynym minusem można uznać to, że aby podłączyć hub musimy użyć kabla USB łącząc moduł z Banana PRO. 

linux sprzęt programowanie

Komentarze

0 nowych
Nikt nie napisał jeszcze komentarza, możesz być pierwszy!