Elektroda.pl
Elektroda.pl
X

Search our partners

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

arduino zle wyswietlenie jednostek z czujnika odleglosci hc sr04

lukasz2131481 01 Sep 2017 22:17 1380 9
  • #1
    lukasz2131481
    Level 9  
    mam problem z wyswietlanymi jednostkami (cm) na wyswietlaczu. pomiar z czujnika ultradzwiekowego hc sr04 jest wyswietlany prawidlowo tylko problem polega na tym ze np jak odleglasc jest 3 cyfrowa np 125 cm to tak wyswietla ale juz jak jest 2 cyfrowy to wyswietla mi np 85 cmm i analogicznie jak jest np 8 cm to wyswietla mi 8cmmm dodaja za kazdym razem po 1 m za kazda cyfre co moze byc powodem i co jest nie tak z kodem. kod znalazlem na Youtube z filmiku ale nie dziala tak jak powinno ponizej daje link do filmu oraz kod

    https://www.youtube.com/watch?time_continue=178&v=ZejQOX69K5M





    Code: c
    Log in, to see the code
  • Helpful post
    #2
    rb401
    Level 38  
    lukasz2131481 wrote:
    dodaja za kazdym razem po 1 m za kazda cyfre


    To nie kod dodaje te literki a po prostu zostają one po poprzednim wyświetleniu i nie są kasowane. Rozwiązaniem może być kasowanie (wypełnienie spacjami) całego miejsca na którym wyświetlasz pomiar przed jego wyświetleniem (tylko wynik może lekko migotać) lub prościej zmiana w linijce lcd.print(" cm");, mianowicie dopisanie wewnątrz cudzysłowowa dwóch spacji po cm, które zamażą poprzedni napis:

    Code: c
    Log in, to see the code


    zakładając że wynik (same cyfry) zajmują od jednej do trzech pozycji.
  • #3
    User removed account
    User removed account  
  • #4
    lukasz2131481
    Level 9  
    dzieki za zainteresowanie ale czy dalbys rade to troszke inaczej objasnic lub poprawic ten kod tak aby dzialal jak pisalem. zapomnialem wczesniej dodac iz z arduino mam doczynienia od 3-4 dni i nie bardzo wiem jak to az tak ogarnac. mimo iz przeskakujacy napis cm nie przeszkadza mi tak bardzo to lepiej by to wygladalo jak by pozostal on w jednej pozycji a zmieniala by sie tylko wartosc
  • #5
    User removed account
    User removed account  
  • #6
    grko
    Level 33  
    Taka konstrukcja:
    Code: c
    Log in, to see the code

    nie zadziała z racji tego, że sprintf_P oczekuje stringa formatującego, który jest umieszczony w pamięci programu.

    Tutaj:
    Code: c
    Log in, to see the code

    jest zbędne rzutowanie.
  • #7
    User removed account
    User removed account  
  • #8
    grko
    Level 33  
    R-MIK wrote:

    W Arduino pewnie tak, w AVR GCC 4.18 i bibliotekach 2.0.0 brak rzutowania daje ostrzeżenia.


    Nie istnieje gcc w wersji 4.18. Zresztą bardzo ciekawi mnie jakie to ostrzeżenie. Bo używam tego od dłuższego czasu i nigdy nie było potrzeby rzutowania. No cóż, może to taka osobliwość nieistniejącego kompilatora.

    Ponadto arduino to to kompletne IDE, które ma dokładnie tego samego typu toolchain co atmel studio. Jedyna różnica może być w wersji gcc, wersji biblioteki standardowej oraz tym, że arduino używa C++ (nie, nie jest to język arduino wbrew powszechnemu przekonaniu niektórych).
  • #9
    User removed account
    User removed account  
  • #10
    lukasz2131481
    Level 9  
    mysle ze jednak zostane przy opcji gdzie wyswietlane cm nie beda na sztywno wyswietlane tylko dostosowując sie do wyswietlanej wartosci. po pierwsze nie potrafie tego ogarnac a po drugie przy liczbach wiekszych niz 4 cyfry lepiej to wyglada. dziekuje wszystkim za pomoc i uwazam temat na dzien dzisiejszy za zakonczony przynajmniej w kwestii z ktora wczesniej mialem problem.