Skocz do zawartości

Moduł przekaźników RS485


qro9qs

Pomocna odpowiedź

Zakupiłem moduł 16 przekaźników sterowanych po RS485 oraz konwerter do Arduino na RS485. 

Wcześniej używając płytki 8 przekaźnikowej zakupionej w kraju używałem poniższego kodu dla załączania i wyłączania konkretnych przekaźników:

#include <ArduinoRS485.h>
#include <ArduinoModbus.h>

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("Modbus RTU Client Kitchen Sink");

  if (!ModbusRTUClient.begin(9600)) {
    Serial.println("Failed to start Modbus RTU Client!");
    while (1);
  }
}

void loop() {
ModbusRTUClient.holdingRegisterWrite(2,0x0001,0x0100);   //ustawiony adres modułu 2, przekaźnik nr 1, załączenie przekaźnika
delay(1000);
ModbusRTUClient.holdingRegisterWrite(2,0x0001,0x0200);   //ustawiony adres modułu 2, przekaźnik nr 1, wyłączenie przekaźnika
delay(1000);
ModbusRTUClient.holdingRegisterWrite(2,0x0002,0x0100);   //ustawiony adres modułu 2, przekaźnik nr 2, załączenie przekaźnika
delay(1000);
ModbusRTUClient.holdingRegisterWrite(2,0x0002,0x0200);   //ustawiony adres modułu 2, przekaźnik nr 2, wyłączenie przekaźnika
delay(1000);
}


W jaki sposób może to być rozwiązane w tym urządzeniu? 

Zrzut ekranu 2020-03-26 o 17.28.50.png

Edytowano przez qro9qs
Link do komentarza
Share on other sites

Cóż, z rzeczy pewnych to:

  • zasilanie modułu podłączasz do zacisków "V+" i "GND",
  • swój RS485 podłączasz do "A" i "B" oraz ew. masę do GND i tyle.

Reszta zależy od specyfikacji urzadzenia. O ile wielkość zasilania widać na naklejce (7-30V o ile dobrze odczytuję pixelozę), o tyle już prędkość (baudrate) czy sam protokół RS485 są zagadką. To może być Modbus RTU jak w przypadku który pokazałeś, ale wcale nie musi. Widzę jeszcze tzw. DIP-switch po prawej - to na nim zapewne ustawiasz adres modułu na magistrali szeregowej. Bez opisu do tej konkretnej chińszczyzny będzie ciężko, bo ramki komend mogą wymagać sum kontrolnych i bez spełnienia podstawowych reguł protokołu (wysłając bajty "na głupa" z losowo wybranymi prędkościami) możesz nigdy nie dostać jakiejkolwiek odpowiedzi z modułu, nie mówiąc o wykonaniu jakiegokolwiek polecenia.

-------------------------------------------------------------------

Edit: Po 5 sekundach przy wyszukiwarce (wpisałem "ZY-K416 relay module") znalazłem coś takiego:

https://pl.aliexpress.com/item/32757520568.html

Jeżeli masz zdolności językowe i żyłkę lingwistyczno-detektywistyczną, na pewno coś zrozumiesz, bo posunęli się nawet do opisu struktury ramki danych i przykładów binarnych(!). Format bajtu to 9600, 8,1,n. Przejście z tego na funkcję robiącą komunikację w Arduino powinno być kaszką z mleczkiem 🙂 Powodzenia.

 

Edytowano przez marek1707
  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.