Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Aktywne obciążenie z pomiarem pojemności akumulatorów.

Sly8-) 27 Feb 2019 16:01 8100 33
Computer Controls
  • Aktywne obciążenie z pomiarem pojemności akumulatorów.

    NA WSTĘPIE

    Wiem, wiem, ktoś zaraz powie, że układów aktywnego obciążenia nie sposób zliczyć i kolejny taki projekt przyczynia się do klęski urodzaju… 8-)

    Mimo wszystko chciałbym przedstawić projekt aktywnego obciążenia. Aktywne obciążenie samo w sobie nie jest czymś szczególnym, ale obudowane w odpowiedni układ elektroniczny, nabiera niebanalnego formatu. Tutaj akurat rozszerzenie podstawy stanowi mikrokontroler wykorzystany do pomiarów prądu, napięcia i mocy, oraz badania pojemności dowolnych akumulatorów od 100mAh do 99Ah z funkcją automatycznego odcięcia obciążenia od źródła po osiągnięciu nastawionego napięcia rozładowania. Dodatkowym zajęciem mikrokontrolera jest sterowanie obrotami wentylatora w zależności od temperatury radiatora.

    Ostatnio edytowany: 04-04-2019.
    Ostatnio edytowany: 13-11-2021. ("Mała" Errata, poniżej)

    OGÓŁY

    Aktywne obciążenie z pomiarem pojemności akumulatorów.

    Działanie podstawowego układu aktywnego obciążenia jest dosyć proste i niemal jednakowe we wszystkich tego rodzaju układach. Tranzystor mocy T3 włączony jest w szeregu ze źródłowym (lub emiterowym) rezystorem pomiarowym mocy RA+RB do źródła prądu (np. zasilacz, akumulator). Tranzystor sterowany jest sygnałem błędu, wytwarzanym we wzmacniaczu pomiarowym U2B na podstawie sygnału (napięcia) pobieranego z rezystora pomiarowego, oraz sygnału (napięcia) zadawanego z potencjometru regulacyjnego P1+P2. Różnica tych sygnałów (napięć) powoduje takie otwarcie (lub przymknięcie) tranzystora przez wzmacniacz pomiarowy, aby je wyrównać. Wpływa to oczywiście na wielkość prądu przepływającego przez tranzystor a tym samym prądu pobieranego z badanego źródła. Na rezystorze pomiarowym odkłada się napięcie proporcjonalne do przepływającego przezeń prądu zgodnie z prawem Ohma.

    Oczywiście ten układ podstawowy doczekał się w różnych układach wielu modyfikacji, np. więcej niż jednego tranzystora mocy, dodatkowych tranzystorów sterujących, tranzystora MOSFET zamiast bipolarnego, wymyślnych wersji wzmacniaczy operacyjnych, itp..

    W moim projekcie zastosowałem najprostszy wariant z jednym tranzystorem polowym, nie tanim ale o dużych możliwościach w charakterystyce SOA (w trybie DC), a mianowicie typ STW20NB50 w obudowie TO-247 (posiadałem go w swoich zasobach z rozbiórek). Tranzystor sterowany jest bezpośrednio przez popularny podwójny wzmacniacz operacyjny LM358, zasilany pojedynczym napięciem 9V. Napięcie pomiarowe z rezystora mocy (dwa równoległe rezystory 0R1 5W) doprowadzone jest przez prosty filtr RC (R9, C10) do wejścia odwracającego pierwszego wzmacniacza (U2B), oraz do wejścia nieodwracającego drugiego wzmacniacza (U2A), celem wzmocnienia napięcia przed podaniem do mikrokontrolera – pomiar prądu. Do wejścia nieodwracającego pierwszego wzmacniacza podawane jest również napięcie z dwóch szeregowo połączonych potencjometrów regulacyjnych (P1+P2), tworzących układ zgrubnej i dokładnej regulacji pobieranego przez obciążenie prądu. W pierwszym wzmacniaczu wypracowuje się sygnał błędu sterujący tranzystorem mocy. Tranzystor pracuje liniowo, nietypowo jak na MOSFET’a, ale najzupełniej normalnie.

    Uwaga! Niniejszy układ aktywnego obciążenia nie jest w 100% „idiotoodporny” i może nie przeżyć odwrotnego podłączenia badanego źródła prądu!

    Po zastanowieniu i dodatkowym zwróceniu mi na to uwagi przez Kolegów, dodałem do układu proste zabezpieczenie wejścia za pomocą szeregowego bezpiecznika 10A (F1) oraz równoległej, wstecznie podłączonej szybkiej diodzie (D5), która ma za zadanie przepuścić przez bezpiecznik prąd zwarciowy w przypadku odwrotnego podłączenia źródła prądu. Ale niestety nie zawsze zda to egzamin. Nie każde źródło będzie w stanie przepuścić przez tą diodę prąd zwarciowy na poziomie ponad 10A, tak, żeby upalić bezpiecznik. W takim przypadku prąd zwarcia (do 10A) będzie ciągle płynął. Ponieważ napięcie przewodzenia diody wewnątrz tranzystora MOSFET (typ w/g schematu, do 1,6V) jest większe od napięcia przewodzenia diody zewnętrznej (~0,6V), to tranzystor może to jednak przeżyć, bo cały (większość) prąd „pójdzie” przez diodę zewnętrzną. Wybrałem szybką diodę 20-to amperową w obudowie TO-220, która powinna przeżyć taki wypadek przy pracy, ale nic nie stoi na przeszkodzie, aby zastosować dowolną inną diodę.

    Inną kwestią jest, jak to przeżyje sam mikrokontroler, kiedy dostanie napięcie ujemne względem masy…

    Zamieszczam nowy schemat z dodanym zabezpieczeniem, niestety bez nowego rysunku płytki PCB, ale opisane zabezpieczenie można dołączyć „na pająka” między gniazdami wejściowymi a płytką.


    SZCZEGÓŁY

    Projekt aktywnego obciążenia powstał w oparciu o mikrokontroler ATtiny26. Wiem, że to przeżytek, ale użyłem go kiedy jeszcze robiłem pierwszy prototyp ładnych kilka lat temu, i tak już zostało. Taktowany jest wewnętrznym oscylatorem o częstotliwości 8MHz, który przy kilku pierwszych uruchomieniach jest kalibrowany „ręcznie” metodą prób i błędów poprzez zmianę parametru wpisywanego do rejestru OSCCAL oscylatora na początku programu. Opiszę tą procedurę nieco później, po opisie trybu pomiaru pojemności akumulatorów. Wprawdzie jest w układzie funkcja pomiaru pojemności akumulatorów, polegająca na zliczaniu odbieranego ładunku w funkcji czasu, ale stabilizowanie czasu za pomocą kwarcu uważam za zbędne ponieważ nie jest to sprzęt laboratoryjny, a niewielkie odchyłki zliczanego czasu (po kalibracji oscylatora) niewiele wpływają na wynik pomiaru Ah. Poza tym opcja pomiaru Ah doszła po długim czasie używania układu tylko jako aktywnego obciążenia, gdzie dokładność oscylatora w ogóle nie miała znaczenia. Jeśli komuś będzie zależało na stabilizacji zegara kwarcem – nie widzę przeciwwskazań, byle miał wolne nóżki XTAL do dyspozycji (ja nie miałem).

    Program powstał całkowicie w asemblerze i zajmuje po brzegi dostępną pamięć procesora czyli pełne 2kB. Musiałem bardzo optymalizować, skracać i usuwać zbędny kod, zwłaszcza z moich uniwersalnych dołączanych bibliotek, żeby zmieścić obsługę wyświetlacza LCD, układu 1-Wire, programowego USART’u, pomiaru przez ADC napięcia i prądu, wyliczenia mocy i pojemności, i kilka innych wewnętrznych funkcji. Być może udało by się bardziej odchudzić program bardziej wyrafinowaną optymalizacją, ale na razie nie jest to potrzebne, no chyba że potrzebowałbym dołożyć jeszcze jakiś wodotrysk... 8-)

    Przetwornik ADC otrzymuje zasilanie poprzez dławik (L1) i blokowane kondensatorem (C6) na końcówce AVCC, a jako źródło napięcia odniesienia wykorzystuje wewnętrzne napięcie 2,56V. Pomiary uruchamiane są cyklicznie co 200ms, w takt głównej pętli programu.

    Pomiary.

    Aby móc wyświetlać prąd i napięcie z dokładnością do 0,01 (co nie znaczy, że z taką dokładnością dokonywane są pomiary – nie za pomocą prostego wbudowanego napięcia odniesienia) , dokładność przetwarzania ADC została programowo podniesiona z 10 do 12 bitów. Bez tego zabiegu dokładność wskazań napięcia przy założonym zakresie 30V wynosiła 30V/1023(ADC) = ~0,03V, co mnie nie zadowalało. Dzięki oversamplingowi do 12 bit dokładność wskazań napięcia wyniosła 30V/4095(ADC) < 0,01V. Dla prądu o założonym zakresie 10A oversampling był w zasadzie zbędny, bo 10A/1023(ADC) = ~0,01A, co jest wystarczające, ale skorzystałem już z tych samych procedur przetwarzania co dla napięcia, a co. Przy każdym pomiarze wykonywane jest wiele „szybkich” odczytów z ADC z których wyciągana jest średnia, która następnie ląduje w „wolnym” buforze kołowym zapełnianym cyklicznie co pomiar. Średnia z tego bufora jest dopiero brana do dalszych właściwych obliczeń prądu lub napięcia. Dzięki temu odczyty są całkiem stabilne, bez „myszkowania”, ale wystarczająco szybko reagujące na zmiany mierzonych wielkości.

    Temperatura radiatora mierzona jest układem Dallasa (U3) na szynie 1-wire (może to być 18B20 lub 18S20 - program rozpoznaje układ i się dostosowuje), z dokładnością do pełnych stopni, i na tej podstawie określane jest jak szybko kręcić wentylatorem radiatora – im goręcej, tym szybciej, rzecz jasna. Przy włączaniu zasilania wentylator otrzymuje duże obroty żeby się rozruszać a po chwili minimalne obroty, poniżej których już nie schodzi.

    Pomiar pojemności akumulatorów polega w głównej mierze na sumowaniu odczytów prądu w ustalonych odstępach czasu (tutaj 1s) a następnie scałkowaniu tej sumy dla przedziałów określonego czasu (tutaj 1h = 3600s). Dla przykładu niech to będzie pomiar prądu 1A; jeśli będziemy go sumować w ciągu godziny co sekundę, to otrzymamy sumę odczytów = 1A * 3600s = 3600As; jeśli podzielimy to przez stały okres całkowania 3600s (1h), to otrzymamy 3600As/3600s = 1A „na godzinę”, czyli 1A pobrany w 1 godzinę, czyli 1Ah. Ale sprawdźmy, jeśli będzie prąd = 4A przez 10 godzin, to co wyjdzie? 4A * 36000s = 144000As -> 144000/3600 = 40Ah. Czyli wszystko się zgadza. A dla 0,5A przez 30min.? Policzmy, 0,5A * 1800s = 900As -> 900 / 3600 = 0,25Ah. Znowu się zgadza. Do sumowania odczytów prądu zastosowałem zmienną 4 bajtową, w której można zmieścić 291 godzin co sekundowych pomiarów w rozdzielczości 12bit – sumowane są surowe pomiary, bez przeliczania na wartości liczbowe prądu, dzięki czemu nie są sumowane błędy ew. zaokrągleń.

    Rzecz jasna obliczenia wszystkich mierzonych parametrów są dokonywane na liczbach rzeczywistych ze stałą liczbą 2-ch miejsc po przecinku, traktowanych w obliczeniach jak liczby całkowite. Wyniki również otrzymujemy z dokładnością do dwóch miejsc po przecinku.

    Aby zmierzyć pojemność aku. należy go podłączyć do obciążenia przy skręconych na minimum potencjometrach zgrubnym i dokładnym (wyłączenie obciążenia) oraz na maksimum potencjometrze regulacji napięcia odcięcia (P3). Wyświetlacz powinien pokazać napięcie na aku, np. 13,25V oraz brak prądu obciążenia. Jednostka napięcia powinna być zapisana jako „V” (wielką literą), jeżeli jest to małe „v”, to należy krótko nacisnąć przycisk załączenia funkcji odcięcia obciążenia aby wrócić do wielkiego „V”. Teraz regulujemy potencjometrem napięcie odcięcia, np. dla aku kwasowego 12V będzie to napięcie pełnego rozładowania 10,20V (1,7V/ogniwo, różne źródła mogą podawać nieco inne wielkości, zwłaszcza zależy od wykonania aku i jego producenta). Naciskamy dłużej (ponad 3 sek.) przycisk funkcji odcięcia obciążenia (S1), aż literka „V” zmieni się na małe „v”, dzięki czemu nastawiona wartość napięcia zostaje zapamiętana, a funkcja odcięcia załączona. Może się przy tym uaktywnić odcięcie i włączy się alarm (bipek), ponieważ układ odczytuje obniżone napięcie – nie należy się tym przejmować, tylko przekręcić potencjometr napięcia odcięcia z powrotem na maksimum i tak już zostawić – funkcja odcięcia obciążenia przejdzie z powrotem do czuwania. Raz nastawiona wartość napięcia odcięcia będzie zachowana dla kolejnych pomiarów aku podobnego typu, dopóki nie zechcemy mierzyć aku o innym napięciu. Przy kolejnym pomiarze podobnego aku wystarczy po prostu krótkim naciśnięciem przycisku załączyć/wyłączyć funkcję odcięcia obciążenia, bez kręcenia potencjometrem P3.

    Teraz wystarczy nastawić żądany prąd obciążenia, najlepiej tzw. 20-godzinny (typowo wg zaleceń dla aku kwasowych), np. 2,2A dla aku 44Ah, i poczekać cierpliwie na sygnał zakończenia pomiaru – bipanie. W zależności od kondycji aku może to potrwać mniej niż lub co najmniej 20h. Dzięki funkcji odcięcia obciążenia nie musimy martwić się o przegapienie momentu pełnego rozładowania i zniszczenie aku – obciążenie wyłączy się samoczynnie. Oczywiście tuż po rozładowaniu należy taki aku natychmiast podłączyć do ponownego naładowania, najlepiej w trybie 10-godzinnym. Na wyświetlaczu możemy odczytać wartość Ah oraz czas pomiaru jaki upłynął.

    Uwaga! Pomiar (zliczanie) pojemności uaktywnia się samoczynnie po wykryciu prądu co najmniej 50mA oraz zatrzymuje się poniżej tej wartości, bez jakichkolwiek czynności z naciskaniem przycisku i regulacją napięcia odcięcia, opisanych powyżej - służą one jedynie do załączenia trybu pilnowania napięcia i odłączenia obciążenia. Oznacza to, że pojemność będzie liczona również wtedy, jeśli zamiast aku będzie podłączony jakiś zasilacz; taki efekt uboczny, ale da się przeżyć... 8-)

    Reszta.

    Na jednym z wyjść procesora występuje w cyklu 1-sekundowym transmisja z programowego USART’u z prędkością 9600 8N1, w której zawarta jest informacja identyczna z pokazywaną na wyświetlaczu w postaci kodów ASCII. Można transmisję skierować np. do komputera poprzez dowolną przejściówkę RS232-TTL/USB i odczytywać informacje bezpośrednio w dowolnym terminalu, po wskazaniu odpowiedniego portu COM przejściówki. W transmitowanych danych występują kody ASCII sterujące terminalem, a mianowicie kody CR+LF na końcach linii oraz kod CLRSCR do czyszczenia ekranu na początku każdej transmisji, dzięki czemu dane wyświetlane są w oknie terminala w stałym miejscu (brak przewijania okna w miarę odbierania danych).

    Aby zarówno programowy USART, jak i zliczanie pojemności akumulatorów w funkcji czasu działały prawidłowo, należy przy pierwszym uruchomieniu układu dokonać starannej kalibracji wewnętrznego oscylatora RC, wpisując odpowiednio dobraną wartość do rejestru OSCCAL, poprzez stałą zadeklarowaną w programie jako CALVAL. Kalibracja polega na kilkukrotnych operacjach poprawiania wartości tej stałej, kompilowania kodu i programowania, dopóki nie osiągnie się dokładności lepszej niż +/- 1 sek. na minutę. Aby wspomóc się przy tej operacji, można wykorzystać sygnał z brzęczyka, który uruchamia się w trybie pomiaru pojemności akumulatorów, kiedy wykryte zostaje napięcie odcięcia – należy bez podłączonego żadnego źródła napięcia na wejściu, załączyć tryb kontroli napięcia, tak, aby uruchomić blokadę obciążenia – załączy się brzęczyk z 1-sekundowym okresem. Wystarczy ze stoperem w ręku zliczyć 60 piknięć i sprawdzić, czy zajęło to jedną minutę +/- <1 sek.. Jeżeli na stoperze upłynęło więcej niż 60 sek., np. 73 (13 sek. różnicy), to znaczy, że oscylator pracuje za wolno i należy wartość CALVAL zwiększyć, aby go przyspieszyć – na początku krok zmian może być =16, a kolejne kroki każdy o połowę mniejsze, aż osiągniemy żądaną dokładność czasu. Analogicznie, jeżeli 60 piknięć zajęło mniej niż 60 sek., to trzeba zegar spowolnić zmniejszając stopniowo wartość CALVAL. Typowa wartość OSCCAL (CALVAL) dla 8MHz, według datasheet’a, to ok. 160 (0xA0), i na tej wartości można bazować zaczynając kalibrację.

    Całą procedurę kalibracji można znacznie uprościć, jeżeli dysponuje się programatorem, który umożliwia odczytanie bajtów kalibracji umieszczonych w bajtach sygnatury mikrokontrolera Tiny26. Są tam bajty kalibracji dla zegarów 1, 2, 4 i 8MHz. Dla tego ostatniego należy programatorem odczytać starszy bajt spod adresu 0x0003 – jest to fabrycznie zapisany bajt kalibracji dla rejestru OSCCAL, który niestety nie jest automatycznie przepisywany przy włączaniu zasilania (automat działa tylko dla zegara 1MHz). Następnie zapisujemy ten bajt w programie jako wartość stałej CALVAL i sprawdzamy, czy jest zachowana dokładność czasu metodą „na brzęczyka”, jak opisałem powyżej, ale stosując minimalny krok zmian = 1.


    (nieaktualne - program już jest) Jestem w trakcie przygotowywania specjalnego programu, dzięki któremu będzie można na komputerze łatwo podglądać pomiary w wygodnej postaci liczbowej, oraz zbierania danych do pliku wraz z rysowaniem wykresów czasowych. Jak czas mi pozwoli, to powinienem się niedługo z tym programem uporać – wyświetla już dane na sześciu „wirtualnych” wyświetlaczach (w jednym oknie programu), zostało mi tylko dopracować zbieranie danych i rysowanie wykresów. Udostępnię go jak tylko będzie gotowy.

    Mikrokontroler steruje bezpośrednio alfanumerycznym wyświetlaczem LCD 2x16 znaków, w trybie 4-bitowym. Na wyświetlaczu pokazywane jest 6 parametrów, w górnej linii: napięcie, prąd, temperatura radiatora; w dolnej linii: moc, pojemność, czas pomiaru. Z racji na ograniczone miejsce musiałem dolną linię nieco skompresować, tak, że między mocą, pojemnością i czasem nie ma odstępów, ale nie stwarza to problemu z czytelnością, jeśli się wie co tam ma być (a my już wiemy 8-)). Wygląda to na przykład tak:

    Aktywne obciążenie z pomiarem pojemności akumulatorów.


    W układzie występuje kilka potencjometrów. Montażowe służą do korekcji pomiarów napięcia i prądu oraz kontrastu wyświetlacza, a osiowe do nastawiania poziomu prądu obciążenia (zgrubny i dokładny), oraz do nastawy napięcia odcięcia przy pomiarach Ah.

    Zasilanie pochodzi od transformatora sieciowego o mocy < 3W i napięciu wtórnym 12V. Transformator pierwotnie nie znalazł się na żadnej płytce drukowanej, ponieważ wykorzystałem taki z uszami do montażu luzem w obudowie, a mostek z elektrolitem umieściłem na jego wyprowadzeniach „na pająka”. Jednak ostatnio płytki nieco przeprojektowałem i trafo oraz mostek znajdują się na płytce z procesorem. Standartowy stabilizator scalony w wersji SMD dostarcza napięcie 5V do zasilania całego układu, natomiast stabilizator 9V w obudowie TO-92 dla wzmacniacza operacyjnego byłem zmuszony dolutować na pająka od strony ścieżek, ponieważ o nim zapomniałem rysując płytkę 8-(. Napięcia są blokowane kilkoma kondensatorami elektrolitycznymi oraz ceramicznymi.

    Budowa.

    Układ elektroniczny został podzielony na dwie płytki drukowane: płytkę procesora z układami współpracującymi, oraz płytkę wykonawczą obciążenia z tranzystorem i rezystorami mocy. Zaprojektowane są tak, że można je podzielić na dwie, lub zostawić jako jedną większą płytkę. W przypadku rozdzielenia, płytki łączy się za pomocą krótkich odcinków przewodów, najlepiej linek, i umieszcza w posiadanej obudowie tak aby znajdowały się złączami możliwie blisko siebie (jak najkrótsze przewody łączące). Tranzystor mocy przymocowany jest do odpowiednio dużego radiatora z wentylatorem. Jeżeli radiator będzie oddzielony od metalowej obudowy, lub obudowa od masy, to można nie stosować podkładki izolacyjnej pod tranzystor, w przeciwnym wypadku jest ona niezbędna, ponieważ radiator jest na potencjale dodatnim badanego źródła (względem masy układu). Radiator można, a nawet należy przymocować do płytki z tranzystorem, żeby ten nie stracił swoich odnóży od ew. przeciążeń mechanicznych. W wersji prezentowanej układu płytki pozostały nierozdzielone i występują jako jedna; wykonałem ją metodą „żelazkową”, wraz dodatkową górną warstwą opisową. Płytka spoczywa na dnie obudowy na czterech plastykowych, gwintowanych tulejkach dystansowych, z radiatorem skierowanym w stronę wentylatora, który został odwrócony i wdmuchuje powietrze z zewnątrz na radiator. Dzięki temu jest on chłodzony skuteczniej niż gdyby wentylator wyciągał ciepłe powietrze z okolic radiatora. (tak też działa chłodzenie procesorów w komputerach)

    Całość układu została zamknięta w typowej metalowej obudowie od zasilacza komputerowego. Na jednej ze ścianek został zamocowany panel frontowy z wyciętym otworem dla wyświetlacza. Oprócz wyświetlacza znalazły się tu również gniazda bananowe do podpinania badanego źródła oraz potencjometry regulacji. Dzięki temu, że jest to obudowa po zasilaczu z kompa, mam w niej już gniazdko na dopinany kabel zasilający.

    W trakcie pierwszych dni pracy pierwszego układu prototypowego (dawno, dawno temu, za górami… 8-) okazało się, że niezbędne jest zastosowanie i eksperymentalne dobranie kondensatorów blokujących, umieszczonych jak najbliżej nóżek tranzystora, pomiędzy bramką a źródłem oraz drenem a źródłem. W pewnych okolicznościach pod obciążeniem występowało wzbudzanie różnych częstotliwości w dziesiątkach kHz na tranzystorze i jego nagrzewanie, nawet pomimo przekręcenia potencjometrów na minimum. Kondensatory mogą mieć wartości od kilkudziesięciu pF do kilku nF (u mnie to jest 1nF i 2,2nF). Widnieją na bieżącym schemacie, chociaż na pierwotnym ich nie było. Ktoś zaraz mnie objedzie, że zwiększając pojemność bramki (i tak już sporą w zastosowanym tranzystorze) pogarszam szybkość odpowiedzi regulacji prądu obciążenia, że potrzebny jest driver na dodatkowych tranzystorach do przeładowywania takiej pojemności. Ale w tym przypadku nie ma to znaczenia, bo przecież tranzystor nie pracuje impulsowo, w stylu włącz/wyłącz, nie trzeba przeładowywać pełnego napięcia sterującego bramki, tylko liniowo, gdzie zmiany napięcia sterującego na bramce są niewielkie. Bez tego zabiegu (dodatkowa pojemność na bramce) się nie obędzie, dzięki temu niejako spłaszczamy odpowiedź regulacji, niwelujemy tendencję do samowzbudzenia a szybkość reakcji regulacji jest wystarczająca.

    W najnowszej wersji układu zamiast bezpośredniego połączenia między rezystorem pomiarowym a wejściem (wejściami) wzmacniacza operacyjnego, pojawił się filtr RC, dzięki któremu kondensator blokujący między drenem i źródłem okazał się zbędny. Filtr ten bardzo skutecznie wyeliminował samowzbudzenie układu regulacji. Jedynym minusem może być znikome i powolne pływanie prądu obciążenia o +/- 0,01A. Ale za to można używać obciążenia z wysokimi prądami bez obawy o przester i zniszczenie z powodu wzbudzenia układu. Kondensator C10 tego filtru najlepiej dobrać doświadczalnie, spomiędzy wartości 4n7 do 47n, tak, aby wyeliminować wzbudzanie się, a jednocześnie nie wprowadzać zbyt długiego czasu reakcji układu regulacji, który może objawiać się powolnym pływaniem prądu obciążenia o wartości tym większe im większa jest pojemność C10.



    Edycja: 13-11-2021:

    "MAŁA" ERRATA!

    Dzięki niektórym Kolegom, postanowiłem dopisać małą "wkładkę" w poprawką i wyjaśnieniem...

    Uwaga będzie pomocna szczególne ewentualnym użytkownikom budującym niniejszy układ i mającym kłopoty z uruchomieniem.

    Tworząc prototyp rysowałem płytkę drukowaną do schematu w nieco innym wydaniu niż wersja finalna pokazana w tym poście.
    M.in. na płytce PCB nie ma miejsca na stabilizator 9V (78L09), istniejący na schemacie.
    To oznacza, że na płytce wzmacniacz otrzymuje poprzez rezystor zasilane 5V, które jest nieco za niskie do w pełni poprawnej pracy wzmacniacza i tranzystora MOSFET. Ponieważ nie rysowałem nowej płytki pod nowy (bieżący) schemat (lenistwo 8-P), a później w ogóle o tym zapomniałem, to należy wprowadzić małą modyfikację na płytce PCB samemu. Można to spokojnie zrobić już po wytrawieniu płytki, przy montażu elementów.

    Modyfikacja polega na pominięciu rezystora zaznaczonego na załączonym zdjęciu na żółto (47R według opisu płytki, na schemacie go nie ma), oraz dolutowaniu stabilizatorka 9V "na pająka" do określonych punktów na płytce, zgodnie z oznaczeniem na zdjęciu. Stabilizatorek w obudowie TO-92 jest na tyle mały, że można go spokojnie zmieścić na spodzie płytki od strony ścieżek.

    Aktywne obciążenie z pomiarem pojemności akumulatorów.

    Jeszcze na co chciałbym zwrócić uwagę, to to, że niektórzy (większość?) mogą mieć kłopot z poprawną kalibracją wewnętrznego zegara procesorka według mojej instrukcji, jeżeli dysponują tylko programatorem szeregowym z ISP (np STK500).
    Z racji tego, że wszystkie końcówki procesorka, włącznie z RESET-em, są wykorzystane, to nie ma możliwości jego szeregowego programowania niskonapięciowego! Po pierwszym zaprogramowaniu fusów (o których wcześniej też zapomniałem napisać..., ale zaraz to uzupełnię) zgodnie z wymaganiami, kolejne programowania będą niemożliwe (wyłączenie funkcji pinu RESET).
    Pozostaje tylko programowanie równoległe w programatorze "stacjonarnym" z wykorzystaniem wysokiego napięcia programowania.

    Co do fusów, to uzupełniam tą informację. Fusebity w ATtiny26 powinny być wypalone tak:

    FUSE HIGH BYTE = 0xE9
    BIT7=1
    BIT6=1
    BIT5=1
    RSTDISBL=0 --> wyłączamy funkcję pinu Reset,
    SPIEN=1 --> wyłączamy programowanie przez spi (i tak nie da się wykorzystać),
    EESAVE=0 --> włączamy ochronę pamięci eeprom przy kasowaniu/programowaniu,
    BODLEVEL=0 --> ustawiamy poziom napięcia dla funkcji BOD = 4V,
    BODEN=1 --> wyłączamy funkcję BOD (albo włączamy, jeśli chcemy 8-)),


    FUSE LOW BYTE = 0xE4
    PLLCK=1 --> wyłączamy opcję PLL zegara,
    CKOPT=1 --> wyłączamy opcję zbędną dla zegara wewnętrznego,
    SUT1=1 --
    SUT0=0 --> wybieramy najdłuższy czas StartUp = 65ms,
    CKSEL3=0 --
    CKSEL2=1 ---
    CKSEL1=0 ----
    CKSEL0=0 ----> wybieramy źródło zegara na wewnętrzny oscylator RC na częstotliwośi 8MHz.


    Jeszcze mogę dorzucić najnowszą wersję softu (1.7) do procka, w której doszły małe kosmetyczne poprawki:
    1- miganie dwukropkiem podczas odliczania czasu przy pomiarze Ah,
    2- miganie jednostką "V" po obniżeniu mierzonego napięcia poniżej progu rozładowania aku (oprócz bipania),
    3- odłączanie obciążenia po przekroczeniu temperatury radiatora 60°C i ponowne załączenie po ostudzeniu do 40°C, jednocześnie miganie w tym czasie na zmianę jednoską "°C" i wykrzyknikiem,
    4- liczenie Ah już od poboru prądu 30mA (wcześniej 50mA),
    5- przyspieszenie zliczania Ah do 5x/sek (wcześniej 1x/sek)).
    6- być może coś jeszcze, nie pamiętam... 8-D

    Procek był zapisany po korek, ale ściskając co nieco w kodzie, udało się powyższe rzeczy zaimplementować. Teraz jest naprawdę zapisany po korek! 8-)
    Jeżeli ktoś zuważy babola w działaniu nowego softu, to proszę o informację (na tą chwilę, od dwóch m-cy sam niczego złego nie uświadczyłem)

    To by było na tyle w tej erracie.
    Jakby coś, ktoś, gdzieś jeszcze dojrzał, to niech da znać...

    P.S.
    Przymierzam się do upgrade'u projektu na układ Mega328 (lub inny Mega), graficzny LCD, zapis na kartę SD i regulację softem za pomocą enkodera z przyciskiem... Tylko ten bak czasu...


    Koniec edycji.
    13-11-2021





    PROGRAM DO AKWIZYCJI DANYCH

    Jest już gotowy (tak myślę) prosty program do wizualizacji pomiarów na ekranie komputera. Można w nim oglądać na żywo i w większym formacie te same odczyty, które widnieją na wyświetlaczu, ale przede wszystkim przeglądać zbierane pomiary w postaci wykresów 5-ciu mierzonych wartości. Dane można przeglądać również w postaci tabelarycznej. Dane zbierane są i zapisywane do plików, które można w dowolnym momencie w przyszłości odczytać, aby ponownie obejrzeć wykresy. Można również eksportować dane do pliku tekstowego z danymi oddzielonymi tabulacją, tak, żeby dało się je wczytać np. do MS Excel’a i tam dalej obrabiać. W programie jest kilka podstawowych ustawień, wpływających na rysowanie wykresów oraz ustawienia wyzwalania zbierania danych, które pomagają nieco zautomatyzować rozpoczęcie i zakończenie akwizycji. Poza tym jest prosty terminal, na którym można podejrzeć transmisję „na żywo”.

    Oczywiście aby połączenie programu ze sprzętem doszło do skutku, należy wybrać nr portu COM, który jest przypisany do używanego przez nas konwertera USB<->COM (reszty ustawień transmisji portu COM nie trzeba zmieniać, bo są ustawione domyślnie wg wymagań aktywnego obciążenia, ale dla zasady ustawienia te są udostępnione w programie).
    Program działa na pewno pod Win 10 x64 oraz XPekiem i prawdopodobnie będzie też działał też pod 7-ką.

    Krótki opis działania programu

    Podstawowym trybem akwizycji jest uruchamianie i zatrzymywanie jej ręcznie na żądanie. Aby uruchomić, należy na zakładce „Wykresy” nacisnąć pierwszy od góry przycisk „Uruchom zapis” (dwa następne są nieaktywne). Informacja nad wykresami (obok zakładek) zmieni się z „Zapis: zatrzymany” na „Zapis: uruchomiony”, a dwa przyciski do pauzowania i zatrzymywania akwizycji aktywują się. Akwizycja będzie trwała do momentu aż ją sami zatrzymamy, lub do wystąpienia sygnału zakończenia rozładowania, o ile będzie zaznaczona opcja „Sygnał końca rozładowania wyłącza zapis” na zakładce ustawień. Każde uruchomienie zapisu danych tworzy nowy plik z nazwą generowaną na podstawie tytułu sesji z zakładki „Dane” oraz bieżącej daty i czasu, we wskazanym przez nas katalogu na zakładce ustawień. Akwizycję można chwilowo wstrzymać (spauzować), aby potem ją ponownie uruchomić i kontynuować bez tworzenia nowego pliku. W zależności od wybranej opcji na zakładce ustawień, po uruchomieniu akwizycji (np. po całkowitym zatrzymaniu wcześniejszej akwizycji) dane można również zbierać do pliku z poprzedniej sesji, bez tworzenia nowego pliku.

    Rozpoczęcie akwizycji danych może też rozpocząć się samoczynnie po wystąpieniu wybranego stanu w odbieranych danych, według jednej z pozostałych opcji „Wyzwalanie zapisu danych” na zakładce „Ustawienia”. Mimo wszystko aby móc włączyć automatyczną akwizycję, należy nacisnąć przycisk „Uruchom zapis”, dzięki czemu program wejdzie dopiero w tryb automatyczny. Informacja zmieni się z „Zapis: zatrzymany” na „Zapis: oczekuje”, a program będzie oczekiwał z rozpoczęciem akwizycji na wystąpienie wybranego stanu. Po wykryciu sygnału wyzwalającego akwizycja rozpocznie się, a informacja zmieni się na „Zapis: uruchomiony”. Poza tym, obowiązuje to samo co przy opisie trybu ręcznego.

    Tytuł sesji najlepiej jest wpisać przed rozpoczęciem akwizycji, aby program wygenerował odpowiednią nazwę pliku z danymi. Aby wpisać tytuł sesji, należy go kliknąć 2x, co uruchomi edycję, a na zakończenie nacisnąć <enter> lub kliknąć na pasku obok pola edycyjnego. Po ewentualnym wczytaniu archiwalnej sesji z pliku, tytuł sesji wczyta się na podstawie zawartości pliku danych nie ignorując nazwę pliku (która może być zmieniona).

    Wykresy (fragment widoczny w oknie) można zapisywać do plików graficznych w formacie .jpg lub .bmp, natomiast tabelkę z zakładki „Dane” można eksportować do pliku tekstowego z danymi rozdzielonymi tabulacją.

    Zdaję sobie sprawę, że program ma pewnie kilka niedociągnięć i innych potknięć, ale ostatnio nie miałem czasu na dogłębne sprawdzenie wszystkiego, dla tego, jeżeli coś niedziałającego lub niepokojącego szanowni koledzy zauważą, to proszę o wytknięcie tego, i w miarę rzeczowe opisanie w jakich warunkach to coś wystąpiło. Z góry dzięki.


    Jako, że trzymanie włączonego komputera (laptopa) przez dłuższy czas z podpiętym aktywnym obciążeniem np. w celu zbierania danych w trakcie rozładowania akumulatorów, nie jest zbyt ekonomiczne (np. 20 godzin), to w przyszłości planuję przesiadkę na Tiny461/861 oraz wykorzystanie szeregowej pamięci Flash o pojemności kilku/nastu Mbit. Dzięki temu można będzie zbierać dane w układzie, aby potem szybko przesłać zebrane pomiary do komputera jednym rzutem. Pierwszy krok, czyli przeportowanie kodu na Tiny461 zajęło tylko chwilkę…


    KONIEC

    Zastosowanie zaprezentowanego tutaj aktywnego obciążenia w prostych pomiarach różnych źródeł prądu pozwala rzucić nieco światła na ich stan, m.in. wydajność i stabilność, a ponadto w pomiarach porównawczych akumulatorów dobrać kilka sztuk o zbliżonych pojemnościach, lub po prostu zmierzyć pojemność aku z samochodu. Dodatkowo możliwość komunikacji z komputerem pozwala nam na zbieranie danych do pliku(ów) i przeglądanie w postaci wykresów na żywo lub z zapisów archiwalnych (prace nad programem na komputer trwają).

    Zwracam uwagę na to, że należy zachować odpowiednią „odwrotno-proporcjonalność” przy obciążaniu źródeł jeśli chodzi o nastawę prądu w stosunku do przyłożonego napięcia: im większe napięcie badanego źródła, tym mniejszy prąd dopuszczalny (bezpieczny) można nastawiać. Można też powiedzieć, że iloczyn prądu i napięcia nie może przekroczyć pewnej wartości. W przeciwnym przypadku tranzystor obciążenia szybko ulegnie uszkodzeniu wychodząc poza charakterystykę SOA. Trzeba to sprawdzić dla posiadanego tranzystora i odpowiednio się do tego dostosować.

    Trudno powiedzieć ile może kosztować zbudowanie tego układu aktywnego obciążenia ponieważ niemal w całości powstał z elementów z odzysku, ale można się pokusić o zgrubsze oszacowanie: trafo ~12zł, procek ~10zł, tranzystor 5-20zł, wyświetlacz 15-17zł, reszta drobiazgów 10-20zł, co razem daje ~80zł. Obudowa ze starego zasilacza komputerowego a radiator od starego procesora.

    Zamieszczam kilka zdjęć układu, schemat i rysunki płytek oraz wsad do procka (z poprawionym wyświetlaniem czasu w drugiej linii – dodany dwukropek między godzinami i minutami), i, a niech tam, kod źródłowy w asemblerze (zastrzegam, tylko do użytku prywatnego). Jeśli komuś będzie bardzo zależało na wyjaśnieniu działania jakiegoś fragmentu programu, to postaram się takowy fragment zamieścić w poście i opisać. Rysunek płytek jest w formacie plików .pcb ze starego dziadka Traxmaker’a; nie wiem w czym nowszym da się toto otworzyć, ale przynajmniej w Protelach chyba powinno. Jakby co, dołączam też rysunki w PDF.

    W razie niejasności i pytań, postaram się odpowiadać w miarę możliwości i swojej skromnej wiedzy.

    Dziękuję za uwagę (jeśli dobrnęliście aż tutaj 8-).
    Pozdrawiam!
    Sly8-)

    Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów.
    Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów.

    Cool? Ranking DIY
    About Author
    Sly8-)
    Level 11  
    Offline 
    Has specialization in: komputery, mikrokontrolery
    Sly8-) wrote 31 posts with rating 54. Live in city Kołobrzeg. Been with us since 2007 year.
  • Computer Controls
  • Computer Controls
  • #4
    trol.six
    Level 31  
    Sly8-) wrote:
    W pewnych okolicznościach pod obciążeniem występowało wzbudzanie różnych częstotliwości w dziesiątkach kHz na tranzystorze i jego nagrzewanie, nawet pomimo przekręcenia potencjometrów na minimum.
    Sly8-) wrote:
    Tranzystor sterowany jest bezpośrednio przez popularny podwójny wzmacniacz operacyjny LM358, zasilany pojedynczym napięciem 9V

    LM358 jest słaby do szybkiego sterowania mosfetami o dużej pojemności, wraz z jego dużym wzmocnieniem powoduje oscylacje. Możesz też spróbować ograniczyć wzmocnienie (wraz z R8) dając rezystor w sprzężeniu równolegle do C12. Ograniczenie wzmocnienia da uchyb zależny od prądu ale może będzie stabilniej.
  • #5
    LChucki
    Level 31  
    Sly8-) wrote:
    wyświetlaczem LCD 2x16 znaków,
    Sly8-) wrote:
    musiałem dolną linię nieco skompresować, tak, że między pojemnością a czasem nie ma przerwy, a czas nie ma dwukropka między godzinami i minutami, ale nie stwarza to problemu z czytelnością,

    Dla mnie rozwiązanie nieakceptowalne. Wystarczyło użyć LCD 2x20znaków albo graficznego. Preferuje graficzne bo tam łatwiej wygospodarować miejsce np używając czcionki proporcjonalnej. Niestety o uC z małą ilością RAM można raczej zapomnieć.

    Wkręty psuja ładnie wykonany panel czołowy.
    Regulacja zgrubna/dokładna. Takie rozwiązania nie podobają mi się. To co prawda nie zasilacz, gdzie błąd może być drogi ale skoro uC to dlaczego nie ma regulacji z uC? Oczywiście nie pchełki Tiny26. Pisałeś, że masz dużo Tiny26 więc na siłę próbujesz znaleźć dla nich zastosowanie? Zrozumiałbym jakbyś miał ich na dużą kwotę ale nie sądzę, że masz ich 10'000szt.
  • #6
    Maciej Strojewski
    Level 11  
    Witam,

    Czy kolega przewidział w konstrukcji ustawianie czasów narastania/opdania impulów obciążenia oraz ustawiana cykliczmności/powtarzalności impulsów w postaci przebiegów?

    A w ogóle to fajne rozwiązanie, zdecydowanie fajniejsze niż prezentowane ostatnio w znanym periodyku dla elektroników.
  • #7
    Smołki
    Level 13  
    Oscylacje powstają najprawdopodobniej przez kondensator C10, zmniejsz jego wartość, lub najlepiej usuń, powinno się sporo poprawić. Jeśli usuniesz C10 to C11 też może okazać się zbędny. C12 zostaw, on poprawia stabilność układu.
  • #8
    Sly8-)
    Level 11  
    Przepraszam, że odpowiem hurtem.

    rs6000 wrote:
    Bardzo fajny i baaaardzo dokładnie opisany, gratki, zasłużone punkty poleciały.

    LA72 wrote:
    Całkiem nieźle to wyszło.
    Dodatkowy atut to program w assemblerze

    Maciej Strojewski wrote:
    A w ogóle to fajne rozwiązanie, zdecydowanie fajniejsze niż prezentowane ostatnio w znanym periodyku dla elektroników.


    Dziękuję za miłe słowa, jest to bardzo podnoszące na duchu, zwłaszcza tuż po publikacji projektu.

    trol.six wrote:
    LM358 jest słaby do szybkiego sterowania mosfetami o dużej pojemności, wraz z jego dużym wzmocnieniem powoduje oscylacje.


    Prawdopodobnie masz rację, ale w tym wypadku nie ma potrzeby przeładowywać pełnej pojemności bramki, bo mosfet nie działa tu impulsowo. Taki eLeMek daje spokojnie radę z doładowywaniem/rozładowywaniem pojemności bramki o niewielkie wartości napięcia zmieniającego się liniowo w tym zastosowaniu.

    trol.six wrote:
    Możesz też spróbować ograniczyć wzmocnienie (wraz z R8) dając rezystor w sprzężeniu równolegle do C12.


    Dziękuję za podpowiedź. Nie omieszkam spróbować tej rady w najbliższej przyszłości, dla samego sprawdzenia jak się to będzie zachowywać. Dam znać...

    LChucki wrote:
    Dla mnie rozwiązanie nieakceptowalne. Wystarczyło użyć LCD 2x20znaków albo graficznego. Preferuje graficzne bo tam łatwiej wygospodarować miejsce np używając czcionki proporcjonalnej. Niestety o uC z małą ilością RAM można raczej zapomnieć.


    Co kto lubi. Mnie to nie przeszkadza ("kompresja" na wyświetlaczu). Owszem, można było użyć dłuższego wyświetlacza, ale użyłem akurat taki jaki miałem. Nie ma przeciwwskazań, aby ktoś podpiął LCD 2x20, w programie właściwie nic się nie zmieni, poza korektą wyświetlania informacji, co można zrobić "od ręki".
    Tak, też wykorzystuję wyświetlacze graficzne tam, gdzie ma to uzasadnienie konstrukcyjne, finansowe i nie tworzy przerostu formy nad treścią, ale tutaj? Przypominam (chyba nadmieniłem w poście), że pierwotnie ta 26'ka obsługiwała tylko pomiary napięcia i prądu, cała reszta funkcji dopisywana była sukcesywnie w czasie, bez potrzeby znaczącej zmiany pierwotnego projektu. Dla tego dopóki mała Tina dawała radę (nadal daje), dopóty jej nie zmieniałem. Być może, myśląc o rozbudowie funkcjonalnej, kiedyś zamienię ją na którąś małą Megę. Nie wykluczone.

    LChucki wrote:
    Wkręty psuja ładnie wykonany panel czołowy.
    Regulacja zgrubna/dokładna. Takie rozwiązania nie podobają mi się. To co prawda nie zasilacz, gdzie błąd może być drogi ale skoro uC to dlaczego nie ma regulacji z uC? Oczywiście nie pchełki Tiny26. Pisałeś, że masz dużo Tiny26 więc na siłę próbujesz znaleźć dla nich zastosowanie? Zrozumiałbym jakbyś miał ich na dużą kwotę ale nie sądzę, że masz ich 10'000szt.


    A co złego jest w regulacji zgrubnej i dokładnej? Że trzeba machać dwoma potencjometrami?
    Regulacja z uC jest oczywiście "fajną" rzeczą, ale trzeba mieć, jak zauważyłeś nieco zasobniejszy w piny uC, a to wiąże się już z zaprojektowaniem nowego układu oraz niewielkim przeportowaniu programu. Może w przyszłości...

    Niestety, ale nie kojarzę, żebym pisał, że mam dużo 26'tek i dla tego na siłę ich tu używam? Aż pokusiłem się na powtórne przeczytanie swojego postu, ale nic takiego nie znalazłem. 8-) Możesz mi to wskazać?
    Ale nawet jeśli bym tak napisał, to co w tym złego, żeby tworzyć projekty skrojone na miarę tej Tiny?

    Maciej Strojewski wrote:
    czy kolega przewidział w konstrukcji ustawianie czasów narastania/opdania impulów obciążenia oraz ustawiana cykliczmności/powtarzalności impulsów w postaci przebiegów?


    Jeśli dobrze to pytanie zrozumiałem, to chodzi Ci o możliwość impulsowego obciążania badanych źródeł prądu? Prawdę powiedziawszy, zupełnie o tym nie pomyślałem. Elektrycznie projekt byłby do tego zdolny, bo jest już funkcja odłączająca obciążenie (prz pomiarze pojemności aku), ale programowo nie damy rady, bo zostało kilka bajtów wolnego miejsca we flash'u. Jednak nie ma się co załamywać, tylko trzeba przeprojektować układ na większego procka. Trzeba też już wtedy wzmocnić układ sterowania mosfeta, żeby rzeczywiście można było szybko go przełączać.

    A teraz uwaga!
    Właśnie zrobiłem mały "research" i... W projekcie bez żadnych przeróbek elektrycznych można będzie użyć większej koleżanki - Tiny461 (4kB), lub nawet Tiny861 (8kB). Oj, niedługo ruszą prace modernizacyjno/usprawniające! 8-)


    Smołki wrote:
    Oscylacje powstają najprawdopodobniej przez kondensator C10, zmniejsz jego wartość, lub najlepiej usuń, powinno się sporo poprawić. Jeśli usuniesz C10 to C11 też może okazać się zbędny. C12 zostaw, on poprawia stabilność układu.


    No, ciekawa koncepcja to jest. Ale te kondensatory tam są (zwłaszcza C10 + R9), ponieważ gdy ich nie było, miałem generator 80-kilku kHz przy większych obciążeniach. Najpierw (pierwsze prototypy w odległej przeszłości) dodałem kondensatory przy samym tranzystorze (bramka-źródło C11 i dren-źródło - aktualnie brak), które pomagały częściowo (czyt. nie we wszystkich przypadkach źródeł prądu i nastawach obciążenia).
    W ostatniej wersji dołożyłem R9 i C10 jako filtr RC w sprzężeniu zwrotnym, z eksperymentalnie dobieranym C10, i dopiero to rozwiązanie całkowicie "uśmierzyło ból", na tyle, że pożegnałem się z kondensatorem między drenem a źródłem.
    Przepraszam, ale nie chciałbym za dużo polemizować akurat o tym fragmencie, bo działa wyśmienicie i nie ma potrzeby go ruszać. 8-)


    Dziękuję wszystkim zabierającym głos w moim poście, Wszystkie uwagi są cenne i mile widziane.
    Pozdrawiam!
  • #9
    trol.six
    Level 31  
    Sly8-) wrote:
    Prawdopodobnie masz rację, ale w tym wypadku nie ma potrzeby przeładowywać pełnej pojemności bramki, bo mosfet nie działa tu impulsowo.

    Nikt nie pisze o przeładowaniu, ani działaniu impulsowym, tak czy siak, cała pojemność obciąża wyjście wzmacniacza i jako taka bierze udział w powstawaniu oscylacji, choć niekoniecznie bezpośrednio, dużą role odgrywa m. in. właśnie wzmocnienie wzmacniacza. I ja też mosfety do LM358 podłaczam. ;)
  • #10
    Smołki
    Level 13  
    Ciekaw jestem tego programu na PC, w swoim obciążeniu też zrobiłem transmisje (z dokładnie takimi samymi ustawieniami) tylko z możliwością wyboru po stronie obciążenia interwału 1 s/60 s, połączenie z PC za pomocą bluetooth (HC05). Aktualnie używam CoolTermWin do zapisu danych, następnie eksportuję do exela. W planach miałem zrobienie takiego programu, jednak mam za małe doświadczenie w tej dziedzinie, a brak czasu utrudnia zgłębienie wystarczającej wiedzy, więc na dzień dzisiejszy zostało w tej formie.
  • #11
    Sly8-)
    Level 11  
    Smołki wrote:
    Ciekaw jestem tego programu na PC, w swoim obciążeniu też zrobiłem transmisje (z dokładnie takimi samymi ustawieniami) tylko z możliwością wyboru po stronie obciążenia interwału 1 s/60 s, połączenie z PC za pomocą bluetooth (HC05). Aktualnie używam CoolTermWin do zapisu danych, następnie eksportuję do exela. W planach miałem zrobienie takiego programu, jednak mam za małe doświadczenie w tej dziedzinie, a brak czasu utrudnia zgłębienie wystarczającej wiedzy, więc na dzień dzisiejszy zostało w tej formie.


    Każde rozwiązanie spełniające swoje zadanie i podnoszące funkcjonalność jest godne wykorzystania, zwłaszcza BT. Jeśli jest ku temu zapotrzebowanie od samego początku projektowania układu, to jak najbardziej. Ja nawet nie myślałem o łączeniu swojego układu z PC, bo na początku nie było nawet takiej potrzeby, i cieszę się, że udało mi się zmieścić w ostatnim czasie chociaż uproszczoną (jednokierunkową) komunikację po RS'ie dysponując tak małą ilością miejsca w uC. Zmiana w moim przypadku na BT nie będzie możliwa z powodu braku miejsca w pamięci na obsługę tegoż; dopóki nie spróbuję "powiększyć" uC (może od razu na Tiny861).
    Na terminalu w komputerze odczyty lecą "na żywo", z tą samą częstością z jaką są wykonywane pomiary i wyświetlanie na LCD, czyli 5x/sek.. Mój program na PC odbiera dane w tym samym tempie, ale dopiero po wybraniu odpowiednich ustawień przez użytkownika, można dokonywać akwizycji danych z dowolnym innym okresem (od 1 do 3600 sekund) . Program jest nieco rozbudowany jeśli chodzi o zbieranie danych / rysowanie wykresów. Prace nad programem trwają, jeszcze trochę, proszę uzbroić się w cierpliwość. Brak czasu jest tu słowem kluczem... 8-)
  • #13
    nanab
    Level 27  
    Sly8-) wrote:
    Z racji na ograniczone miejsce musiałem dolną linię nieco skompresować, tak, że między pojemnością a czasem nie ma przerwy, a czas nie ma dwukropka między godzinami i minutami, ale nie stwarza to problemu z czytelnością, jeśli się wie co tam ma być (a my już wiemy ). Wygląda to na przykład tak:

    A nie prościej było wywalić spację między mocą i energią? Wtedy dwukropek by się zmieścił, a czytelność by się poprawiła.
  • #14
    Smołki
    Level 13  
    Sly8-) wrote:
    Zmiana w moim przypadku na BT nie będzie możliwa z powodu braku miejsca w pamięci na obsługę tegoż; dopóki nie spróbuję "powiększyć" uC (może od razu na Tiny861).


    Właśnie w tych modułach dobre jest to, że w kodzie nie trzeba nic zmieniać podpinasz zamiast kabla parujesz z PC i działa. Jedynie trzeba dopasować poziom napięcia lini danych bo w HC05 wynosi on 3,3 V, dla transmisji jednokierunkowej wystarczy prosty dzielnik napięcia.
  • #15
    Sly8-)
    Level 11  
    nanab wrote:
    A nie prościej było wywalić spację między mocą i energią? Wtedy dwukropek by się zmieścił, a czytelność by się poprawiła.


    Chyba miało być "... mocą i pojemnością?" 8-)
    Może i tak by było lepiej! Jak to dobrze kiedy ktoś świeżym okiem z boku spojrzy. Rzeczywiście nie zakłóci to wiele w czytelności zapisu mocy i pojemności, zwłaszcza dopóki pojemność nie osiągnie wartości ponad 9.99Ah (do tego momentu są tam nawet dwie spacje), a przynajmniej zapis czasu będzie wizualnie lepiej odbierany. Wyświetlanie czasu doszło jako ostatnie, dlatego wcisnąłem je tam trochę po macoszemu... Poprawka w programie zajmie chwilkę (ale niestety dopiero w wolnej chwili 8-)).

    Smołki wrote:
    Właśnie w tych modułach dobre jest to, że w kodzie nie trzeba nic zmieniać podpinasz zamiast kabla parujesz z PC i działa.


    Wydawało mi się, po pobieżnym przeglądnięciu dokumentacji od tego modułu BT, że trzeba go wstępnie jakoś skonfigurować (np. baudrate), a do tego brakowało by już miejsca w pamięci programu (chyba żeby zamienić uC na Tiny461/861). Jeśli jest tak jak piszesz, że nic nie trzeba robić i od razu działa "jak po kablu", to dla mnie bomba. Można podpiąć z prostą translacją poziomów do aktualnego wyjścia Tx z programowego USART'u - polecam spróbować kto chce i może (ja chwilowo nie posiadam żadnych modułów BT).

    Dziękuję wszystkim za ciekawe spostrzeżenia i uwagi. Pozdrawiam!

    P.S.
    Jestem coraz bliżej zaprezentowania mojego programu do prezentacji pomiarów na PeCecie. Mam nadzieję, że spełni oczekiwania, a jeżeli nie, to dacie znać co poprawić/dodać/ująć. 8-)
  • #16
    nanab
    Level 27  
    Spacja nie jest specjalnie potrzebna kiedy cyfry są rozdzielone literą, zmieści się wynik do 99,99Ah i 99,9W, a po przekroczeniu tej wartości można usunąć jedną cyfrę po przecinku :)
  • #17
    LChucki
    Level 31  
    nanab wrote:
    a po przekroczeniu tej wartości można usunąć jedną cyfrę po przecinku

    Co jest rozsądne, bo ADC w AVR nie grzeszy dokładnością.
  • #18
    cooltygrysek
    Conditionally unlocked
    Ave. Ja mam małą uwagę. Niech kolega wywali te dwa rezystory pomiarowe i wstawi mostek z jakiegoś taniego miernika cyfrowego, o niebo lepsze będą wskazania gdyż z doświadczenia wiem że na tych rezystorach mocy wskazania podczas przepływu prądu o dużej wartości ulegną znacznemu zakłamaniu spowodowanego wzrostem temperatury a wiec i zmianą ich rezystancji. Jeszcze lepszym rozwiązaniem było by zastosowanie precyzyjnego przekładnika prądowego ale wiem ze ich cena niektórych powala. Jeszcze lepszym rozwiązaniem zwłaszcza w pracy impulsowej było by zastosowanie przekładnika prądowego LEM opartego na czujniku Hala. Pewnie gromy polecą że to przerost formy nad treścią, ale skoro już kolega zbudował fajne obciażenie to warto było pomyśleć o takich modyfikacjach. Tak samo warto pomyśleć nad wyeliminowaniem potencjometrów co przy procesorze wydaje się archaizmem.
  • #19
    Sly8-)
    Level 11  
    cooltygrysek wrote:
    Pewnie gromy polecą że to przerost formy nad treścią, ale skoro już kolega zbudował fajne obciażenie to warto było pomyśleć o takich modyfikacjach. Tak samo warto pomyśleć nad wyeliminowaniem potencjometrów co przy procesorze wydaje się archaizmem.


    Nieee, dlaczego zaraz gromy?! 8-) Zarówno forma jak i treść są ważne, jeżeli spełniają wymagane (!) założenia. Tutaj wielkich wymagań nie miałem co do podstawowej funkcji pełnionej przez aktywne obciążenie. Po prostu, najpierw miało to być "gołe" aktywne obciążenie. Myślałem jedynie o dołożeniu jakiegoś uniwersalnego układu pomiarowego do wskazań prądu i napięcia - mogłem dołożyć coś sztampowego na dwóch "ajsielkach", albo wykorzystać do pomiarów "elastyczny" uC, co też uczyniłem. Inaczej mówiąc, procek posłużył tu pierwotnie jedynie jako "miernik uniwersalny" i nie partycypował nijak w działaniu układu obciążenia jako takiego. Dopiero po kilku latach (powstanie projektu to 2010-2011) pomyślałem o "rozciągnięciu" możliwości układu do stanu aktualnego, czyli pomiar pojemności akumulatorów, ingerencja w proces rozładowania (zatrzymywanie), komunikacja z komputerem po eReSie, pomiar temperatury radiatora i sterowanie wentylatorem. Wszystko to "dorabiałem" jeszcze w miarę możliwości na starej płytce prototypu (finalnie na potrzeby niniejszej publikacji powstała nowa płytka). Dla tego też, nie ma w projekcie sterowania przyciskami ani rozbudowanych układów pomiarowych prądu, czy innych pomysłów, które pewnie by się przydały w tego typu układzie aktywnego obciążenia. Najzwyczajniej w świecie trzeba będzie zaprojektować nowy układ z podsuniętymi tutaj pomysłami, bazując na rozwiązaniach z niniejszego. Ale to już na inne czasy...

    P.S. 1
    Potwierdzam, że przyciski do regulacji nastaw to pewnie elegancka sprawa przy procesorze, ale chyba nie pozwolą na tak szybkie zmiany nastaw w reakcji np. na nieprzewidziane sytuacje, jak potencjometry - jeden/dwa "machy" i sytuacja opanowana, a przy przyciskach? Naciskasz i czekasz, albo wypinasz kable żeby nie zniszczyć obciążenia lub źródła... Pewnym wyjściem jest enkoder obrotowy.

    P.S. 2
    Myślę nad dołożeniem szeregowej pamięci Flash/EEPROM o pojemności kilku Mbit na zapisywanie danych z pomiaru pojemności, którą można będzie sczytywać do komputera w celu wizualizacji. Chyba nawet brak wolnych wyprowadzeń uC nie będzie problemem, byle by wymienić go na typ o większej pamięci programu (tiny461/861).

    P.S. 3
    Prace nad programem komputerowym do wizualizacji pomiarów i zbierania danych dobiegają końca, trwa testowanie działania, stabilności i funkcjonalności tak, żeby było jak najmniej problemów z jego używaniem. Trochę to trwa, bo robię to w wolnych chwilach. Raczej i tak wszystkiego sam nie będę w stanie wychwycić, ale mniemam, że Koledzy dadzą znać jeśli coś będzie nie tak... 8-)
  • #20
    cooltygrysek
    Conditionally unlocked
    Sly8-) wrote:
    Pewnym wyjściem jest enkoder obrotowy.


    Można a jeśli już to dobrej jakości. A co do przycisków, to rozwiązaniem jest programowe zwiększanie szybkości zmian wartości nastaw, poprzez przytrzymanie przycisku, bardzo wygodne i praktyczne.
  • #21
    janjjw
    Level 11  
    "...Dla mnie rozwiązanie nieakceptowalne. Wystarczyło użyć LCD 2x20znaków albo graficznego. Preferuje graficzne bo tam łatwiej wygospodarować miejsce np używając czcionki proporcjonalnej. Niestety o uC z małą ilością RAM można raczej zapomnieć..."

    Dla mnie rozwiązaniem nieakceptowalnym jest użycie wielkich oporników w źródle prądowym. Są setki,jeśli nie tysiące, wzmacniaczy czujnika prądowego. Na diabła stosować tak wielkie oporności. Spełniają one przede wszystkim rolę grzejnika. W dodatku przy zmianach temperatury zmienia się znacząco ich oporność, co wpływa niekorzystnie na pomiar.
  • #22
    cooltygrysek
    Conditionally unlocked
    janjjw wrote:
    Na diabła stosować tak wielkie oporności. Spełniają one przede wszystkim rolę grzejnika. W dodatku przy zmianach temperatury zmienia się znacząco ich oporność, co wpływa niekorzystnie na pomiar.


    Pisałem o tym wyżej.
  • #23
    rsv6
    Level 12  
    A jakby zastosować bezpiecznik na wyjściu o prądzie max obciążenia. Przed bezpiecznikiem zastosować diody prostownicze najlepiej szybkie pomiędzy plus a minus. Układ od razu staje się idiotoodporny. Zrobiłem coś takiego przy własnym zasilaczu warsztatowym i zabezpiecza tranzystory przed spaleniem. Jeżeli będziesz robił przy akumulatorach rowerowych w których są rożnie podłączone akumulatory prędzej czy później się pomylisz.
  • #24
    Sly8-)
    Level 11  
    rsv6 wrote:
    A jakby zastosować bezpiecznik na wyjściu o prądzie max obciążenia. Przed bezpiecznikiem zastosować diody prostownicze najlepiej szybkie pomiędzy plus a minus. Układ od razu staje się idiotoodporny.


    Zgadza się, niedawno sam o tym zabezpieczeniu pomyślałem, ale z braku czasu i z powodu innych zajęć wyleciało mi z głowy, żeby o tym tutaj dopisać. 8-) Dzięki za przypomnienie!
    Rzeczywiście polecam każdemu realizującemu niniejszy projekt i jemu podobne, aby zabezpieczyli swoje układy tym prostym rozwiązaniem przed odwrotnym podłączeniem źródła prądu do aktywnego obciążenia. Oczywiście bezpiecznik powinien być montowany w gnieździe umożliwiającym jego wymianę z zewnątrz.
    Postaram się na weekend dokonać zmian w schemacie i dopisać o tym w głównym wątku...

    rsv6 wrote:
    Jeżeli będziesz robił przy akumulatorach rowerowych w których są rożnie podłączone akumulatory prędzej czy później się pomylisz.


    Jakbyś zgadł! 8-) No, może przy takich aku jeszcze nie "grzebałem", ale już miałem okazję pomylić się raz przy pojedynczych sztukach ogniw li-ion, na szczęście prąd był stosunkowo niewielki (~2,5A) i szybko zareagowałem rozłączając wtyki (o dziwo, nic się w tym czasie nie uszkodziło, ale licho nie śpi) - prąd płynął w kierunku "wstecznym" pomimo ustawienia potencjometrów na zero!

    janjjw wrote:
    Są setki,jeśli nie tysiące, wzmacniaczy czujnika prądowego.


    Nie wiem, nie liczyłem ile tego jest na świecie, ale wiem że są, bo sam mam skromną reprezentację takowych. Jak będę miał taką potrzebę, to prawdopodobnie spróbuję je zastosować. Jeśli ktokolwiek będzie chciał, również niech je zastosuje w celu polepszenia stabilności nastaw i odczytów w przypadku częstego i długiego obciążania prądami maksymalnymi dla tego obciążenia (czyli max. 10A). Wiązać się to będzie z "małym" przeprojektowaniem schematu i płytki, bo zastosowanie "wprost" nie wchodzi w rachubę.
  • #25
    zig_priv
    Level 12  
    Witam, chciałbym zapytać czy warto rozważać budowę układu aktywnego obciążenia na tyrystorze . Chciałbym wykonywać pomiary pojemności akumulatorów LiPo czy też LiFe o dużych pojemnościach przy prądzie rozładowania 50-100A. W zarysie widzę to tak, że w układ prądowy ( katoda-anoda ) wpinam czujnik prądu ( typowy z baterii stosowanych w autach hybrydowych ) . Taki czujnik analogowy jest o tyle ciekawy , że załatwia nam kompensację temperaturową o którą w przypadku rezystorów mocy chyba trudno.
    Tak więc mając z czujnika prądu proporcjonalne napięcia do wysterowania bramki tyrystora można będzie stabilizować prąd w obwodzie K-A . Układ wyłączenia tyrystora przy zadanym Umin ogniwa oraz obliczenie wartości pojemności to kwestie odrębne. Dostępne na rynku używek tyrystory produkcji USSR mają prądy 250A;500A , często są oferowane z dedykowanymi , potężnymi radiatorami. Niestety sterowanie bramką tych "wielkoludów" odbywa się prądami o wartościach ćwierć Ampera . Moje pytanie brzmi : czy koncepcja sama w sobie ma sens?
  • #26
    AdamC
    Level 28  
    zig_priv wrote:
    czy koncepcja sama w sobie ma sens?


    Biorąc pod uwagę zasadę pracy tyrystora to nie ma prawa działać.
    Poczytaj trochę o tyrystorach.
  • #28
    AdamC
    Level 28  
    W przeciwieństwie do tranzystora wyzwolony tyrystor nadal przewodzi prąd po ustaniu sygnału sterującego bramką (brak przyłożonego napięcia do bramki), co jest zaletą (brak dodatkowych strat sterowania). Traci on tę właściwość dopiero po zaniku prądu obciążenia (poniżej wartości prądu przewodzenia, minimalny prąd podtrzymania) lub przy odwrotnej polaryzacji elektrod. Wówczas konieczny jest ponowny zapłon tyrystora.
    Nie mylić tyrystora z tranzystorem .
  • #29
    zig_priv
    Level 12  
    Jak wspomniałem, planuję dokonywać pomiarów pojemności ogniw czy też całych baterii wkraczają w sferę energetyki tj setki woltów i dziesiątki amperów. Pracując w obszarze przewodzenia tyrystora nie martwię się rozłączeniem układu prądowego gdyż to w prosty sposób załatwi mi to stycznik a zabezpieczeniem prądowym układu może być po prostu szybki bezpiecznik a samo załączenie tyrystora w obszar przewodzenia przy docelowych wartościach prądów pracy 50 A też nie powinno stanowić problemu. Zasadę pracy tyrystorów w układach prostownikowych kiedyś przerabiałem, ale chciałbym z kimś pracującym na co dzień z tyrystorami powymieniać się uwagami. Podziwiam kolegów za projekt opisany w temacie. A mając na co dzień do czynienia z prądami większymi niż 20 A chciałem tu zasięgnąć porad - bo chyba to forum poczynione jest ku temu?

    Dodano po 5 [minuty]:

    Aktywne obciążenie z pomiarem pojemności akumulatorów. Aktywne obciążenie z pomiarem pojemności akumulatorów.

    Bardzo liczę na cenne uwagi szanownych kolegów i koleżanek.
  • #30
    Janusz_kk
    Level 36  
    No fajnie że chcesz się coś nauczyć, więc czas na 1 lekcję.
    W tyrystorach i triakach bramka służy TYLKO do wyzwolenia go i nie ma wpływu na wartość prądu jaki przez niego płynie.
    Wniosek z tego jest prosty, prądu nim nie ograniczysz. Pozostają Ci tylko tranzystory, najlepiej mos fety
    odpowiednia ilość połączona równolegle, przylutowane do szyn miedzianych zbierających prąd i
    przykręconych do odpowiedniego radiatora.

    Dodano po 2 [minuty]:

    Widzę że dołączyłeś wykres, to co zaznaczyłeś to nie jest zakres regulacji tylko wykres napięcie - prąd.