Wpis z mikrobloga

Mam problem z ogrzewaczem wody, który naprawiam. Wykorzystuję ESP8266 do sterowanie trzema grzałkami 400V (przy użyciu 3 SSR-ów). Do odczytu temperatury wykorzystuję sensor DS18B20. Problemem jest natomiast czujnik temperatury DS18B20, który "wstrzymuje" działanie ESP8266 w celu odczytu temperatury (na ok. 100ms). Czas ten jest dość duży i uniemożliwia mi częstsze włączanie/wyłączanie SSR-ów w celu lepszej kontroli temperatury grzałek. Z innego posta otrzymałem informację, że można odczytywać temperaturę ze scratchpada, a nie czekać na sam odczyt (co podobno jest o wiele szybsze). Jednak wciąż nie wiem czy to zadziała i jak taki kod zbudować. Rozmyślam też czy nie dobrym wyjściem jest wybór ESP32 (dwa rdzenie - jeden do SSR-ów, drugi do temperatury).
Ktoś może mi doradzi jak to lepiej rozwiązać?

#ogrzewaniedomu #modernizacja #technologia #nodemcu #esp32 #forbot #botland #esp #arduino #programowanie #mikrokontrolery #elektroda #esp8266 #dom #hydraulika #ogrzewanie #grzaniewody #podgrzewacze #woda #lazienka #dom #majsterkowanie #elektronika #elektryka #naprawa
  • 29
via Android
  • 0
@Portier-Harry_Portier rozmyślałem też o analogowym odczycie temperatury, jednak wolałbym cyfrowy. Analogowy chyba nie jest dokładny i trzeba pewnie kalibrować?
I też nie mogę sobie pozwolić na błędny odczyt, wtedy od razu odpada. Różnica 2 stopni może narobić duże szkody, dlatego peqność temperatury jest ważna.
Problemem jest natomiast czujnik temperatury DS18B20, który "wstrzymuje" działanie ESP8266 w celu odczytu temperatury (na ok. 100ms).


@MisiekD: wg mnie, problemem tutaj nie jest czujnik, który działa tak, jak działa i naprawdę nie musi szybciej, bo jestem pewien, że twoja temperatura nie zmienia się aż tak szybko. Problemem jest program, który napisałeś tak, że on się musi zatrzymać, by odczyt temperatury się dokonał. Regulacja mocy powinna działać niezależnie i jedynie do
@MisiekD nie wiem jaka jest pojemność układu faktycznie ale jeśli sekunda to dużo to ja bym temat ugryzł inaczej. Jak zależy Ci na szybkości i pewności regulacji to użyj lm35 czy tam jakiegoś ntc i komparatora. Na jedno wejście dajesz napięcie z czujnika a na drugie napięcie z uC (moduły dac to grosze). Zaleta taka że jak ci się procek przytnie to nie zewrze grzałki tylko zostanie takie samo napięcie na adc
@Jarek_P też tak myślałem, ten czujnik przy minimalnej rozdzielczości potrzebuje 100ms, to, że on złym kodem zawiesza proc to jedno, ale przy na prawdę dynamicznym układzie z małą pojemnością cieplną takie opóźnienie na regulacji może mieć znaczenie. ogólnie zabierać się za takie tematy bez pid to trochę ryzyko.
ale przy na prawdę dynamicznym układzie z małą pojemnością cieplną


@CherenkowP: OP pisze o grzaniu wody, grzałka trójfazowa oznacza solidne kilowaty mocy. Więc albo mówimy o dużej ilości wody i to zdecydowanie nie będzie dynamiczny układ z małą pojemnością cieplną, tylko jego całkowite przeciwieństwo, albo OP usiłuje dorobić własne sterowanie do dużego ogrzewacza przepływowego. Byłby to ambitny projekt, szczerze mówiąc nie wiem, czy bym się odważył, a jeżeli nawet, chyba jednak
@Jarek_P no ja to zrozumiałem właśnie, że to przepływ 20kw a nie zbiornik. Stąd pomysł z komparatorem, zawsze to jakieś zabezpieczenie. Również nie wiem czy bym się podjął mając podejrzewam większe doświadczenie niż op. Nie bez powodu do dzisiaj w takich konstrukcjach stosuje się asicy albo stare pic kodowane w c czy nawet asemblerze. Bezpośrednie sterowanie grzałki przez procki diy pokroju ESP, Tiny czy megi328 to proszenie się o kłopoty.
edit. @
via Android
  • 0
@CherenkowP Hah, no już bez przesady :p Nie powinna wypalić podłogi ta grzałka :D
@Jarek_P
I tak, Panowie, to przepływowy ogrzewacz wody. Grzałki 3x400V. Ale spokojnie, zabezpieczenia są 3, z czego jedno oryginalne (3 fazowy bezpiecznik ciśnieniowo-temperaturowy). W najgorszym wypadku jego zacznie wybijać i najwyżej też spali grzałki. Ale przepływ musi i tak być, i to wcale nie miały, bo bez tego nie włączy się czujnik przepływu i grzałki się nie uruchomią.
@MisiekD nie znam akurat ESP, ale to co chcesz zrobić można ogarnąć porównując liczby, gdy się zmieni wykonujesz jakaś funkcje. Jeśli wolisz boolowska flagę to musi ona być w dokumentacji biblioteki, to nie jakieś adc że sobie flagę podejrzysz inna biblioteka ;)
edit. tak ostrzegam, jak faktycznie tam jest duży przepływ z taką mocą grzałek to albo będziesz miał zabawę z ograniczeniem ich mocy albo to 100ms zrobi ci taką histerezę że
  • 0
@Jarek_P: @CherenkowP i dodając jeszcze, dlaczego te 100ms jest problemem. Przykład:
- grzałki nagrzewają się 200ms, a następnie 300ms wyłączają się to otrzymuję 35C,
- grzałki nagrzewają się 300ms, a następnie 300ms wyłączają się to otrzymuję 44C.
Choćby taka sytuacja pokazuje, że brakuje mi wartości pośredniej (np. 350ms grzania), a to zdecydowanie rozwiąże problem.
A mierzona temperatura jest temperaturą już wymieszanej cieczy (na wyjściu) :)

PS. O tym komparatorze poczytam, ale
@MisiekD jak to jest faktyczny pomiar to z góry mówię, szukaj innego czujnika. Poczytaj też o regulacji pid - to ci się przyda bardziej niż komparator :D
+ gdzie ten czujnik jest w tym zbiorniku umieszczony i jaka ma pojemność.
Jeszcze raz, dwa pojęcia - pętla histerezy i regulator pid. To pewnie będzie działać ale imho zmiany temperatury będą kosmiczne w czasie.
  • 0
@CherenkowP: No kurcze, nieźle, mój problem rozpisują (LINK: https://forum.arduino.cc/t/solved-18b20-timing-problem/67817/31 ) :P
Jeśli chodzi o PID - w moim układzie wykorzystałem coś dokładnie takiego jak działa PID. Niestety ten PID wprowadza u mnie zmiany dopiero po 2 sekundach, bo oczekuję stabilizacji temperatury na rurce. Nie jest to idealny, piękny PID, ale dokładnie coś w miarę niego mam stworzone. Wtedy on sam automatycznie sobie dobiera częstotliwość włączeń/wyłączeń SSR-ów, aby utrzymać 40C ;)
Czujnik
@MisiekD wiesz, napisałeś zbiornik a nie rurka. Jakbyś mierzył temperaturę po wymieszaniu to pętla była by koszmarna. Boli mnie nadal ten ds, to nie jest czujnik do takich rzeczy, zwłaszcza, że większość na rynku to podroby (łatwo sprawdzić, zobacz jaki ma adres cyfrowy, podroby z tej samej serii mają jednakowe). Skłaniałbym się ku adc i termistorze ntc tudzież wspomnianym lm35, to co stracisz na dokładności pomiaru zyskasz wielokrotnie na szybkości regulacji. Jak