logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Tm1637 wyświetlacze segmentowe ekspander multipleks

sznickers 10 Lut 2025 23:42 1212 69
Najlepsze odpowiedzi

Jak podłączyć kilka modułów TM1637 do jednej płytki ESP i czy da się to zrobić przez ekspander I2C?

Tak — kilka modułów TM1637 można obsłużyć przez ekspander MCP23017 na I2C, ale nie przez TCA9548A jako proste rozwiązanie „plug and play”, bo TM1637 nie używa standardowego I2C i gotowa biblioteka TM1637 wymaga przeróbki. [#21434615][#21434728][#21434973] Do MCP23017 podłączasz linie CLK i DIO jako zwykłe wyjścia GPIO, np. PA0 i PA1 albo dowolne inne piny portu A/B; piny klawiatury oraz RST można zostawić wolne. [#21456150][#21456170][#21456180] Jeden MCP23017 ma 16 linii, więc przy TM1637 liczonym po 2 piny na moduł wychodzi do 8 wyświetlaczy na jeden układ; na jednej magistrali I2C można też użyć kilku MCP23017 po ustawieniu adresów. [#21456227][#21434728][#21456273] Najpewniejsza droga to Arduino IDE i własny kod dostosowany do sekwencji START/WRITE/STOP TM1637, bo w ESP Easy nie było tu gotowego, sprawdzonego rozwiązania. [#21456378][#21457008][#21458446] Alternatywnie warto rozważyć gotowe sterowniki TM1638 lub MAX7219, jeśli zależy Ci na prostszym podłączeniu wielu wyświetlaczy. [#21434445][#21434604][#21434728]
Wygenerowane przez model językowy.
REKLAMA
  • #31 21441245
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Jak już wcześniej napisałem, jeśli chodzi o ESP Easy, to w tej "dyscyplinie" nie mam wiele pojęcia, tak że raczej nic nie poradzę.
  • REKLAMA
  • #32 21443132
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Poszło. Działa.
  • #33 21443697
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Co dokładnie poszło?
  • #34 21444070
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Chodzi mi o wyświetlacze LCD - zaadresowałem je na A20 czyli default i już nie ma problemu z nimi podczas włączania, resetu itd. Wkrótce się pochwalę moim dziełem, czyli bilansem energii elektrycznej w budynku.
  • #35 21444090
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Pomiary zrealizowane za pomocą PZEM-004T?
  • REKLAMA
  • #36 21444107
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Tak jest, 6 sztuk PZEM , ale niestety jedno esp=2xPZEM. Dlatego mam 3xesp. Można by zrobić 3 pzemy na jednym Nodemcu co mi podesłałeś, ale nie będę na razie nic zmieniał, może się pokuszę o ten moduł ... TX, TX RS / I2C. A pochwalę się : narazie screen, ale tu jest o czym opowiadać. Niestety mam dwa rodzaje PZEM-ver. 4.0 i 3.0. Ale po drobnych perypetiach ostatnia prosta.
    Diagram systemu pomiaru energii w aplikacji Domoticz z wartościami napięcia, prądu i energii dla różnych faz.
  • REKLAMA
  • #37 21444258
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Nawet nie wiedziałem, że takie moduły istnieją. Przed kilkoma laty zrobiłem podobny projekt, opierając się na układzie scalonym ADE7758 (3-phase electrical energy measurement IC), ale nie udało mi się tego skalibrować, dlatego porzuciłem ten projekt.
  • #39 21456117
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Cześć Inot.
    Dojechał mój MCP23017. Powiedz proszę, bo gotowych schematów w necie nie znalazłem. Jak podłączyć wyświetlacze do MCP. Gdzie podłączyć CLK i DIO ? np. do PB7 i PB6 ?
    Schemat pinoutu układu MCP23017 z oznaczeniami pinów i funkcji.
    Moduł WeMos D1 mini z opisem pinów.
    Moduł MCP23017 i dwa wyświetlacze LED na tle siatki.
  • #40 21456150
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Połączenia Arduino z MCP:
    CLK -> SCL
    DIO -> SDA
    GND -> GND
    VCC -> 3,3 V albo 5 V w zależności od tego, jakiego napięcia używasz.
    Wyświetlacze można podłączyć do dowolnego portu PA albo PB, bo to można skonfigurować programowo.
  • #41 21456165
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    To zrozumiałe, a połączenie TM1637 wyświetlacz z MCP ? Gdzie dać CLK i DIO z wyświetlacza do MCP ?
  • #42 21456170
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Tak jak napisałem, to znaczy na dowolne porty. Logicznie rzecz biorąc, można np. sygnały CLK podłączać do portu A, a DIO do portu B, zaczynając od Px0.
    Albo aby przewody sąsiadowały ze sobą, to CLK -> PA0, DIO -> PA1 itd.
  • #43 21456172
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    ok, dzięki . A po co są ITA i TB ? RST ? zostawiamy to wolne ?
  • #44 21456180
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Zostawić wolne. Te piny służą do obsługi klawiatury. RST można też zostawić bez podłączenia.
  • #45 21456216
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Czyli można podłączyć max 8 wyświetlaczy ? Też mi się wydaje, że lepiej zapełnić pierw port A a potem B, mają osobne zasilania.
  • #46 21456227
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Tak. Oczywiście można wykorzystać te piny także do innych zadań.
  • #47 21456243
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Letscontrolit mówi, żeby podłączyć do GPIO 0 i GPIO 2, a schemat płytki do GPIO 4 i 5 . Podłączam do 4 i 5.
    Diagram fragmentu płytki ESP z oznaczeniami pinów GPIO0, GPIO2, GPIO4, GPIO5 oraz obwody SCL i SDA.
    Tabela pokazująca połączenia MCP23017 z ESP-01.

    Dodano po 2 [minuty]:

    To można jeszcze podłączyć do jednego ESP 8 takich MCP .. tylko czy uciągnie :).
    Tabela pokazująca adresy I2C i zakresy portów dla MCP23017.
    Zbliżenie fragmentu płytki drukowanej z widocznymi elementami elektronicznymi.
  • #48 21456263
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Co to jest letscontrolit? WEMOS (ESP8266) używa GPIO 0 i GPIO 2 przy bootowaniu i dlatego nie jest to najlepszym pomysłem, aby korzystać z tych pinów jako wyjścia.
  • #50 21456273
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Co to jest letscontrolit? używaj
    sznickers napisał:
    To można jeszcze podłączyć do jednego ESP 8 takich MCP

    To jest co innego. Za pomocą tych pinów można pod jeden kanał I2C podłączyć osiem płytek MCP i tym sposobem otrzymać 128 dodatkowych portów Arduino.
  • #51 21456285
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Podłączyłem jeden wyświetlacz. Teraz chcę napisać komendę, żeby wyświetlił np. :1234
    http://192.168.0.176
    Commands
    Command Value Extra information
    MCPGPIO,<pin>,<value> 1,0 Control MCP23017 output pins (1 or 0)

    Połączenie wyświetlacza LED z płytką elektroniczną i modułem MCP23017 na zielonej macie do cięcia.

    To są nazwy, adresy pinów MCP
    Diagram układu z pinami GPIO oznaczonymi GPB0-GPB7 i GPA0-GPA7.
    Podaje się adres SDA ? U mnie SDA to PB0 czyli GPB0
  • #52 21456301
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Te wyświetlacze wymagają do sterowania sekwencji rozkazów (tak jak podałem w przykładach), a czy to się da zrealizować za pomocą ESP Easy, to tego nie wiem.
    Nawet w GitHubie masz przykład tylko w Arduino.
  • REKLAMA
  • #54 21456332
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Co to za link?
  • #55 21456334
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Wpisując w przeglądarkę komendę, wyświetlacz może wyświetlić co mu każę.
  • #56 21456340
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Jeśli chodzi o funkcjonowanie ESP Easy, to niestety nie mam absolutnie pojęcia i przypuszczam, że większość forowiczów także.
  • #57 21456368
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    już coś gada, ale dalej się nie rozumiemy.
    Zrzut ekranu pokazujący odpowiedź JSON z adresu IP 192.168.0.176.
  • #58 21456378
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    Tak prosto się nie da. Należy wysłać sekwencję rozkazów START, WRITE, STOP.
    Czyli Arduino funkcję START:

    digitalHigh(pinDIO); // DIO HIGH
    digitalHigh(pinClk); // CLK HIGH
    delayMicroseconds(TM1637_CLK_DELAY_US);
    digitalLow(pinDIO); // DIO LOW

    Zakładając że DIO to pin 1, CLK to pin 2:
    należy przekształcić w ESP Easy w następujący sposób:

    MCPGPIO,1,1
    MCPGPIO,2,1
    // delay ?
    MCPGPIO,1,0
    ale nie mam pojęcia, w jaki sposób realizuje się opóźnienia.
  • #59 21456386
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    MCPGPIO,<MCPGPIO>,<state>

    MCPGPIO: 1 … 128

    State:

    2 (HIGH-Z, input)

    1 (HIGH, output)

    0 (LOW, output)

    -1 (OFFLINE, disconnected)

    Dodano po 24 [minuty]:

    tu chodzi o podanie portu, ja mam zworki na 000 czyli port 1-16.

    Tabela adresów i zakresów portów z sygnałami zworkowymi.
  • #60 21456405
    inot
    Poziom 38  
    Posty: 3558
    Pomógł: 441
    Ocena: 801
    sznickers napisał:
    chodzi o podanie portu, ja mam zworki na 000 czyli port 1-16

    Dlatego też w przykładzie napisałem:
    DIO = 1, CLK = 2, czyli DIO = PA0, CLK = PA1.
    https://obrazki.elektroda.pl/5905430400_1740515819.jpg
    Podłączyłeś się do portu B czyli w tym przypadku:
    DIO = 9, CLK = 10, czyli DIO = PB0, CLK = PB1.

Podsumowanie tematu

✨ Dyskusja dotyczy podłączenia wyświetlaczy 7-segmentowych TM1637 do płytki ESP, z pytaniem o możliwość użycia ekspanderów I2C do zwiększenia liczby wyświetlaczy. Uczestnicy sugerują użycie układów TM1638 lub MAX7219, które umożliwiają podłączenie wielu wyświetlaczy na jednej szynie. Wskazano również na możliwość zastosowania ekspandera MCP23017, który pozwala na adresowanie wielu wyświetlaczy. Uczestnicy omawiają również problemy z programowaniem i konfiguracją w środowisku ESP Easy oraz Arduino, podkreślając, że do prawidłowego działania wyświetlaczy konieczne jest odpowiednie przesyłanie sekwencji rozkazów.
Wygenerowane przez model językowy.
REKLAMA