Rozpatruję układ, który umożliwi odczyt napięcia na każdym z akumulatorów podłączonych do UPSa w łańcuch składający się z okło 30-40, a nawet 50szt akumulatorów 12V. Odczyt były podczas rozładowania z zapisem na kartę pamięci. Zakładając, że dla każdego akumulatora zrobię dzielnik, to rozdzielczość będzie malała z każdym akumulatorem. Wyniosła by on kolejno:
1. 12V / 1023 = 12mV
2. 24V / 1023 = 23mV
..
8. 96V / 1023 = 94mV
I właściwie kończą się porty analogowe i chyba się kończy też sensowna rozdzielczość. Teoretycznie dla 16 portów Arduino Mega mamy rozdzielczość 192V / 1023 = 188mV.
Reasumując, nie obsłużę tego jednym Arduino, wraz ze zwiększającą się ilością portów, tracimy na dokładności, która będzie i tak na pewno gorsza od teoretycznej rozdzielczości. Coraz większe napięcie - coraz trudniej (niebezpieczniej) uruchamiać układ. Izolacja itd... Zasilanie byłoby pobierane z pierwszego badanego akumulatora. Moce są duże, więc pobór byłby niezauważalny. Mam w głowie kilka rozwiązań:
Reasumując musimy mieć kilka/naście niezależnych uC, które będą odczytywały napięcia ze swoich kilku aku i albo transmitowały to gdzieś centralnie, co byłoby wygodne, lub zapisywało sobie to lokalnie, każdy na swoją kartę, co nie byłoby wygodne. Zapis, co kilkanaście sekund. Celem pomiary byłoby wychwycenie, które akumulatory w stingu są słabsze, wyliczenie dla każdego rezystancji wewnętrznej itp.. Akumulatory są rzędu 100Ah i większe.
Do obsłużenia jest kilka/-naście takich instalacji więc cena rozwiązania ma znaczenie.
Rozważam, zatem aby arduino-slave komunikowały się a jakimś Arduino-Master i przekazywały mu dane pomiarowe, z izolacją galwaniczną. Do głowy przychodzą mi rozwiązania:
- jakaś komunikacja szeregowa z izolacją galwaniczną na transoptorach,
- jakaś komunikacja radiowa typu 433MHz/413MHz lub 2.4GHz
- wrzutka danych przez WiFi na jakiegoś mastera (w tej opcji mógłby to być RasbberyPi w ostatecznośc,
Pierwsza opcja:
- magistrala I2C z optoizolacją? Ktoś stosował?
- magistrala SPI z optoizolacją - chyba gorzej, bo dodatkowo jeszcze CS dla każdego Slave.
Druga opcja.
Oglądając, filmiki, że z pomoca modułów możemy jednokierunkowo przesyłać jakie dane, to sobie wyobraziłem, że np na 433MHz wysyłamy komunikat z numerem Slave, który ma nadawać (słuchają wszystkie Slave). A na 413MHz nadaje wskazany Slave. Teoretycznie łatwe, pod warunkiem, że dla wszystkich modułów 433MHz, będą dokładnie tak samo zestrojone i analogicznie wszystkie moduły 413MHz będą tak samo zestrojone. Para takich modułów to kilka PLN, więc wygląda obiecująco i nie ma sznurowanie pomiędzy Masterem a Slave.
Trzecia opcja wygląda równie ładnie z powodu mniejszej ilości kabli i nie trzeba tworzyć swojego protokołu komunikacji radiowej, a jedynie wrzucać w jedno miejsce (iC/Rassbery czy inna Samba) wyniki.
Obróbka wyników z kilka plików, to już pikuś.
Doradźcie, gdzie czytać, może ktoś popełnił taką instalację etc...
W grę wchodzi tez jakiś inny iC typu Nucleto STM32 itp... byle by to był gotowiec, nie chce mi się projektować i lutować całego układu na gołych kościach. Marzy mi się aby to był uC type Arduino Nano/mini, który jak się jeden spali przez złe podłączenie do dzielnika podczas montażu, to wymienimy na kolejny za kilka PLN.
Jeszcze inna opcja to multipleksowanie wejść analogowych i transmisja po SPI (z multipleksera) z optoizolacją. Lub Optoizolacja np. z pomocą IL300, każdego akumulatora, ale to już byśmy wchodzili w iC, który ma odczytywać 40 wejść analogowych i chyba Arduino mogłoby tego nie przeżyć. Dużo kabli. Proste rozwiązanie na kilka aku, które można powielać mi się bardziej podoba.
Jak wy byście zrobili pomiar napięcia 30-50 akumulatorów (a czasem dwa stringi równolegle, to wówczas x2 więcej aku). Dodatkowo można by z pomocą DS18B20 mierzyć temperaturę na każdym aku, bo może słabe aku się będą bardziej grzały.... W prototypie na kilka aku na pewno tak zrobię.
1. 12V / 1023 = 12mV
2. 24V / 1023 = 23mV
..
8. 96V / 1023 = 94mV
I właściwie kończą się porty analogowe i chyba się kończy też sensowna rozdzielczość. Teoretycznie dla 16 portów Arduino Mega mamy rozdzielczość 192V / 1023 = 188mV.
Reasumując, nie obsłużę tego jednym Arduino, wraz ze zwiększającą się ilością portów, tracimy na dokładności, która będzie i tak na pewno gorsza od teoretycznej rozdzielczości. Coraz większe napięcie - coraz trudniej (niebezpieczniej) uruchamiać układ. Izolacja itd... Zasilanie byłoby pobierane z pierwszego badanego akumulatora. Moce są duże, więc pobór byłby niezauważalny. Mam w głowie kilka rozwiązań:
Reasumując musimy mieć kilka/naście niezależnych uC, które będą odczytywały napięcia ze swoich kilku aku i albo transmitowały to gdzieś centralnie, co byłoby wygodne, lub zapisywało sobie to lokalnie, każdy na swoją kartę, co nie byłoby wygodne. Zapis, co kilkanaście sekund. Celem pomiary byłoby wychwycenie, które akumulatory w stingu są słabsze, wyliczenie dla każdego rezystancji wewnętrznej itp.. Akumulatory są rzędu 100Ah i większe.
Do obsłużenia jest kilka/-naście takich instalacji więc cena rozwiązania ma znaczenie.
Rozważam, zatem aby arduino-slave komunikowały się a jakimś Arduino-Master i przekazywały mu dane pomiarowe, z izolacją galwaniczną. Do głowy przychodzą mi rozwiązania:
- jakaś komunikacja szeregowa z izolacją galwaniczną na transoptorach,
- jakaś komunikacja radiowa typu 433MHz/413MHz lub 2.4GHz
- wrzutka danych przez WiFi na jakiegoś mastera (w tej opcji mógłby to być RasbberyPi w ostatecznośc,
Pierwsza opcja:
- magistrala I2C z optoizolacją? Ktoś stosował?
- magistrala SPI z optoizolacją - chyba gorzej, bo dodatkowo jeszcze CS dla każdego Slave.
Druga opcja.
Oglądając, filmiki, że z pomoca modułów możemy jednokierunkowo przesyłać jakie dane, to sobie wyobraziłem, że np na 433MHz wysyłamy komunikat z numerem Slave, który ma nadawać (słuchają wszystkie Slave). A na 413MHz nadaje wskazany Slave. Teoretycznie łatwe, pod warunkiem, że dla wszystkich modułów 433MHz, będą dokładnie tak samo zestrojone i analogicznie wszystkie moduły 413MHz będą tak samo zestrojone. Para takich modułów to kilka PLN, więc wygląda obiecująco i nie ma sznurowanie pomiędzy Masterem a Slave.
Trzecia opcja wygląda równie ładnie z powodu mniejszej ilości kabli i nie trzeba tworzyć swojego protokołu komunikacji radiowej, a jedynie wrzucać w jedno miejsce (iC/Rassbery czy inna Samba) wyniki.
Obróbka wyników z kilka plików, to już pikuś.
Doradźcie, gdzie czytać, może ktoś popełnił taką instalację etc...
W grę wchodzi tez jakiś inny iC typu Nucleto STM32 itp... byle by to był gotowiec, nie chce mi się projektować i lutować całego układu na gołych kościach. Marzy mi się aby to był uC type Arduino Nano/mini, który jak się jeden spali przez złe podłączenie do dzielnika podczas montażu, to wymienimy na kolejny za kilka PLN.
Jeszcze inna opcja to multipleksowanie wejść analogowych i transmisja po SPI (z multipleksera) z optoizolacją. Lub Optoizolacja np. z pomocą IL300, każdego akumulatora, ale to już byśmy wchodzili w iC, który ma odczytywać 40 wejść analogowych i chyba Arduino mogłoby tego nie przeżyć. Dużo kabli. Proste rozwiązanie na kilka aku, które można powielać mi się bardziej podoba.
Jak wy byście zrobili pomiar napięcia 30-50 akumulatorów (a czasem dwa stringi równolegle, to wówczas x2 więcej aku). Dodatkowo można by z pomocą DS18B20 mierzyć temperaturę na każdym aku, bo może słabe aku się będą bardziej grzały.... W prototypie na kilka aku na pewno tak zrobię.