Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Pomiar napięcia ujemnego DC
#1
Mierzone napięcie -54V z siłowni telekomunikacyjnej, przez dzielnik 100k / 4k75 do INPA1 (zakres 5V), drugi koniec dzielnika do +5V.
Potrzebny offset da się ustawić w kalibracji, ale LK pokazuje ujemne wartości jako 0, a ujemny mnożnik -23 zmienia się na 632.36.
Wygląda jakby wartość mnożnik*100 była zapisywana na 16 bitach bez znaku, dałoby się poprawić kod by obsługiwał mnożnik ze znakiem?
Albo dodać kolejny typ czujnika do wyboru - pomiar napięcia ujemnego przez dzielnik do +5V.
<t></t>
Odpowiedz
#2
marekm post_id=16059 time=1566703336 user_id=139 napisał(a):Wygląda jakby wartość mnożnik*100 była zapisywana na 16 bitach bez znaku, dałoby się poprawić kod by obsługiwał mnożnik ze znakiem?
Albo dodać kolejny typ czujnika do wyboru - pomiar napięcia ujemnego przez dzielnik do +5V.

zmienimy typ mnożnika na liczbę z znakiem
pozdrawiam
tomek
Odpowiedz
#3
(09-06-2019, 09:32 AM)wilkxt napisał(a):
marekm napisał(a):Wygląda jakby wartość mnożnik*100 była zapisywana na 16 bitach bez znaku, dałoby się poprawić kod by obsługiwał mnożnik ze znakiem?
Albo dodać kolejny typ czujnika do wyboru - pomiar napięcia ujemnego przez dzielnik do +5V.

zmienimy typ mnożnika na liczbę z znakiem
Trochę czasu minęło, testuję teraz - SW 1.32c, HW 3.6.
Dla przypomnienia - mierzone ujemne napięcie przez dzielnik 100k/4k75 do INPA1, drugi koniec dzielnika do +5V by przesunąć wartości ujemne do dodatnich mieszczących się w zakresie pomiaru LK.
Wychodzi że potrzebny jest ujemny mnożnik -22, skorygowany rzeczywistymi pomiarami (z powodu różnych tolerancji, być może rezystancji wejściowej LK) wychodzi -23.
Przy ustawieniach domyślnych (kalibracja 0, mnożnik 1) pokazuje +2,14V na INPA1 dla -54V na wejściu.
Doraźnie opisuję wejście jako "60V - Vbat", ustawiam zakres vin=5V, gain 1, mnożnik 23 kalibracja -1543 co przy -54V na wejściu daje odczyt +6,0V.
Chcąc odczytać wprost mierzone napięcie potrzebuję ustawić mnożnik -23 co jednak nie działa prawidłowo (wyświetlany jest ujemny, w obliczeniach widziany jako liczba bez znaku - dużo większa dodatnia).  Poza tym ostatecznie obliczony wynik ujemny jest wyświetlany jako zerowy.
Jest szansa na poprawienie tego?  Chociaż po ograniczeniu mnożnika do +/-327,67 nie wystarczy zakresu jakby ktoś chciał mierzyć 3kV na kolei...  Być może przydałby się zmienny przecinek.

Na INPA2 mam pomiar prądu baterii (czujnik WCS1800 - dwukierunkowy), przy poprawnym odczycie napięcia na INPA1 działałoby również zliczanie energii - o ile też jest dwukierunkowe?
<t></t>
Odpowiedz
#4
sprawdzimy ten ujemny dzielnik
pozdrawiam
tomek
Odpowiedz
#5
(12-17-2020, 08:14 PM)wilkxt napisał(a): sprawdzimy ten ujemny dzielnik

Znowu trochę czasu minęło i teraz testuję aktualny firmware 1.47a - jest postęp że da się wstawić wartość ujemną -23 jako mnożnik, jednak nadal nie działa to poprawnie z opisywanym pomiarem ujemnego napięcia przez dzielnik.
Wartość z ADC jest przesuwana o wartość wpisaną w polu "kalibracja" (u mnie ujemną około -3600 bo chcę uzyskać wskazania "zero" przy 0V przed dzielnikiem co daje około +4,4V podawane na LK) i niestety jeśli (ADC + kalibracja) jest ujemne, jest obcinane do zera co jest błędem.  Jakby została tam wartość ujemna, po pomnożeniu przez mnożnik -23 dostałbym dobry odczyt napięcia (normalnie około 54V).

Jeszcze raz:

dzielnik: wejście - rezystor 100k - INPA1 - rezystor 4k75 - +5V

na wejściu dzielnika 0V, na wejściu INPA1 +4,4V co w 12-bitowym ADC o zakresie 0...+5V daje wynik około 3600
plus kalibracja -3600 by dostać 0 co bez względu na mnożnik daje odczyt 0V

na wejściu dzielnika -52V, na wejściu INPA1 +2,14V, z ADC 1750, plus kalibracja -3600 co daje -1850, *5/4096 daje około -2,25V razy mnożnik -23 co daje około 52V

ważne by wartość (ADC + kalibracja) traktować jako ze znakiem i nie obcinać do zera jeśli jest ujemna (choć sama wartość z ADC jest bez znaku 0...4095)

jak już jesteśmy przy matematyce to przyjrzałbym się zaokrągleniom wokół zera, dla WCS1800 zmieniając kalibrację co 1 widzę spore "skoki" tak jakby coś tam nie było zaokrąglane poprawnie (przeskok z -0,03 na 0 potem 0,01 i 0,03).  Dzielenie liczb całkowitych w języku C ma to do siebie że zaokrągla w stronę zera a nie najbliższej wartości, przed dzieleniem trzeba skorygować dzielną o +/- pół dzielnika zależnie od jej znaku.  Tyle zgaduję gdzie może być problem nie widząc kodu Smile
<t></t>
Odpowiedz
#6
Prosz eprzetestowac załączony firmware
.zip   lk3_8_firmware_1_49cRc1.zip (Rozmiar: 533.9 KB / Pobrań: 103)
pozdrawiam
tomek
Odpowiedz
#7
(02-03-2022, 10:57 AM)wilkxt napisał(a): Prosz eprzetestowac załączony firmware

Mierzy prawidłowo - dzięki!

Na liście czujników widzę "HV DC meter", ale nie widzę w ofercie - coś bliższego w temacie?
<t></t>
Odpowiedz
#8
SW 1.49cRc1 | HW 3.8 z nakładką Gsm i2c siada po ok 15min zaprzestając trwale współpracować z magistralą Z uwagi na ups trzeba fizycznie wyłączyć zasilanie by komunikacja wstała.
Bez Gsm tez zdycha tylko dłużej mu to zajmuje....

-mnożnik fajna opcja pozwalająca odwrócić odczyty spadające ja testuje na czujniku ognia - teraz płomień ma wartości rosnące a zero to koniec opału tylko oled pada i bme280 zasilany 3v
e-chata.hyzne.com | LK1 - sterowniki akwarystyki | LK2 - sterowniki ihome | LK3 - niezliczone ilości wersji/nakładek na farmach PV i nie tylko | LK4 - testy bezprzewodowe
Odpowiedz
#9
(02-08-2022, 08:12 AM)stAch napisał(a): SW 1.49cRc1 | HW 3.8  z nakładką Gsm i2c siada po ok 15min zaprzestając trwale współpracować z magistralą Z uwagi na ups trzeba fizycznie wyłączyć zasilanie by komunikacja wstała.
Bez Gsm tez zdycha tylko dłużej mu to zajmuje....

U mnie działa ale nie mam nic podłączonego do I2C, ogólnie ta magistrala nie lubi zbyt długich przewodów, ciekaw jestem czy LK radzi sobie prawidłowo z zawieszeniem się po jakimś zakłóceniu, zwykle udaje się odwiesić wysyłając 10 impulsów na SCL choć bywają układy slave którym pomaga tylko sprzętowy reset (odcięcie zasilania).
<t></t>
Odpowiedz
#10
(02-08-2022, 08:00 PM)marekm napisał(a):
(02-08-2022, 08:12 AM)stAch napisał(a): SW 1.49cRc1 | HW 3.8  z nakładką Gsm i2c siada po ok 15min zaprzestając trwale współpracować z magistralą Z uwagi na ups trzeba fizycznie wyłączyć zasilanie by komunikacja wstała.
Bez Gsm tez zdycha tylko dłużej mu to zajmuje....

U mnie działa ale nie mam nic podłączonego do I2C, ogólnie ta magistrala nie lubi zbyt długich przewodów, ciekaw jestem czy LK radzi sobie prawidłowo z zawieszeniem się po jakimś zakłóceniu, zwykle udaje się odwiesić wysyłając 10 impulsów na SCL choć bywają układy slave którym pomaga tylko sprzętowy reset (odcięcie zasilania).

zdycha jak skończy mu się dostępna pamięć - Nakładka GSM zabiera sporo pamięci więc szybciej bez wegetuje dłużej po czym tracimy dostęp, fakt oba testowane egzemplarze mocno obciążone in/out/scheduler/events/i2c-1wire

co do magistrali to daje rade... u mnie odcinki max 15m na cat5e i2c leci z wyjściem pwm do kratki wentylacyjnej  z wentylatorem i bme280 od dłuższego czasu bez problemowo, wyświetlacz oled nieco krócej max 7m współdzieli skrętkę z wejściem cyfrowym i DS'em

kluczowe jest odpowiedniej jakości skrętka i dobranie par drucików mi to chwilę zajęło
sda i scl nie lubi się z nikim Smile i z sobą, wiec ostatecznie oba w parach z masa, dodatkowo po kolorach zasilania tych grubszych
3 i 5v kolejna para skrętki 
1wire też z masą, choć może z wejściem i wejściem analogowym (do 5v) śmiało pracować w parze ale nie przepada za PWM
testowałem oled po cat6 i sygnał leci przez całe pudło kabla (ponad 300m) każdy do pary oraz uziemienie całości.
e-chata.hyzne.com | LK1 - sterowniki akwarystyki | LK2 - sterowniki ihome | LK3 - niezliczone ilości wersji/nakładek na farmach PV i nie tylko | LK4 - testy bezprzewodowe
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości