Contoh Code Arduino Modbus RTU ESP32 sebagai Slave
Tool yang diperlukan
sotware
- Arduino IDE
Hardware :
- PC/laptop
- ESP32 yg sudah di program sbg Master
- ESP32 yg akan di program sbg Slave
- modul TTL to rs485 automatic 2 pcs
Pada contoh berikut ESP32 sebagai Modbus slave dengan ID=1.
komunikasi melalaui RX2-TX2 pada pin GPIO 16 (RX2) dan GPIO 17 (Tx2) ESP32.
#include <ModbusRTU.h>
#define RXD2 16
#define TXD2 17
#define DIR 2 // pin untuk arah modul ttl-rs485 non automatic
#define REGN 2
#define SLAVE_ID 1
ModbusRTU mb;
void setup() {
Serial.begin(9600);
Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
mb.begin(&Serial2, DIR);
mb.slave(SLAVE_ID);//Initializng modbus slave device with ID 1
//buat 4 buah holding register
mb.addHreg(0); // add the register 40001
mb.addHreg(1); // add the register 40002
mb.addHreg(2); // add the register 40003
mb.addHreg(3); // add the register 40004
// mb.Hreg(1, 123); // isi register 40002 dgn nilai 123
}
unsigned long lastMillis = 0;
void loop()
{
mb.task();
yield();
long currentMillis = millis();
if (currentMillis - lastMillis > 5000)
{
//tampilkan data register
Serial.println(mb.Hreg(0x0)); //register 40001
Serial.println(mb.Hreg(0x1)); //register 40002
Serial.println(mb.Hreg(0x2)); //register 40003
Serial.println(mb.Hreg(0x3)); //register 40004
lastMillis = currentMillis;
}
}
Posted on 08/04/2024, in Arduino. Bookmark the permalink. Comments Off on Contoh Code Arduino Modbus RTU ESP32 sebagai Slave.