Spisu treści:
- Krok 1: Okablowanie MCP23008
- Krok 2: Konstruowanie planszy
- Krok 3: Korzystanie z modułu bibliotecznego
- Krok 4: Program samochodowy Kitt
- Krok 5: 7-segmentowa dioda LED
- Krok 6: Wniosek
Wideo: NODEMCU LUA ESP8266 z 8-bitowym ekspanderem portów MCP23008 IC: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
MCP23008 to 8-bitowy ekspander we/wy z interfejsem szeregowym i działa od 1,8 do 5,5 V, więc jest idealny do układów ESP8266, Arduino, Raspberry Pi, PIC i innych.
Jeśli widziałeś mój inny Instructable na MCP23017, możesz się zastanawiać, dlaczego robię go również dla MCP23008, ponieważ jest to naprawdę mniejsza wersja tego samego.
Powodem jest to, że jego rejestry różnią się zarówno nazwą, jak i numerem, dlatego chciałbym pokazać, jak korzystać z gotowego modułu bibliotecznego. Nie każdy jest biegły w używaniu NodeMCU lua, więc chciałbym pokazać ten aspekt programowania, a także jak korzystać z MCP23008.
Biblioteka i programy dostępne są na github.com.
Arkusz danych dla MCP23008 jest dostępny w Microchip.
Krok 1: Okablowanie MCP23008
Układ scalony MCP23008 ma prosty układ, a zbudowanie płytki jest dla niego naprawdę łatwe. Możesz także ustawić obwód na płytce do krojenia chleba.
Przypnij połączenia na mojej tablicy
- Pin 18 (VDD) do 3v3
- Pin 9 (VSS) do GND
- Pin 7 (NC) do GND (nie konieczne)
- Pin 1 (SCL) do ESP GPIO2
- Pin 2 (SDA) do ESP GPIO0
- Pin 5 (A0) do GND
- Pin 4 (A1) do GND
- Pin 3 (A2) do GND
- Pin 6 (RESET) do 3v3
Podłącz piny do odczytu do Gnd na porcie A (piny 10 - 17)
Uwaga: tutaj wszystkie piny adresowe są podłączone do Gnd, aby używać MCP23008 pod adresem 0x20 na magistrali adresowej I2C.
Jeśli używasz adresu 0x21, to A0 byłoby podłączone do 3,3 V, a A1 i A2 podłączone do Gnd.
Podobnie w przypadku korzystania z adresu 0x22 to A1 musiałoby być podłączone do 3,3V z A0 i A2 podłączonymi do Gnd.
itp…
Krok 2: Konstruowanie planszy
Do budowy mojej deski użyłem płyty Vero o wymiarach 25 mm x 64 mm (9 rzędów x 25 otworów). Jest trochę ciasny, ale ponieważ większość potrzebnych pinów znajduje się po obu stronach układu scalonego, jest odpowiedni do tego, co ma robić.
Użyłem 8 pinów i 8 gniazd nagłówkowych dla portu A, dzięki czemu mogę podłączyć różne moduły, a także inne okablowanie do różnych projektów. Dodałem dodatkowe piny Gnd i 3.3V, ponieważ stwierdzam, że zawsze ich brakuje podczas łączenia modułów.
Krok 3: Korzystanie z modułu bibliotecznego
Moduły biblioteczne zwykle zawierają wybór podprogramów, funkcji i zmiennych, do których może uzyskać dostęp inny program. Sam program nie działa, ale jego funkcje mogą być dostępne przez program wywołujący. Oznacza to, że możesz mieć swoje podprogramy w bibliotece i wywoływać je, kiedy tylko ich potrzebujesz, tworząc mały program wywołujący. Staje się to bardziej wartościowe, jeśli masz wiele różnych programów używających tych samych podprogramów, nie musisz uwzględniać podprogramów w każdym programie.
Uwaga: program mcp23008.lua należy załadować do pamięci ESP8266 tak jak inne programy.
Umieściłem tutaj programy github.com, a także prosty program (test.lua), aby pokazać, że biblioteka działa.
Istnieją co najmniej 2 sposoby włączenia biblioteki do twojego programu.
wymagać ("mcp23008")
mcp23008.begin(0x0, gpio2, gpio0, i2c. SLOW)
lub
mcp = wymagaj ("mcp23008")
mcp.begin(0x0, gpio2, gpio0, i2c. SLOW)
Oba powyższe robią to samo, ale druga metoda pozwala na użycie własnej zmiennej zamiast nazwy programu.
Krok 4: Program samochodowy Kitt
Dołączyłem program KittCar23008.lua oraz KittLib.lua, który wykorzystuje bibliotekę do pokazania różnic w sposobie pisania programów w ten sposób. Oba programy robią to samo.
Wtyczka 8 LED jest dostępna w serwisie eBay jako zestaw i jest znana jako 8-kanałowy zestaw do samodzielnego montażu LED Flowing Water, 99p z Chin. Musisz sam to przylutować.
Uwaga: Jeśli masz problem z uruchomieniem programu KittLib.lua, spróbuj chwilowo podłączyć pin MCP23008 RESET do Gnd. Wiem, że to da bezpośrednie zwarcie (ponieważ jest podłączone do 3,3V) i musisz zresetować wszystko inne. Działa również poprzez podłączenie do Gnd przez rezystor 10 omów, prawdopodobnie lepszy sposób na zrobienie tego.
Odkryłem również, że KittLib.lua będzie działał bez problemów po uruchomieniu test.lua (nie pytaj mnie dlaczego?)
Próbowałem różnych sposobów rozwiązania problemu z programem KittLib.lua, ale jak dotąd nie mogę znaleźć logicznego powodu, dla którego się zawiesza. Czy ktoś ma jakieś pomysły?
Nie pisałem wszystkich tych programów sam, więc nie jestem w stanie powiedzieć, dlaczego jest problem, chociaż po przyjrzeniu się kodowaniu wydaje się, że nie ma nic wyraźnie złego.
Krok 5: 7-segmentowa dioda LED
Podobnie jak w przypadku powyższego programu KittCar.lua, dołączyłem samodzielny i zależny od biblioteki program do obsługi 7-segmentowego wyświetlacza LED.
Ponownie, oba programy robią to samo, ale demonstrują, jak używać modułu bibliotecznego napisanego przez siebie lub kogoś innego.
Krok 6: Wniosek
Próbowałem zademonstrować, jak używać modułów kodu w środowisku Lua i jednocześnie zastosować je do konkretnego układu scalonego.
Chociaż miałem z tym problem, myślę, że wystarczy pokazać, jak działają te moduły, a także zademonstrować aplikację z prawdziwego życia.
Zalecana:
Wiele portów USB bez żadnej płytki drukowanej: 4 kroki
Wiele portów USB bez żadnej płytki drukowanej: To jest moja druga instrukcja i tutaj podzielę się z tobą projektem, w którym możesz utworzyć wiele portów USB do użytku na swoim komputerze, ponieważ gdy pracujesz w domu, masz wielki problem z używaniem wielu urządzeń jak większość urządzeń teraz h
NODEMCU LUA ESP8266 Połącz z bazą danych MySQL: 6 kroków
NODEMCU LUA ESP8266 Połącz z bazą danych MySQL: Ta instrukcja nie jest przeznaczona dla osób o słabych nerwach, ponieważ używa XAMPP (Apache, MySQL i PHP), HTML i oczywiście LUA. Jeśli masz pewność, że sobie z nimi radzisz, czytaj dalej! Używam XAMPP, ponieważ można go skonfigurować na pendrive lub dysku twardym i jest skonfigurowany
NODEMCU Lua ESP8266 z zegarem czasu rzeczywistego (RTC) i pamięcią EEPROM: 7 kroków
NODEMCU Lua ESP8266 z zegarem czasu rzeczywistego (RTC) i pamięcią EEPROM: Uzyskanie prawidłowego czasu jest niezbędne, jeśli chcesz prowadzić rejestr danych. Istnieje wiele sposobów na uzyskanie czasu ze źródeł w Internecie. Możesz zapytać, dlaczego nie użyć ESP8266, aby zachować dla siebie czas? No cóż, ma własny wewnętrzny RTC (Real Time
Migająca dioda LED za pomocą samouczka ESP8266 NodeMCU Lua WiFi: 6 kroków
Migająca dioda LED przy użyciu samouczka ESP8266 NodeMCU Lua WiFi: OPISNodeMCU to platforma IoT o otwartym kodzie źródłowym. Zawiera oprogramowanie układowe działające na ESP8266 WiFi SoC firmy Espressif oraz sprzęt oparty na module ESP-12. Termin „NodeMcu” domyślnie odnosi się do filmu, a nie do t
Przekazywanie portów SMC: 6 kroków
Przekierowanie portów SMC: W tej instrukcji pokażę, jak przekierować własny modem lub router, aby akceptował połączenia z niektórych portów. W tym Instruktażu zawarłem również kilka ogólnych portów, które są używane do pewnych ogólnych rzeczy, które wymagają przekierowywania portów