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 1209 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
  • #61 21456897
    inot
    Poziom 38  
    Posty: 3556
    Pomógł: 439
    Ocena: 798
    Najpierw należy zrozumieć, w jaki sposób sterowany jest ten wyświetlacz. Jak widać na załączniku, pierwszym krokiem jest wygenerowanie warunku startu.
    Załączniki:
    • Tm1637 wyświetlacze segmentowe ekspander multipleks Screenshot 2025-02-26 130342.png (64.6 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #62 21456898
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Chyba zrobię to w tym Arduino :).
  • #63 21456906
    inot
    Poziom 38  
    Posty: 3556
    Pomógł: 439
    Ocena: 798
    Jeśli posiadasz oscyloskop, to możesz sprawdzić, czy warunek start funkcjonuje.
    Delay można sobie narazie podarować.
  • REKLAMA
  • #64 21456912
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Nie mam oscyloskopu, ja nie jestem elektronikiem z wykształcenia-to moje hobby, uczę się pisać proste skrypty, na głębszą wodę nie wchodzę. Interesuje mnie czysto praktyczne zastosowanie głównie do sterowania i monitorowania domu .
  • REKLAMA
  • #66 21456966
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    dzięki,
    czyli

    1 (HIGH, output)
    0 (LOW, output)

    ale czy da się wyświetlić teraz na tym wyświetlaczu coś, np. 1234 ?

    Dodano po 4 [minuty]:

    A kolega viayner pisał wcześniej, żeby:
    rozważ może użycie TM1638, one mają dodatkowy pin STROBE = CS i tak możesz komunikować się z wieloma układami po tej samej szynie.
    Możesz dołożyć jakiś multiplekser do rozdzielania sygnałów na różne układy TM1637.

    używając np. TM1638, łączysz wszystkie DIO razem, podobnie CLK, a STB sterujesz z dowolnego pinu, zresztą biblioteka do inicjalizacji potrzebuje 3 pinów, chyba że piszesz własną bibliotekę.
  • REKLAMA
  • #67 21457008
    inot
    Poziom 38  
    Posty: 3556
    Pomógł: 439
    Ocena: 798
    sznickers napisał:
    ale czy da się wyświetlić teraz na tym wyświetlaczu coś, np. 1234 ?

    Oczywiście, że się da. Problemem jest (niezależnie od wyświetlacza) to, że stawiasz na ESPEasy. W środowisku Arduino istnieją gotowe biblioteki i przykłady zastosowań. ESPEasy dostosowany jest tylko do mikrokontrolerów ESP8266 i ESP32, i dlatego też zainteresowanie w tej dziedzinie nie jest rozpowszechnione i trudno oczekiwać pomocy. Nikt nie będzie się wgłębiał w taki temat. Wbrew nazwie to nie jest takie łatwe. Wprawdzie pojedyncze komendy bez dużej znajomości można dopasować (>>21456925) , ale w jaki sposób to zrobić, aby utworzyć całą funkcję, to inna sprawa.
  • #68 21458446
    inot
    Poziom 38  
    Posty: 3556
    Pomógł: 439
    Ocena: 798
    Powracając do pytania, jak wyświetlić 4 cyfry na tym wyświetlaczu.
    Aby to zrealizować w Arduino, potrzeba trochę programu wykorzystującego funkcje, o których już pisałem.
    Przykład podany w "datasheet" producenta:
    Kod: Arduino
    Zaloguj się, aby zobaczyć kod
  • #69 21462817
    sznickers
    Poziom 11  
    Posty: 196
    Pomógł: 1
    Ocena: 8
    Dziękuję inot-wrócę do tematu-na razie walczę z cyrkulacją, jak ją zrobię to wracam do wyświetlaczy TM . To zamiast ESP Easy mogę wgrać arduino ? A potem z arduino można to też podłączyć do Domoticza rozumiem.
  • #70 21462843
    inot
    Poziom 38  
    Posty: 3556
    Pomógł: 439
    Ocena: 798
    sznickers napisał:
    To zamiast ESP Easy mogę wgrać arduino

    Przynajmniej do wypróbowania.

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