Tutorial Modbus RTU Arduino
Oleh : Fuad Hasan
1. Modbus RTU Serial
Software yang dibutuhkan :
- Arduino versi 0023
- Modscan
Material yang dibutuhkan
- Arduino uno
- Shield rs485
- 2 buah Resistor 10k
Upload sketch arduino dibawah ini:
(Sebelum Upload posisikan dipswitch 4 itu ke posisi
off)
/*
Author : Fuad Hasan
Created : 9 Mei 2017
*/
#include <ModbusSlave.h>
ModbusSlave mbs;
/*register addres modbus*/
enum { Jumlah yang dipolling
MB_40000,
MB_40001,
MB_40002,
MB_REGS //jumlah addres yang dipolling sebanyak 3
};
int regs[MB_REGS];
unsigned long wdog = 0; /* watchdog */
unsigned long tprev = 0; /* previous time*/
void setup()
{
/* the Modbus slave configuration parameters */
const unsigned char SLAVE = 10; /* slaveId */
Configuration baudrate dan parity
const long BAUD = 9600; /* baud rate */
const char PARITY = 'n'; /* n=none; e=even; o=odd */
const char TXENPIN = 2; /* output driver enable pin */
/* Second step MBS: configure */
[Link](SLAVE, BAUD, PARITY, TXENPIN);
[Link](regs, MB_REGS);
pinMode(13, OUTPUT);// digital output
pinMode(12, INPUT);//digital input
}
void loop()
{
/* Third and las step MBS: update in loop*/
if([Link](regs, MB_REGS))
wdog = millis();
if ((millis() - wdog) > 1500);
// DIGITAL INPUT
regs[MB_40000] = digitalRead(12);
// DIGITAL OUTPUT
digitalWrite(13, regs[MB_40001]);
//ANALOG INPUT
regs[MB_40002] = analogRead(A0);
Setelah selesai upload sukses. Rangkai seperti
gambar di bawah ini. (Posisikan dipswitch posisi
ON)
A0
GND
Lakukan pengujian dengan software modscan :
1. Tancapkan usb to rs485 to pc
2. Cek port com detek di com brp??
3. Run modscan -> connection -> connect
Pilih com sesuai usb to rs485
Sudah sesuai dengan koding arduino
4. Klik OK
5. Sesuaikan dengan gambar dibwah ini
Sudah sesuai dengan koding arduino
Jumlah yang di polling
6. Lakukan uji control led pin 13 (di board arduino
sudah ada lednya). Klik 2x addres 40002 di modscan
Rubah jadi 1 valuenya. Klik update.
Untuk offkan led rubah jadi 0
7. Lakukan uji digital input. Ambil kabel jumper
colokkan ke 5v atau 3,3v di board arduino kemudian
satunya ke pin 12
A0
GND
5V
Saat di kasih tegangan 5v di pin 12
maka value berubah jadi 1
8. Lakukan uji analog input. Colokkan kabel jumper
yang 5v tadi ke pin A0.
Saat di kasih tegangan 5v di pin AO
maka value berubah jadi 1023
Jika dikasih tegangan 2,5 maka
valuenya setengahnya dari 1023