Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Arduino - TM1637 - kropka, dwukropek

10 Dec 2016 23:53 2289 18
  • Level 5  
    Witam;)
    Siedzę już długie godziny i szukam jak można za pomocą sterownika TM1637 sterować kropkami i dwukropkiem w wyświetlaczach 7-segmentowych.
    I o ile gdzieś można coś znaleźć o dwukropku (można tez sterować nim osobno z osobnych pinów uC) tak o pojedynczych kropkach od każdej cyfry już nic.
    Czy ktoś wie jak można to wykonać?
    W standardowych bibliotekach od tego wyświetlacza nie ma nic wspomnianego o sterowaniu kropkami.
    A przypadkiem trafiło mi się darmowo kilkadziesiąt sztuk tego sterownika wiec szkoda by było żeby się zmarnował ;)
    Za pomoc serdecznie dziękuję ;)
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • User removed account  
  • Level 25  
    userduino wrote:
    namok wrote:
    Sprawdź tą bibliotekę: https://github.com/avishorp/TM1637


    Już ją sprawdzałem, i podczas kompilacji wyskakuje taki błąd -
    Arduino - TM1637 - kropka, dwukropek
    To przyznaj się co nabroiłeś bo u mnie na wersji 1.6.5, 1.6.12 jak i platformio kompiluje się bez błędów.
  • VIP Meritorious for electroda.pl
    Może powiem trochę bardziej na luzie, niż kol. @Piotrus_999 :

    Może to dobry moment, żeby zgłębić wiedzę na ten temat? To na pewno Ci zaprocentuje w przyszłości.

    Powiedz z jakiej obecnie biblioteki korzystasz, a razem zerkniemy do kodu.
  • Level 5  
    Piotrus_999 wrote:
    Analiza kodu , myślenie i nauka - innej drogi nie ma.

    Wszystko fajnie i jak najbardziej jestem nastawiony na naukę ale jeszcze tydzień temu uczyłem się mrugania LEDem a teraz wybacz ale "rzucasz mnie na głęboką wodę" :D Chciałem po prostu zrobić prosty termometr na DS18B20 z wykorzystaniem właśnie 3 cyfrowego wyświetlacza 7 segmentowego z kropką za pomocą sterownika TM1637 ;)
    Datasheeta już dawno przeglądałem i to wiele razy jednak poziom mojej wiedzy jest zbyt mały by móc z samej analizy datasheetu coś wywnioskować ;)

    Dodano po 4 [minuty]:

    piotrva wrote:
    Może powiem trochę bardziej na luzie, niż kol. @Piotrus_999 :

    Może to dobry moment, żeby zgłębić wiedzę na ten temat? To na pewno Ci zaprocentuje w przyszłości.

    Powiedz z jakiej obecnie biblioteki korzystasz, a razem zerkniemy do kodu.

    Jestem jak najbardziej za :)
    Myślę że więcej bym się nauczył gdyby ktoś podał gotowe rozwiązanie ale go przeanalizował dlaczego jest tak a nie inaczej i co się skąd wzięło :)
    A biblioteke mam taką sama jaka podawał kolega namok
    namok wrote:
    Sprawdź tą bibliotekę: https://github.com/avishorp/TM1637

    Korzystałem również z tutoriala z tej stronki :)
  • Level 25  
    Nie odnisłeś się do teco co napisałem:
    namok wrote:
    To przyznaj się co nabroiłeś bo u mnie na wersji 1.6.5, 1.6.12 jak i platformio kompiluje się bez błędów.
    Dla pewności spytam, nie zmieniałeś nic w przykładowym programie?. Ten program pochodzi z tej biblioteki która podlinkowałem?
  • Level 5  
    namok wrote:
    Nie odnisłeś się do teco co napisałem:
    namok wrote:
    To przyznaj się co nabroiłeś bo u mnie na wersji 1.6.5, 1.6.12 jak i platformio kompiluje się bez błędów.
    Dla pewności spytam, nie zmieniałeś nic w przykładowym programie?. Ten program pochodzi z tej biblioteki która podlinkowałem?


    Wybacz ale jak pisałem wcześniejszego posta to nie zauważyłem Twojego :)
    Odinstalowywałem całe arduino łącznie z bibliotekami i zainstalowałem ponownie i dodałem Twoją bibliotekę i nagle przykład skompilował się bez tego błędu :)
    Dzięki za pomoc w tym :)
    Idąc dalej załączyłem testowy program z tej biblioteki i o dziwo kropki i dwukropek zaczęły świecić :D
    Jednak jak używać ten funkcji?
    showNumberDecEx - Display a decimal number with decimal points or colon
    To znaczy jakie parametry ona przyjmuje? W przykładzie są 3:
    display.showNumberDecEx(0, (0x80 >> k), true);
    display.showNumberDecEx(a, (b), c);
  • Level 25  
    Wszystko masz opisane w pliku TM1637Display.h:
    Code: c
    Log in, to see the code
  • Level 5  
    namok wrote:
    Wszystko masz opisane w pliku TM1637Display.h:
    Code: c
    Log in, to see the code


    Czyli dobrze to rozumiem?
    Code: c
    Log in, to see the code

    A - numer do wyświetlenia (np. 1234 - przy 4 cyfrowych wyświetlaczu)
    B - nr kropki która ma być wyświetlona 0 - pierwsza kropka ; 3 - czwarta kropka
    C - false lub true; jeżeli true: liczba A jest dopełniana zerami
    D - ilość cyfr w wyświetlaczu
    E - nr wyświetlacza od którego zaczyna się wyświetlanie - 0 - od lewej, 3 - od prawej
  • Level 5  
    userduino wrote:
    namok wrote:
    Wszystko masz opisane w pliku TM1637Display.h:
    Code: c
    Log in, to see the code


    Czyli dobrze to rozumiem?
    Code: c
    Log in, to see the code

    A - numer do wyświetlenia (np. 1234 - przy 4 cyfrowych wyświetlaczu)
    B - nr kropki która ma być wyświetlona 0 - pierwsza kropka ; 3 - czwarta kropka
    C - false lub true; jeżeli true: liczba A jest dopełniana zerami
    D - ilość cyfr w wyświetlaczu
    E - nr wyświetlacza od którego zaczyna się wyświetlanie - 0 - od lewej, 3 - od prawej


    Coś nie mogę sobie poradzić z włączaniem tych kropek :(
    Próbuję analizować przykład ale tez nic z tego mi nie wychodzi:
    Code: c
    Log in, to see the code

    W jaki sposób można kontrolować zapalanie tych kropek? :)
  • Level 25  
    Czy ładowałeś przykładowy projekt z biblioteki do arduino? Kropki się zapalają?
  • Level 5  
    namok wrote:
    Czy ładowałeś przykładowy projekt z biblioteki do arduino? Kropki się zapalają?

    Tak wszystko ładnie działa kropki się zapalają najpierw wszystkie później po jednej od lewej do prawej.
    Tylko nie umiem wydzielić sobie funkcji by np zapalać jedną np pierwsza od prawej itp :)
  • Level 25  
    To skoro działa to pozostaje analiza programu. Polecenie do zapalania kropek znasz. A jeśli dalej nie zrozumiesz co się dziej w programie to niestety musisz wrócić do podastaw, przerobić jakiś kurs programowania w c/c++.
  • Level 5  
    namok wrote:
    To skoro działa to pozostaje analiza programu. Polecenie do zapalania kropek znasz. A jeśli dalej nie zrozumiesz co się dziej w programie to niestety musisz wrócić do podastaw, przerobić jakiś kurs programowania w c/c++.

    Udało mi się z analizować ten przykład i zapalanie poszczególnych kropek :)
    Mam tylko jeszcze jedno pytanie:
    Czy można podpiąć pod jeden uC kilka takich wyświetlaczy z TM1637?
    I w tedy wystarczy tylko zmienić piny dla CLK i DIO?
    Code: c
    Log in, to see the code

    Czy trzeba je jakoś opisywać np CLK1 i DIO1?
    Code: c
    Log in, to see the code

    Bo skąd funkcja
    Code: c
    Log in, to see the code

    będzie wiedzieć do którego wyświetlacza się odnosi?
  • Level 25  
    Prawie tak jak napisałeś ale prawie robi wielką różnicę ;). W setup() stwórz nowy obiekt typu TM1637Display z nowymi definicjami dla clk i dio i nową nazwą obiektu, nazwa może być dowolna:
    Code: c
    Log in, to see the code

    a potem odwołuj się do tego wyświetlacza przez display1. Kłania się tu obiektowość w c++.