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.

[bascom] prezentacja pomiaru ADC w postaci procentowej

tomson5 16 Sep 2010 13:26 1604 8
  • #1
    tomson5
    Level 16  
    Witam.
    Potrzebuję przedstawić wynik pomiaru przetwornika ADC w postaci procentowej.
    Przy założeniu że:
    0.35V = 0%
    3V = 100%
    Wynik pomiaru przechowuję w zmiennej A1.
    Co należy wykonać, aby zmienna przyjęła takie wartości?
    Oczywiście znak "%" będzie tylko na wyświetlaczu LCD a nie w zmiennej.
    Kamery 3D Time of Flight - zastosowania w przemyśle. Darmowe szkolenie 16.12.2021r. g. 10.00 Zarejestruj się
  • Helpful post
    #2
    mario06
    Level 15  
    Podstawy matematyki, odrzucasz skrajne te poniżej 0.35V i powyżej 3V a obliczenie to: (VAL - 0.35) / 2.65 * 100 % . A najlepiej cały proces wykonać zaraz po przetworzeniu przez przetwornik gdy wartość jest w postaci bitowej.
  • #3
    tomson5
    Level 16  
    Dzięki
    Niby podstawy a coś wpaść na to nie mogłem

    pozdrawiam
  • #4
    tomson5
    Level 16  
    Zamiana na procenty działa świetnie.
    Potrzebuje jeszcze pomysł aby wartości napiecia poniżej 0,35V ograniczone były do 0% a nie jak w tej chwili wyświetlane są jak wartość ujemna tak samo muszę zablokować górny próg 3V aby powyżej niego nie wskazywało np: 110%
    nad tym pomyślę sam bo mam jakieś pomysły.
    Natomiast nie wiem jak zamaskować te "procenty" tak aby nie było widać części dziesiętnych chcę aby wynik był bez przecinka i ułamków.
    funkcja fusing zawęziła mi do jednego miejsca po przecinku a Ja chcę same jedności

    myślałem o zamianie zmiennej liczbowej na zmienną tekstową za pomocą funkcji STR ale potem nadal nie wiem jak na wyświetlaczu "zasłonić" ułamek
  • #5
    tadzik85
    Level 38  
    Ogranicz ifami, zaokrągla się funkcją round.
  • Helpful post
    #6
    mario06
    Level 15  
    Odnośnie wartości całkowitej to nie wiem jak w bascomie, ale w C jest reszta z dzielenia lub dzielenie całkowite i wtedy dzielić przez 1, z pascala były polecenia mod i div.
  • #7
    tomson5
    Level 16  
    Również z "IFami" miałem pomysł więc jutro to uzupełnie
    Natomiast funkcja round jest jak najbardziej na miejscu
    Zemściła się na mnie nieodrobiona lekcja z książki, akurat ten temat przeleciałem pobieżnie.

    Dzięki wielkie
  • Helpful post
    #8
    cepelia
    Level 20  
    Code:


    dim a as Integer 'tu trzymasz zmienną z pomiaru
    dim as as string  'tu zrobisz z niej stringa i odpowiednio pokażesz na lcd

    if a < 3  then
      a=0
    else
      a = a
    end if

    if a > 30 then
      a=0
    else
      a=a
    end if

     as = Str(a)
     as = Format(as , "00 %")

    lcd as


    poczytaj o funkcji format bo pisałem to z głowy i nie wiem dokładnie czy składnia jest poprawna ale wydaje mi się że tak
  • #9
    tomson5
    Level 16  
    EDIT: Udało mi się uzyskać efekt "bez kropki"

    Code:
    A = Round(a)
    
    A1 = Str(a)
    A1 = Left(a1 , 2)