arduino kali ini akan diupload sketch modbus RTU yang mana koneksi menggunakan RS485.
ic yang digunakan untuk komunikasi dengan PC atau laptop adalah IC MAX485.
untuk konfigurasi sambungan bisa di cek artikel http://puaks.blogspot.co.id/2014/03/tutorial-membuat-rtu-arduino-protokol.html.
kemudian disambungkan menggunakan usb to RS485
seperti gambar dibawah ini.
sudah cek TOKOPEDIA??? yang jual banyak.
jangan sampai tertukar data+ dan data-.
berikut sketnya:
int relay1=0;
#include <ModbusSlave.h>
ModbusSlave mbs;
/*REGISTER ADDRES MODBUS RTU*/
enum {
MB_40000,
MB_40001,
MB_40002,
MB_REGS /* total number of holding registers on slave */
};
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 = 1; /* slaveId */
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 */
mbs.configure(SLAVE, BAUD, PARITY, TXENPIN);
mbs.update(regs, MB_REGS);
pinMode(13, OUTPUT);
pinMode(3, INPUT);
}
void(* resetFunc) (void) = 0;
void loop()
{
/* Third and las step MBS: update in loop*/
if(mbs.update(regs, MB_REGS))
wdog = millis();
if ((millis() - wdog) > 1500);
//digital input
regs[MB_40000] = digitalRead(3);
//analog input
regs[MB_40001] = analogRead(A0);
//digital output
digitalWrite(13, regs[MB_40003]);
// control pulse
relay1=digitalRead(13);
if(relay1==HIGH)
{
delay(900); //setting pulse
digitalWrite (9, LOW);
delay(100);
resetFunc();
}
}
setelah selesai upload sketch, sekarang waktunya uji alat menggunakan software Modscan
klik usb to rs485 untuk selanjutnya
Komentar ini telah dihapus oleh pengarang.
BalasHapus