Sterowanie roletami - na co wymienić Arduino?

Hej,

posiadam w rozdzielni:

  • przewody z przycisków naściennych monostabilnych (3 pozycje)
  • przewody z rolet

Obecnie połączyłem to wszystko do Arduino Mega oraz do przekaźników, napisałem program, który na podstawie pozycji włączników ustawia odpowiednie przekaźniki. Dodatkowo program komunikuje się przez MQTT do HA.

Wszystko super działa, ale elektronicznie jestem na zbyt niskim poziomie i nie ogarniam problemu takiego, że silniki rolet najprawdopodobniej generują jakieś zakłócenia gdy się zatrzymują/zmieniają kierunek - bo co pewien czas wszystko się zawiesza…

W podobny sposób mam zrobione oświetlenie i ono działa bez zarzutu.

Problemem na 99% są silniki rolet.

Pytanie - czy ktoś miał podobny problem?
Czy może warto zamienić arduino + przekaźniki na coś gotowego (nie chcę stracić komunikacji MQTT)?

Próbowałem dodać gasiki RC do przekaźników, ale albo robię to źle, albo nie rozwiązuje to sprawy.

pozdrawiam

Mam dokładnie taki sam problem ze sterownikiem rolet na Arduino.

8 rolet jest podłączonych do przekaźników (z optoizolacją) sterowanych stanem niskim, którymi zarządza Arduino Mega z modułem Ethernet W5500. Program załadowany to sterownik rolet czyli RollerShutterSplit # gryzli133

W Arduino wykorzystałem tylko polecone PINy, więc przyciski obsługiwane są przez A0-A15, a przekaźniki przez 22-37. Całość jest spięta z HA przez MySensors (MQTT).

Jak działa jest super ale co jakiś czas podczas włączenia silnika rolety (bez znaczenia której i czy z przycisku czy z aplikacji) całość się zawiesza. Wymieniłem sterownik oraz profilaktycznie również moduł W5500. Nie wiem o co chodzi ?

Też szukam pomysłu - może jakieś sugestie ??
Czy faktycznie może to być wpływ silników, jeżeli przekaźniki mają optoizolację

hej, ja robiłem różne rozwiazania - wątek opisany tutaj - https://www.elektroda.pl/rtvforum/topic3649931-60.html

wydawało mi się, że dodanie opóźnienia rozwiązało sprawę, jednak nie… dlatego chciałem zmienić rozwiązanie oparte o arduino na coś innego, pewnego. Mam dość kłótni z żoną i chchiałem to jak najszybciej przerobić i mieć spokój…

Takie zachowanie w większości przypadków jest z powodu tego, że indukcyjność cewki przekaźnika “odkopuje”. Zastosowanie przekaźników SSR poprawia sytuację - nie ma cewki i przełącza w zerze.
Jakim obwodem sterują przekaźnik w roletach AC? DC? - od tego zależy dobór.

ja mam każdą roletę podpiętą do kombo: SSR daje napięcie na zwykły przekaźnik.
Zwykły przekaźnik steruje kierunkiem (góra/dół).

W kodzie zawsze przed zmianą kierunku wyłączam napięcie poprzez SSR i odczekuję 200ms.

rolety działają oczywiście na AC.
W przyciskach do sterowania mam 5V DC

Rolety mam na 230V. Zasilanie silnika każdej rolety podpięte na przemian przez wyjścia przekaźnika NO i NC, co zabezpiecza przed równoczesnym podaniem napięcia na oba kierunki. Przekaźniki 12V sterowane stanem niskim - swoją drogą ciekawe czy sterowanie stanem wysokim coś by zmieniło (nie mam jednak jak tego sprawdzić)?

EDIT:

@bimki
Czy próbowałeś uruchomić przekaźniki przez ekspander np. PCF8575? Może to wyeliminowało by zakłócenia? Mam jeden i mógłbym spróbować ale niestety nie ogarnę kodu do Arduino.

Opisywane przez kolegów problemy na 90% wynikają z niewłaściwie zrobionego zasilania (szczególnie sekcji przekaźników). Żadne czary z ekspanderem i zmianami stanów na to nie pomogą.
Kolejne to słabo “odkłócone” cewki przekaźników ( to są gołe przekaźniki?).
Przy roletach - ze względu na przełączane prądy - najmniej prawdopodobnym są zakłócenia od przełączanego obwodu.
Bez schematu to tylko spekulacje.

2 polubienia

Jeden zasilacz, masa Arduino połączona z masą płytki przekaźników (sterowanie stalem niskim).
Jakieś sugestie ?

Rozwiązanie na szybko i dla testu - użyć 2 osobne zasilacze, połączona pozostanie tylko masa.

Tak zrobiłem na początku ale nie robiło to różnicy, więc zostawiłem jeden większy zasilacz.

DC+DC- to jest strona przekaźników i daj osobne zasilanie . Na pinach do zasilania transoptorów jest GND i 5V - te piny zasil z arduino.
GND i DC- nie powinny być połączone, inaczej nie będzie separacji.
Na tej płytce nie widzę bocznikowania cewki diodą.
Po pobieżnej analizie schematu mam wątpliwości czy jest w ogóle separacja.

… edit - z arduino podłączasz tylko +5V do złącza goldpin, sterujesz stanem niskim, osobny zasilacz na DC+/-
@szopen zobacz schemat … zgadza się? :slight_smile:

1 polubienie

Po pobieżnej analizie schematu mam wątpliwości czy jest w ogóle separacja.

Nie jestem elektronikiem ale zgodnie z informacją ze sklepu, w którym kupiłem płytkę - optoizolacja jest:

z arduino podłączasz tylko +5V do złącza goldpin, sterujesz stanem niskim, osobny zasilacz na DC+/-

Nie mogę zostawić tylko +5V, bo odłączenie GND pomiędzy Arduino i płytką przekaźników, powoduje, że wszystkie przekaźniki przechodzą w stan włączony… Po Twojej wskazówce przyjrzałem się jeszcze raz opisowi na botlad i jest tam " +5V - zasilanie optoizolatora", a tego nie miałem podłaczonego. Dodatkowo piszą też “Na płytce znalazło się złącze goldpin, do którego podłączone są wszystkie wejścia cyfrowe i linie zasilania, a także przetwornica impulsowa DC/DC typu buck (obniżająca napięcie), której zadaniem jest dostarczenie do obwodów sterujących potrzebnego napięcia dodatkowego równego 5 V.

Przydałby się ktoś dobry z elektroniki, aby to ostatecznie wytłumaczyć ( @szopen :pray: ) ale wygląda na to, że +5V trzeba jednak podłączyć z Arduino aby zasilić optoizolatory.

Wystarczy zwykły :wink:
Albo schemat jest źle odtworzony albo płytka nie ma separacji.


Trzeba odszukać wiarygodny schemat albo sprawdzić na płytce czy i jak połączone są ze sobą węzły
5V (w czerwonym kółku) i Gnd (w niebieskim)?
Czerwona linia pokazuje jak będzie przepływał prąd przez transoptor gdy zasilimy wejście tylko z 5V arduino:
A 5V > rezystor > dioda transoptora > wyjście arduino > gnd arduino A GND - czyli obwód zamknięty (prąd płynie - dioda transoptora świeci.
Warunek jest jeden: trzeba sterować stanem niski, wyjście w trybie opendrain bez pullup.

Dwa zasilacze: jeden tylko do +12V płytki, drugi tylko do arduino. 5V arduino połączone z 5v płytki przek. (tylko).

Może ten schemat pokaże lepiej o co chodzi

Takiego modelu płytki przekaźników nie miałem w ręce, na płytkach gdzie jest możliwa faktyczna separacja obwodów zwykle jest fabryczna zworka (wymagająca usunięcia dla uzyskania separacji, tu prawdopodobnie konstrukcja jest inna, wydaje się że stosowanie transoptorów jest tylko chwytem marketingowym, bo konstrukcja nie wygląda na taką z możliwą faktyczną pełną separacją obwodów).

ALE
w/g tego schematu przekaźniki są zasilane bezpośrednio z 12V, a ULN2803 zawiera diody tłumiące przepięcia pochodzące od cewek.

Przy sterowaniu stanem niskim połączenie masy nie jest konieczne - wspólne z arduino może być jedno odniesienie - tylko na poziomie 5V ostatni rysunek @RobinI30 chyba to tłumaczy dość jasno, zasadniczo by uzyskać pełną separację należałoby zasilić LEDy transoptorów z płytki arduino (na schemacie nie ma zworek, więc nie wiem czy to możliwe bez cięcia ścieżek, a nie wiem czy w ogóle możliwe - to wymaga analizy PCB).

W takim przypadku może lepiej byłoby zasilić ardujno z płytki przekaźnikowej za stabilizatora 5V GND jednego zasilacza? tzn. nie podawać 12V na arduino.
16rel power

1 polubienie

LM2576 ma aż 3A obciążalności z odpowiednim radiatorem, więc to sensowne posunięcie (bo nawet bez radiatora swobodnie zasili obwody sterujące na PCB przekaźników oraz płytkę arduino).

Podłączyłem całość zgodnie z Waszymi sugestiami i zaczynam testowanie.
Mam nadzieję, że nic się nie usmaży, bo zbliżają się upały, a całość jest na poddaszu.

Ostatnie pytanie, czy arduino jest zasilane gdy odłączysz USB?

Tak - w tej chwili Arduino jest zasilane dokładnie tak jak sugerowałeś tj. bezpośrednio z płytki przekaźników i na razie wszystko działa.

Hah… czyli separacja galwaniczna na tej płytce to lipa :slight_smile:
Gdyby była to by nie działało.