Arduino – ModBus RS485 RTU Master

Het is mogelijk een arduino is te gebruiken als ModBus master, met ModBus RS485 RTU kan je datalijnen gebruiken tot ca. 1200m, dat is erg interessant!

Wat je nodig hebt is een RS485 naar TTL converter om het differentiele signaal van de RS485 bus om te zetten naar TTL signalen voor de Arduino (en andersom).

Hardware RS485 Module Shield

BESTELLEN

Schema

Sluit de RS485 Module aan zoals hieronder aangegeven.

Of met een losse RS485 chip:


Scripts

Wat heb je nodig?

1) Arduino Modbus bibliotheek (smarmengol), ik heb na lang zoeken en uitproberen eindelijk een bibliotheek gevonden die goed werkt.

Script

Hieronder een script om een modbus slave uit te lezen, de baudrate, register adres, aantal bytes, modbus functie etc. kunnen in de code aangepast worden.

Console:

Script met I2C LCD display

Om de bus niet te veel te vervuilen met onnodige data, kan men ook de uitgelezen waarde op een display zetten, hieronder is een voorbeeld i.c.m. een I2C LCD display 16×2

Script met softwareserial

Het script hieronder gebruikt de softwareserial om te communiceren met een modbus apparaat en zet de uitslag neer in de console (hardware serial)

(dit is uit het voorbeeldscript genomen, maar het werkt (nog) niet, als iemand weet waar het aan ligt laat het aub weten)