Skocz do zawartości

Arduino - Modbus RTU (rs232 i rs485)


Leonarsen

Pomocna odpowiedź

Witam,

buduję układ przesyłający temperaturę oraz wilgotność do sterownika PLC po Modbusie RTU dla standardu RS485.

Jak dotąd udało mi się uruchomić układ ale w standardzie RS232.

#include <Modbusino.h>
#include <DHT11.h>



/* Initialize the slave with the ID 1 */
ModbusinoSlave modbusino_slave(1);
/* Allocate a mapping of 10 values */
uint16_t tab_reg[10];
uint16_t tab_req[10];
int pin=4;
DHT11 dht11(pin); 


void setup() {
   /* The transfer speed is set to 115200 bauds */
   modbusino_slave.setup(115200);
}

void loop() {

 int err;
 float temp, humi;
 int t = int(temp);
 int h = int(humi);
 if((err=dht11.read(humi, temp))==0)
   {
     tab_reg[0] = t;
     tab_reg[1] = h;
   }


   modbusino_slave.loop(tab_reg, 10);
}

biblioteka modbus: https://github.com/stephane/modbusino

Mam pytanie jak przerobić powyższy kod tak żeby działał dla RS485.

Wiem że muszę użyć dodatkowego pinu sterującego dla nadawania i odbierania, niestety nie wiem jak to zaimplementować.

Czy da się przerobić w łatwy sposób powyższy kod

Pozdrawiam

Link do komentarza
Share on other sites

"Rułe" się ustawia do nadawania lub odbioru, także nie jest to dokładnie to samo co przedłużenie RX/TX. Najprościej zainstalować bibliotekę ArduinoRS485 i są przykłady, jest to biblioteka modbus do niej, nie wiem czy to ta sama, którą już masz. Typowo w tej jest to pin 2 do ustawiania kierunku, można sobie wpisać w RS485.h inny. Po wpisaniu w google Arduino RS485 schematic znajduje obrazki, gdzie najczęściej jest używany pin 8.

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.