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.

Stacja testowania ogniw lion

banmar_2005 23 Dec 2020 22:22 1059 20
IGE-XAO
  • #1
    banmar_2005
    Level 26  
    Bardzo podoba mi się stacja testowania ogniw 18650 lion
    Link

    Postanowiłem ją zbudować. PCB zamówiłem zmontowałem wszystko do kupy
    Załadowałem plik do arduino za pomocą wersji arduino-1.8.5 bez problemów, po włączeniu pokazało się Menu główne kursorem mogę sie poruszać w dół i w górę ale mogę wejść tylko w ostatnią zakładkę na dole. W sumie zero reakcji na stacje nic nie można włączyć ani ustawić. brak odczytu danych.
    Nie wiem gdzie szukać przyczyny. Podczas ładowania kodu do arduino wyskakuje dużo błędów tego typu:
    ostrzeżenie: przestarzała konwersja ze stałej łańcuchowej na „char *” [-Wwrite-strings]
    myGLCD.print
    kilka linijek tych ostrzeżen:

    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino: In function 'void setup()':
    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino:124:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    myGLCD.print("LCD OK", CENTER,0);
    ^
    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino:131:48: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    myGLCD.print("Couldn't find RTC", CENTER,6);
    ^
    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino:136:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    myGLCD.print("RTC OK", CENTER,6);
    ^
    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino:142:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    myGLCD.print("RTC lost power", CENTER,6);
    ^
    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino:151:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    myGLCD.print("SD FAIL", CENTER,12);
    ^
    C:\Users\delfin\Desktop\stacja_liion\zdjecia\stacjaliion\stacjaliion.ino:157:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    myGLCD.print("SD OK", CENTER,12);
    Może ktoś mi pomoże z tym problem. stacja prawie skończona kasa wydana i problem nie do rozwiązanie dla mnie, jestem elektronikiem amatorem ale na programowaniu się nie znam
    Projekt stacji z wsadem na arduino jest dostępny na stronie
    Link
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • IGE-XAO
  • #2
    kaczakat
    Level 33  
    Jak chcesz to zrobić bez modyfikacji kodu to musisz mieć wszystko jak autor z czasu kiedy to stworzył, a dokładniej te wersje IDE i bibliotek, którą użył autor, Arduino po komunikatach kojarzę coś około wersji 1.5.8 max, biblioteki z tego samego okresu. Zwykle jest to do zdobycia, na stronie Arduino.cc są stare wersje IDE do pobrania. Pytaj autora czy udostępni Ci użyte biblioteki, bez tego to jak szukanie igły w stogu siana. Niestety o ile w AVR czasami ktoś coś napisał i chował jak kotka..., to tu jest odwrotnie, setki tysięcy użytkowników sprawia, że pojawiają się biblioteki o tych samych nazwach i znowu kłopot klęski urodzaju, która użyta do konkretnego projektu. Jeszcze pół biedy z tymi wbudowanymi do Arduino IDE, ale jest mnóstwo takich "z wolnej ręki".
  • #3
    banmar_2005
    Level 26  
    No to moja praca na darmo, i wyłożona kasa.
    Autor projektu odpisał mi że nie ma czasu na zajmowanie się tym projektem i nie pamięta nic już na ten temat. Projekt był robiony 2016 lun 2017r
    Ja z tym sobie nie poradzę, szkoda bo nie licząc straconego czasu poszła kasa w błoto.
  • IGE-XAO
  • #4
    kaczakat
    Level 33  
    Ten projekt wcale nie jest jeszcze stracony, ale zanim zrobiłeś zakupy, nawet bez posiadania Arduino można było zrobić kompilacje i sprawdzić czy wszystko działa na tym etapie.
    Przynajmniej sam nie bądź jak autor projektu, wrzuć swój kod i załącz używane biblioteki, może ktoś zauważy co jest nie tak.
  • #5
    Gienek
    Level 36  
    Jeżeli ten projekt robiony był w tych latach co podajesz, to powinieneś skorzystać z arduino-1.6.5 do arduino-1.6.8 (wtedy było to oprogramowanie nowe). Zobaczysz, czy podczas kompilacji pojawią się te błędy.


    Nie wiem czy sobie z tym poradzisz. Skompilowałem ten sketch dla Arduino Mega 2560. Po "skompletowaniu" bibliotek niezbędnych do kompilacji - wykonałem kompilację bez błędów
    Code:
    Szkic używa 41114 bajtów (16%) pamięci programu. Maksimum to 253952 bajtów.
    
    Zmienne globalne używają 3052 bajtów (37%) pamięci dynamicznej, pozostawiając 5140 bajtów dla zmiennych lokalnych. Maksimum to 8192 bajtów.


    W załączniku masz gotowy hex do wgrania do procesora - z bootloaderem i bez. Wgraj to do swojego sprzętu i sprawdź czy działa.

    Tutaj masz opis wgrywania: https://www.elektroda.pl/rtvforum/topic3374177-30.html
    Attachments:
  • #6
    banmar_2005
    Level 26  
    Ściągnołem arduino wersji 1.6.5 i biblioteki z tego okresu i wyskoczył błąd kompilacji, skopiowałem z okna błędów #include <Wire.h> i wkleiłem do programu. Nie było żadnych błędów wtedy i żadnych ostrzeżeń. Teraz zakładka ostatnia "Info" odczytuje dane napięć z ogniw, temperaturę sygnalizuje ogniwo w koszyku itd. klikając pierwszą zakładkę "CHRG+Q_TST+STRG" włączają się ładowarki ale nawet zostawiając je 10godzin nie wyłączą się. Przed ostatnia zakładka "QUICK IntResTst" nie wiem do czego służy chyba do pomiaru rezystancji wewnętrznej ogniwa, ale włącza się na 3 sekundy kolejno rozładowanie ogniw, przeleci po kolei każde ogniowo i nic się dalej nie dzieje. Reszta zakładek druga "CHRG+Q_TST+CHRG". trzecia "CHRG+Q_TST"
    czwarta "CHARGE", piąta "CHRG+STRG", szósta "STORAGE" nie są aktywne nie da się je włączyć, Myślę że w kodzie jest jakiś błąd lub jakaś część kodu jest wyłączona. Na 99,9999% układ elektroniczny jest poprawnie złożony nie takie rzeczy się budowało więc nie jestem początkującym elektronikiem.
    Dla łatwiejszego zrozumienia problemu wrzucam krótki film.



    Może ktoś kto ma wiedzę w programowaniu przejży kod i coś pomoże.
    Nie da się:
    - włączyć ładowania na czas z zakładki "CHARGE"
    - włączyć rozładowania , ładowania rozładowania, ładowania ogniwa do przechowywania i innych zakładek .
    Nic na karcie SD nie jest zapisywane, żadnego pliku z danymi nie ma. Bluetooth nie działa nie da się połączyć z nim.
    na pliku HEX który wysłałeś też taka sama reakcja urządzenia
  • #7
    Gienek
    Level 36  
    Faktycznie, ten program "jest okrojony". Brak w nim oprogramowania modułu bluetooth (na filmie autor coś o tym wspomina). Jakie jeszcze błędy zawiera, to "na szybko" trudno powiedzieć. Trzeba dokładnie sprawdzić całość, a teraz brak czasu.

    Jeszcze jedna mała uwaga. Autor zastosował moduły
    Stacja testowania ogniw lion

    a u Ciebie widzę
    Stacja testowania ogniw lion

    Nie analizowałem tych modułów i nie wiem, czy one nie będą przyczyną "głupiego" zachowania się całego oprogramowania.

    Może ta kompilacja "będzie lepsza" - czy zapisze coś na SD?
    Attachments:
  • #8
    banmar_2005
    Level 26  
    załadowałem ten plik, nie ma żadnych zmian w działaniu, i na karcie SD nie ma śladu, nic nie zapisało. Zmieniłem na nowy moduł arduino mega 2560 myśląc że może moduł jest uszkodzony ale nic nie pomogło. Jutro poszukam nowego mudułu SD może coś zapisze na karcie SD. Moduły TP4056 są inne to fakt, oryginalne nie mają zabezpieczenie polaryzacji. Nie wydaje mi się ze to ma wpływ na działanie kodu ale zamówiłem na takie same jak w projekcie, bez zabezpieczenia. Zobaczymy jak podmienię te ładowarki TP4056
  • #9
    ex-or
    Level 27  
    Program pisze rzuca sporo komunikatów na serial. Ich analiza w porównaniu z kodem mogła by pomóc w uruchomieniu.
    M.in. na serial jest wyrzucany wynik otwarcia pliku na karcie. Plik jest zapisywany jeśli jest ustawiona zmienna StorageCharging co, jak przypuszczam, ma miejsce pod opcją STORAGE+CHARGE, więc jeśli nie da się jej uruchomić to zapisu nie będzie.
  • #11
    banmar_2005
    Level 26  
    Stacja ładowania uruchomiona. Program pozmieniany bo w oryginalnym działała tylko jedna zakładka,
  • #12
    ab.cyborg
    Level 11  
    banmar_2005 wrote:
    Stacja ładowania uruchomiona.

    Witaj "banmar_2005" jak śmiga stacja. Jakiś czas temu chciałem się wziąć za budowę tej stacji którą zbudowałeś , prosiłem autora stacji o jakieś materiały lecz mi odpisał że to zbyt odległy projekt i że nie ma czasu. Pobrałem z jego strony
    materiały lecz projekt i schemat pcb nie otwiera mi się w Kicadzie bo taki program posiadam. Mógł byś wrzucić materiały do tego projektu (schematy pcb, listę podzespołów i kod programu). Tak na marginesie pcb zamawiałeś gdzieś czy sam wytrawiałeś ? Może masz do sprzedania zestaw pcb potrzebnych do stacji.
  • #13
    banmar_2005
    Level 26  
    z Stacji jestem zadowolony, choć wymagała by pewnych poprawek błędów których można by było wcześniej uniknąć. Płytek pcb już nie mam miałem tylko 4 komplety na sprzedaż. Płytki zamawiałem w chinach 5 kompletów wyszło jakieś 160zł z przesyłką. Radzę poprawić projekt przed zleceniem, bo wyświetlacz Nokia jest inny jak w projekcie który jest droższy i trudniejszy w zakupie (inna pinologia) .Oryginalny kod jest bardzo okrojony, działa tylko jedna zakładka.
    Ja trochę go poszerzyłem o dodatkowe funkcje. Kod jeszcze nie jest docelowy ale myślę że jesienią go ukończę. Kolega "Gienek" też zbudował tą stacje, myślę że pomoże tez w budowie.
    z plików wysyłam co tu mam w komputerze, może jeszcze się komuś przyda.
    Jeszcze jedno do załadowania pliku poszukaj wersji Arduino 1.6.5 i biblioteki z tego okresu.
  • #14
    ab.cyborg
    Level 11  
    Dziękuję za materiały. banmar_2005 Powiedz czy na tym kodzie i tych materiałach zbudowałeś swoją stację , to jest projekt finalny czy będę musiał coś kombinować ?
  • #15
    banmar_2005
    Level 26  
    ab.cyborg wrote:
    Dziękuję za materiały. banmar_2005 Powiedz czy na tym kodzie i tych materiałach zbudowałeś swoją stację , to jest projekt finalny czy będę musiał coś kombinować ?


    jest dwa rodzaje wyświetlaczy Nokia 5110, autor projektu zastosował trudno dostępny i droższy i pod taki wyświetlacz pasuje płyta główna, masz trzy wyjścia, albo poprawisz wyprowadzenie ścieżek PCB i kupujesz tani wyświetlacz nokia5110, albo szukasz wyświetlacza pod tą płytę główną, trzecie wyście to połączenie wyświetlacza za pomocą przewodów. Wyświetlacze róznią sie tylko kolejnością pinów .

    druga poprawka to płyta robocza, brak połączenia rezystora 3.6ohm, zaznaczyłem je na czerwono w zdjeciu płytek PCB. Kodu do arduino użyj mojego, ma wiecej funkcji, jesienią i zimą kod będzie poprawiony i rozbudowany, ale muszę pogadać z dwoma programistami, bo ten co mi poprawiał kod nie zna się na androidzie który jest potrzebny do apki po bluetooth. Wszyscy którzy zakupili płytki odemnie uruchomili swoje stacje, jeden miał problem ale z tego co wiem kolega Gienek mu pomógł uruchomić.

    czas testowania moze być różny w zależności od napiecia rozładowania ogniw, pojemności ogniw. ładowarki ładują teorytycznie prądem około 1A. Program śledzi ile jeszcze ogniw jest nie naładowanych, gdy naładuje ostatnie ogniwo to czeka 9000sek to czas na doładowanie ogniw które z jakiegoś powodu nie było jeszcze naładowane, i tak później dodatkowo ładowarki odłączają naładowane ogniwa.
    Ten czas możesz sobie ustawić w pliku define.h
    u mnie gdy ustawiłem 4000sek efekt był taki że ogniwa według programy były naładowane ale ładowarki jeszcze nie doładowały i nie odłączyły ogniwa i zaczoł sie test z ogniwami nie doładowanymi w 100% wtedy wiedomo ze test pojemnosci nie wyjdzie wiarygodny. czyli w skócie ładowanie w zalezności od pojemnosci ja testowałem ogniwa 3500mAh czyli ładowało sie około 3 godzin potem czas na doładowanie i czekanie gdy by była duża upływosc ogniwa. 9000sek to 2.5 godziny, i czas na rozładowanie prądem mniej wiecej tyle samo co ładowanie czyli w zaleznosci od pojemnosci i kondycji ogniwa. potem po kolei wyłącza ogniwa od rozładowania az do osiągnietego napięcia , ja mam ustawione 2.8V w pliku define.h. Możesz głebiej rozładować ale max do 2.5V
    i potem czas na naładowanie do stanu przechowywania(tu musisz sobie ustawić w pliku define.h napiecie takie aby po wyjeciu ogniwa było około 3.6-3.7V)
    Ja mam tu ustawione 3.9V. w sumie to trwa 7-10godzin zalezy od ogniw.
    ja juz przestowałem około 400 ogniw z depakietów i 12 ogniw nie trzymało parametrów do budowy pakietów do rowerów elektrycznych. zrobiłem 2 baterie po 91 ggniw i jeszcze musze zrobic jedną z 54 ogniwami.
    Możesz testować ile chcesz ogniw, nie musi być 10, może być tylko jedno ogniwo.
    czesc do ustawien w pliku define.h

    //DEFINES
    #define OVERHEAT 45 //degree Celsius
    #define VREF 5.0 //V - tu musisz zmierzyc napiecie zasilacza i wpisać jakie masz napiecie
    #define FULLY_CHARGED 4.2 //V osiagnete napiecie po którym odlicza czas
    #define DISCHARGED 2.8 //V rozładowanie podczas testu
    #define STORAGE 3.85 //V napiecie przechowywania , przy tym ustawieniu mam 3,6V na ogniwie
    #define DISCHARGE_STORAGE 3.85 //V
    #define TIME_FULL_CHARGING 9000000L //ms odliczanie czasu po naładowaniu
  • #17
    ab.cyborg
    Level 11  
    banmar_2005 wrote:
    Płytki zamawiałem w chinach 5 kompletów wyszło jakieś 160zł z przesyłką.


    "banmar_2005" miał byś może pliki gerber które wysyłałeś do chin zamawiając płytki , zejdzie mi pół roku na rysowaniu tego. Jeszcze sprawa zasilacza i przekaźnika, zasilacz jakie ma napięcie i moc a przekaźnik do czego służy ? Układ łączeń przewodów zasilających z zasilacza na przełączniki , ładowarki itd to sobie z głowy robiłeś czy masz to rozpisane.
  • #18
    banmar_2005
    Level 26  
    ab.cyborg wrote:
    banmar_2005 wrote:
    Płytki zamawiałem w chinach 5 kompletów wyszło jakieś 160zł z przesyłką.


    "banmar_2005" miał byś może pliki gerber które wysyłałeś do chin zamawiając płytki , zejdzie mi pół roku na rysowaniu tego. Jeszcze sprawa zasilacza i przekaźnika, zasilacz jakie ma napięcie i moc a przekaźnik do czego służy ? Układ łączeń przewodów zasilających z zasilacza na przełączniki , ładowarki itd to sobie z głowy robiłeś czy masz to rozpisane.


    Mam gdzieś te pliki ale bez sensu jest wysyłanie płytek z błędami bez poprawek.
    Poprawa dla laika takiego jak mnie który nie zna AUTODESK EAGLE zajmuje około 2 -3 godzin dla wprawionego 2-3min. Zasilacz 5V min 25A ja użyłem 30A. Zmierzyć na zasilaczu jakie jest napięcie bo może się różnić i wpisać w pliku define.h aby nie było błędów potem w pomiarach. Przekaźniki rozłączają lub załączają ładowarki ,a użyłem na wyjściu dwóch dużych przekaźników samochodowych 40A, jeden załącza lewą stronę ładowarek drugi prawą a ich pracą steruje mały przekaźnik który jest sterowany z adruino. Połączenia są proste wiec każdy połączy sobie według swoich upodobań, ale trzeba pamiętać aby użyć odpowiedni przekrój przewodów. Za cienkie przewody powodują duże spadki napięć i program nie obliczy dokładnie parametrów ogniw. Ja chciałem uruchomić stacje jak najszybciej wiec mam siano pod spodem, należało by poprawić przekrój przewodów i połączyć je trochę starannie.
    wysyłam pliki graber ale nie zalecam ich wysyłania bez poprawek
  • #19
    ab.cyborg
    Level 11  
    O EAGLU nie mam wogóle pojęcia, dwa razy robiłem drobne projekty w Kicad i nie wiem czy to udźwignę. Problem jest w wyświetlaczu i płycie roboczej zaznaczone na czerwono, czyli rozumiem że obydwie płyty robocze mają ten sam błąd bo są bliźniacze z tego co zauważyłem.
  • #20
    banmar_2005
    Level 26  
    ab.cyborg wrote:
    O EAGLU nie mam wogóle pojęcia, dwa razy robiłem drobne projekty w Kicad i nie wiem czy to udźwignę. Problem jest w wyświetlaczu i płycie roboczej zaznaczone na czerwono, czyli rozumiem że obydwie płyty robocze mają ten sam błąd bo są bliźniacze z tego co zauważyłem.


    Obojętne w jakim programie to robisz, trzeba narysować ścieżki na dwóch płytach roboczych zaznaczyłem na czerwono z jakiego punktu i do jakiego mają być ścieżki. to zajmuje kilkanaście minut , jeżeli tego nie zrobisz to musisz poprowadzić przewód wtedy. płytę główną możesz sobie odpuścić i wyświetlacz podłączyć za pomocą przewodów lub szukać wyświetlacza takiego który będzie pasował do płyty głównej. Ja nie wiedziałem o błędach wiec zleciłem, ty wiesz to zrobisz jak chcesz.