❗ Bukan Cuma PLC! Arduino Mega Bisa Baca Sensor 4–20 mA (Modbus RTU – Industrial Approach)

 

1️ Tujuan Praktikum

Setelah praktikum ini, peserta mampu:

  • Memahami pembacaan sensor industri 4–20 mA menggunakan Arduino Mega
  • Menggunakan Modbus RTU (RS485) sebagai standar komunikasi industri
  • Mengkonfigurasi dan membaca converter Analog 4–20 mA ke Modbus RTU
  • Menerapkan alur industri yang benar (controller → field device)

2️ Dasar Teori Singkat

🔹 Sensor 4–20 mA di Industri

Sensor 4–20 mA digunakan karena:

  • Tahan noise
  • Stabil untuk jarak jauh
  • Mudah mendeteksi fault (0 mA = error)

🔹 Kenapa Menggunakan Modbus RTU?

Pendekatan industri tidak membaca arus langsung ke mikrokontroler, melainkan:

  • Sensor → converter → data digital (Modbus)
  • Lebih aman, rapi, dan scalable

3️ Arsitektur Sistem (WAJIB DIPAHAMI)

🔧 Alur Sistem yang Digunakan

❗ Bukan Cuma PLC! Arduino Mega Bisa Baca Sensor 4–20 mA (Modbus RTU – Industrial Approach)

📌 Catatan penting:
Arduino tidak membaca 4–20 mA secara langsung, tetapi membaca register Modbus dari converter.

4️ Alat dan Bahan (REVISI)

🔹 Hardware

  • Arduino Mega 2560
  • Sensor THD WD1-C (Temperature & Humidity, output 4–20 mA)
  • Analog 8CH to Modbus RTU Converter – Waveshare
  • TTL to RS485 Converter – Waveshare
  • Power supply 24V DC (sensor & converter)
  • Kabel jumper & kabel RS485 (A/B)

🔹 Software

  • Arduino IDE
  • Library Modbus Master (contoh: ModbusMaster)

5️ Wiring Sistem

🔹 A. Arduino Mega → TTL to RS485

Arduino Mega TTL–RS485
TX1 (18) TX
RX1 (19) RX
GND GND
5V VCC

🔹 B. TTL to RS485 → Converter Analog Waveshare

RS485 Line Converter
A (D+) A
B (D-) B

📌 Pastikan:

  • Baudrate sama
  • Slave ID diketahui

🔹 C. Converter Analog → Sensor THD WD1-C

Sensor THD WD1-C Converter
+24V +24V
I+ (4–20 mA) AI+
I− AI−
GND GND

6️ Konfigurasi Converter Analog Waveshare

Contoh parameter umum:

  • Baudrate : 9600
  • Data bit : 8
  • Parity : None
  • Stop bit : 1
  • Slave ID : 1

Contoh mapping register (contoh, sesuaikan datasheet):

  • Channel 1 → Input Register 30001
  • Nilai dalam raw / scaled

7️ Program Arduino Mega (Modbus RTU)

🔹 Contoh Program Dasar

#include <ModbusMaster.h>




#define RX_PIN 19

#define TX_PIN 18




ModbusMaster node;




void setup() {

  Serial.begin(9600);

  Serial1.begin(9600);   // UART1 Arduino Mega

  node.begin(1, Serial1); // Slave ID = 1

}




void loop() {

  uint8_t result;

  uint16_t data;




  result = node.readInputRegisters(0x0000, 1); // Register 30001




  if (result == node.ku8MBSuccess) {

    data = node.getResponseBuffer(0);

    Serial.print("Raw Value: ");

    Serial.println(data);

  } else {

    Serial.println("Modbus Read Failed");

  }




  delay(1000);

}

8️ Pengujian Praktikum

  1. Nyalakan power supply 24V
  2. Jalankan program Arduino
  3. Ubah kondisi suhu/kelembaban sensor
  4. Amati perubahan nilai register di Serial Monitor

🔹 Expected Result

  • Nilai berubah stabil
  • Tidak ada lonjakan ekstrem
  • Data konsisten dengan kondisi sensor

9️ Kesalahan Umum (WAJIB DIHINDARI)

❌ Salah wiring A/B RS485
❌ Ground tidak common
❌ Salah register address
❌ Baudrate tidak sama
❌ Menganggap Arduino membaca arus langsung

🔟 Kesimpulan

Dengan pendekatan ini, Arduino Mega dapat membaca sensor industri 4–20 mA dengan cara yang BENAR secara industri, yaitu melalui Modbus RTU RS485. Metode ini aman, stabil, dan cocok untuk monitoring, data logging, dan IoT industri.

🚀 Pengembangan Lanjutan

  • Arduino Mega → HMI / SCADA
  • Arduino → Raspberry Pi (IoT Gateway)
  • Logging ke database / cloud

 

Related Articles

Leave a Reply