(05-18-2022, 12:26 AM)sl500 napisał(a): (05-16-2022, 11:06 AM)wilkxt napisał(a): (04-15-2022, 05:19 PM)sl500 napisał(a): Jednak poproszę was o sprawdzenie tych wejść analogowych w 1.48 bo fajna sprawa ze może pokazywać wartości ujemne(akurat znalazłem sobie czujnik ciśnienia z możliwością pokazania podciśnienia) ale jakieś nieliniowe wzory wprowadziliście chyba w kodzie bo z czujnika liniowego zrobił się mi chyba wykładniczy, nie można dobrać ani współczynnika kalibracji ani mnożnika dla vin=5V
Daj kalibracje na 0, mnoznik na 1 i podepnij pod wejscie regulowany zasilacz, reguluj od 0 do 5V (dla iNPA1-2) i sprawdz czy dobrze pokazuje
Zasilacza nie mam ale sprawdzałem potencjometrem i miernikiem i faktycznie mierzy ok, problemy się pojawiają jak chce np zrobić kalibracje -500 aby dla 0,5V było zero w wyniku i tu zonk bo pokazuje wynik -0,1
Bo kalibracja +- nie jest odejmowana/dodawana bezpośrednio do wyniku wyswietlanego na stronie, tylko wczesniej do samej wartości odczytanej z ADC, jeszce przed przeliczeniami. Może gorzej ją ustawić, ale dzieki temu mamy wiekszą rozdzielczość w kalibracji.
np. dla wejscia INPA1 co mierzy napiecie do 5V mamy to zrobione tak:
ADC jest 12bit, więc dla 0-5V, daje wynik 0-4095, żeby wyswietlić wynik z ADC w postaci napięcia LK robi przeliczenie:
wynik= (adc_w * 5000) / 4095, otrzymujemy wynik w mV
może sie wydawać, że kalibracja+- jest robiona jako wynik_ostateczny=wynik+-kalibracja, ale tak nie jest.
Kalibracja+- jest robiona wcześniej i jest dodawana do odczytu z ADC adc_w=adc+-kalibracja.
Dlatego jak masz wynik 0.5V i chcesz miec 0V to musisz odjąć 410, a nie 500.
dla wyniku 0,5V mamy adc_w=410
wynik=(410*5000)/4095=500 mV
jak teraz ustawisz kalibracje na -410 to będzie wynik=((410-410)*5000)/4095 co da na wyjsciu 0.
jak dawałeś w kalibracji -500 to było wynik=((410-500)*5000/4095=-109 co w wyniku daje mniej wiecej -0,1V
Dodam, ze mnoznik już jest stosowany do wyniku w mV