Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
MCP23017 jest stosunkowo łatwym układem scalonym do wykonania płytki, ponieważ ma porty A i B po obu stronach chipa, a styki są ułożone w kolejności.
Podobnie magistrala adresowa I2C jest również razem.
Na tym układzie scalonym znajdują się 2 styki, które są nieużywane, ponieważ są porównywalne z MCP23S17, który wykorzystuje interfejs SPI, w którym te styki są używane.
Arkusz danych dla tego układu scalonego jest dostępny w Microchip.
Krok 1: Schemat obwodu
Schemat obwodu pokazuje, jak podłączyć układ scalony do ESP8266
UWAGA: IC działa między 2,7 a 5,5 V.
Przypnij połączenia na mojej tablicy
- Pin 9 (VDD) do 3v3
- Pin 18 (RESET) do 3v3
- Pin 17 (A2) do GND
- Pin 16 (A1) do GND
- Pin 15 (A0) do GND
- Pin 14 (NC) do GND (nie konieczne)
- Pin 13 (SDA) do ESP GPIO0
- Pin 12 (SCL) do ESP GPIO2
- Pin 11 (NC) do GND (nie konieczne)
- Pin 10 (VSS) do GND
Krok 2: Tworzenie płyty głównej
Plansza jest prosta w wykonaniu, jak wyjaśniono powyżej, wszystko ma prosty układ.
Wykonanie mojej głównej płyty zajęło niewiele czasu i jest pokazane powyżej.
Układ ten można oczywiście zbudować na płytce stykowej.
Krok 3: Dodatkowe tablice
Stworzyłem kilka dodatkowych 8-bitowych płyt, które można łatwo podłączyć do różnych płyt projektowych.
Pierwsza płytka jest podłączona do 7-segmentowego wyświetlacza LED i jest podłączona pin 1 do segmentu a, pin 2 do b itd. Jest mały rezystor (około 55 omów) do ochrony diod LED.
Drugi to zespół 8 przełączników połączonych razem i można go podłączyć do 3,3 V lub uziemienia. Nie dołączyłem żadnych rezystorów ściągających, ponieważ MCP23017 ma je wbudowane.
Trzecia pochodzi z zestawu Ebay, składa się z 8 diod LED i tablicy rezystorów z połączeniem do Gnd. Mam też tę samą płytkę, ale zainstalowałem diody w odwrotnym kierunku, aby podłączyć do 3,3 V lub 5 V zamiast Gnd. W serwisie eBay są znane jako 8-kanałowy zestaw do samodzielnego montażu z płynącą wodą, 99p z Chin.
Krok 4: Programowanie
Napisałem programy do pracy z ESP01, ponieważ ma tylko 2 piny I/O. Można go oczywiście używać z dowolną płytą ESP8266. Piny SDA i SCL mogą być przypisane do dowolnego pinu od 1 do 12.
W przypadku korzystania ze starszej wersji LUA (np. NodeMCU 0.9.6 kompilacja 20150704 obsługiwanej przez Lua 5.1.4) I2C jest już zainstalowane. W przeciwnym razie musisz upewnić się, że moduł I2C jest dołączony do twojej kompilacji.
Dołączyłem 3 proste programy Lua, aby pokazać, jak można wykorzystać IC.
7Segment.lua steruje wyświetlaczem LED i sekwencjami między cyframi od 1 do 0.
KittCar.lua steruje tablicą 8 LED, aby symulować słynny samochód z lat 80-tych.
Reader.lua czyta z portu B.
Krok 5: Która szpilka?
Dodatkowy program, który wymyśliłem podczas majsterkowania.
Wykorzystuje port B jako wejście i port A jako wyjście. Na zdjęciu przełączniki DIP, ale można podłączyć jeden z pinów portu B do Gnd, a wyświetlacz LED pokaże, który pin jest podłączony.
UWAGA: Działa tylko z 1 pinem na raz!
Krok 6: Wniosek
Dostępne są oczywiście inne ekspandery I/O. Niektóre są 8-bitowe, 16-bitowe, a nawet 24-bitowe! Wszystkie działają w podobny sposób do MCP23017, ale ten układ scalony jest bardzo tani jak na swoje możliwości i może być pozyskiwany za około 10 pensów z Chin.
Nie wykorzystałem wszystkich funkcji tego układu scalonego, ponieważ dostępne są również przerwania, które można wykorzystać. Czytanie arkusza danych mówi wszystko o różnych rejestrach i sposobach wykorzystania układu scalonego.
Możliwe jest posiadanie 8 takich urządzeń na tej samej magistrali I2C, co daje 128 portów I/O, wszystkie kontrolowane przez 2 linie. Pomyśl o możliwościach!