wtorek, 24 kwietnia 2018

Sterowanie grupowe mocą grzałki - BLYNK +ESP + SSR czII

Teorię sterowania grupowego napięciem / mocą prądu przemiennego mamy już za sobą. Wybór elementu wykonawczego również. Pora zająć się sercem układu - będzie to ulubiony mój mikrokontroler ESP8266. A że potrzebuję jedynie jedno wyjście cyfrowe może to być nawet najprostszy ESP-01 a najlepiej ESP-01S. Dziś o tym jak połączyć silne i słabe prądy w mikroprocesorowym regulatorze mocy.



Sterować przekaźnikiem SSR można bezpośrednio z mikrokontrolera nawet tak delikatnego jak ESP. Ale dla pewności wcisnę między nimi tranzystor  zwiększając napięcie sterowania SSR do 5 V.

To w zasadzie cały schemat regulatora nie licząc oczywiście modułu ESP. Niestety ESP-01 nie ma na pokładzie stabilizatora 5/3V3 i ten element trzeba dodać. Przydała by się jakaś dioda i  ewentualnie zaciski zasilania i przyłączenia sterowania. Coś ten prosty schemacik zaczyna się niebezpiecznie rozrastać. Na szczęście w pogotowiu są bracia Chińczycy i ich sympatyczny układzik ESP-01 Relay opisywany wcześniej.


Mam tu wszystko czego mi potrzeba: podstawka pod ESP, stabilizator, tranzystor, zaciski i dioda. Zbędny jest przekaźnik ale co tam za 6 zł mogę zaszaleć płytką z przekaźnikiem. Powyższy schemat dotyczy wersji 1.0 płytki przekaźnika, moja zaś ma już numer 4.0 i dodatkowo włączony transoptor pomiędzy GPIO0 a bazę tranzystora. Po jakiego grzyba? Przekaźnik zasilany jest z tego samego 3V co i ESP-01 i ewentualne przepięcia i tak pojawią się na ESP poprzez zasilanie. Jeśli problem był w załączaniu przekaźnika zerem zawsze można zastosować tranzystor PNP. Więc nie bardzo wiadomo po co ten transoptor jest. Ale kto tam zrozumie chińskich inżynierów ....
Najważniejsze, że płytka idealnie pasuje jako element sterujący regulatorem grupowym.

Zacisk sterujący +SSR jest przyłączony do +5V zaś -SSR do kolektora tranzystora (nóżka nr 3 przekaźnika). Te dwa punkty dołączyłem do kostki zaciskowej przekaźnika (wcześniej usuwając go z modułu) i sterownik gotowy.

I jeszcze zasilanie modułu z ESP. Potrzebne jest 5V. Ale i tu z pomącą pospiesza Aliexpress. Bardzo eleganckie i bezpieczne przetwornice typu HLK dostarczają stabilizowanego napięcia o mocy 3W. Idealnie.


A tak to wygląda w po przeróbkach. Zasymulowałem stan 0 na pinie GPIO0 (zworka na podstawce ESP). Widać święcący się niebieski LED na module i czerwony LED w SSR co oznacza załączony przekaźnik SSR.



Program

Ciężko to nazwać programem. To raczej programik do odmierzania impulsów czasowych. Co 1 sekundę następuje początek okresu regulacji. W tym momencie staruje generator impulsu realizowany przez bibliotekę Timers.h.  Minimalny cza załączenia to 10 ms toteż dla 1 sekundy mam 100 poziomów regulacji mocy. A potrzebuję ich 5 (0; 1/4; 1/2; 3/4; 1). Dodałem więc tablicę przelacznik[] zawierającą kolejne nastawy przełącznika mocy.

#include <Timers.h> //  my favorite timer 
Timers <7> akcja; //
#include "blynk.h" //obsługa BLYNKa

#define led_czerw   0 //SSR
#define led_wew   2   //LED ESP
#define s_max   100 //okres regulacji = s_max*10 ms

int przelacznik[] = {0, 25, 50, 75, 100};
int nr_p = 0;

void ledsetup() {
  pinMode(led_czerw, OUTPUT); //LED na module
  digitalWrite(led_czerw, HIGH);
  pinMode(led_wew, OUTPUT); //LED na module
  digitalWrite(led_wew, LOW);
}
int skok = 0;
int flaga_led = 0;
void led_timer()
{
  flaga_led = !flaga_led;
  digitalWrite(led_wew, flaga_led);
}
BLYNK_WRITE(V11) {
  int i = param.asInt();
  if (i == 1) {
    nr_p++;
    if (nr_p > 4)nr_p = 0;
    skok = przelacznik[nr_p];
    Blynk.virtualWrite(V10, skok);
    Blynk.virtualWrite(V12, skok);
  }
}
BLYNK_WRITE(V10) {
  skok = param.asInt();
  Blynk.virtualWrite(V12, skok);
}

void ssr_timer()
{
  Serial.println(skok);
  int  impuls = skok * 10;
  akcja.setInterval(2, impuls);
  if (impuls > 0) digitalWrite(led_czerw, LOW); else digitalWrite(led_czerw, HIGH);
}

void ssr_stop_timer() {
  akcja.setInterval(2, 0);
  digitalWrite(led_czerw, HIGH);
}

void setup() {
  Serial.begin(115200);  delay(100);
  Serial.println();  Serial.println(F(__FILE__));  //BLYNK .4.10 Arduino IDE.cc 1.8.3
  ledsetup();

  akcja.attach(0, 2000, led_timer);
  akcja.attach(1, (s_max * 10), ssr_timer);
  akcja.attach(2, 0, ssr_stop_timer); //mono impuls
  akcja.attach(3, 3000, blynk_timer); //

  blynksetup(); // setup biblioteki BLYNK
  Blynk.virtualWrite(V10, skok);
  Blynk.virtualWrite(V12, skok);
  Blynk.setProperty(V10, "color", _MAGENTA);
  Blynk.setProperty(V11, "color", _MAGENTA);
  Blynk.setProperty(V12, "color", _MAGENTA);

}

void loop() {
  akcja.process(); // timer
  blynkakcja();    //BLYNK
}

Część programu odpowiedzialna za komunikację z BLYNK - blynk.h - jest taka sama jak w innych projektach (np. tu >>>).
Wszystko obsługiwane jest z telefonicznego BLYNKa  dwoma widgetami. Suwak umożliwia "płynną" regulację mocy co 1%. Przycisk przełącza kolejne stopnie mocy.  I to wszystko.




No może nie całkiem wszystko. Teraz najtrudniejsze - część mechaniczna. Najważniejsze to radiator. Oprócz samych zalet SSR ma potężną wadę - się grzeje. Typowy spadek na tym przekaźniku to 1-1,6V. Niby niewiele. Ale już przy prądzie 10 A wydziela się do 16 W mocy. A dla 25A prawie 40 W!!! To już naprawdę spory piecyk i to zamknięty w obudowie. Dla 10-16 A można się jeszcze pokusić o chłodzenie naturalne przy sporych rozmiarów radiatorze. Dla większych prądów konieczny jest już wentylator.
Kolejny problem to obudowa. Ne może być z byle jakiego plastiku bo popłynie pod wpływem temperatury. Metalowa też odpada ze względów bezpieczeństwa. Tylko twardy, odporny na temperaturę plastik (kiedyś był to ebonit) wchodzi w grę. Do tego solidne gniazdo sieciowe i kabel zasilający minimum 1,5 mm2. I wszystko oczywiście z przewodem ochronnym. Tu już nie ma żartów z bezpieczeństwem naszym i osób trzecich.

Udało się to wszystko upchać do znalezionej w warsztacie obudowy


 a po zamknięciu nawet znośnie wygląda



A z drugiej strony kontroly LED migający w takt sterowania przekaźnika SSR i przycisk przełączający skokowo moc co 25%.



Teraz już tylko próby pod obciążeniem i pracę można uznać za zakończoną.

I chwila przerwy na prace ogrodowe w oczekiwaniu na lato i ciąg dalszy.....
132

5 komentarzy:

  1. Widzę sporo pracy włożonej w takie eleganckie opisy, tylko życzyć dalszej wytrwałości. Mam pytanie. Jakiej mocy jest przyłączona grzałka? Szukałem w spisie, ale jakoś nie odnalazłem, i na ile grzeje się radiator? Z tego co widzę na zdjęciu, ten "FOTEK" to podróbka. Oryginalny powinien mieć np. linie o jednakowej grubości, i prawy róg naklejki i _obudowy_ zaokrąglony/wypełniony plastikiem - a nie przycięty nożyczkami tylko róg etykiety. Sam kupiłem takie (ha na zdjęciu aukcji) 40A, a przyszły w paczce z łudzącym napisem "FQTEH". Dwa dni po moim zakupie ukazał się na "aukcji" czyjś komentarz, że spaliły się (a "palą się" często na zwarcie!) przy 8A. Także wyczytałem, że też takie z naklejką 60A potrafią mieć triaki 4A(!).

    OdpowiedzUsuń
    Odpowiedzi
    1. ps. np. https://www.instructables.com/The-inner-workings-of-Counterfeit-FOTEK-SSRs/ Moje DA 75A mają dwie śruby, DA 40A ma jedną - ta druga nieprzewiercona/niewykorzystana, moje FQTEH zostały wymienione przez sprzedawcę bez większej dyskusji ,miał ich 10000 do sprzedania, po co mu negatywy, na "FOTEK" o wyglądzie jak w artykule - ale nadal mam wątpliwości.

      Usuń
    2. Rad nierad wygrzebałem marketowy grzejnik - konwektor. Ma tę zaletę, że ma włączniki opisane 750W,1250W i 2000W. Trochę zabawy w elektro-mechanika. "FOTEK" 40 DA-H ("-H" 90-480VAC) przykręciłem do znalezionej blachy (80x100x0.7 mm) z czasów jak InPost przyklejał je do listów. Blacha nawet jakaś malowana a nie goły ocynk. SSR ma wymiary 45x60mm - czyli blacha nie jest nawet 2x większa niż SSR i w dodatku leżło to na kartonie na stole, uniesione płasko ledwo na łbach śrub.
      Aha, posmarowałem nieco pastą białą termo H, taka tania silikonowa.
      Do blachy pazurkiem ze srubą - takim z puszki do karton-gipsu przymocowałem czujnik (NTC 10k) od regulatora z Alle "W1209" aby widzieć co się dzieje.
      Zacząłem od 750,1250 i szybko przeskoczyłem na "2000W".
      Start: T0#22.6*; T+20min#42.5*; T+30min#44.5* i już wolno rosło.
      Przełączyłem grzejnik na "1250W" i patrzyłem czy będzie spadać. po ~10min spadło na 39.5*, po 20min spadło na 38.5* się utrzymywało. Chłodzenia żadnego wymuszonego nie stosowałem. Czyli moje egzemplarze "FOTEK" (o wyglądzie napisu FOTEK jak w artykule) 40A DA-H są całkiem OK na moc z napisu grzejnika "2000W" (większych obciążeń nie będę stosował na razie, a w warsztacie 2x2m zrobiło mi się za ciepło ;) ).
      Może komuś się taka info przyda, skoro ja takiej szukałem zastanawiając się jak wielki radiator szykować.

      Usuń