Jelaskan apa perbedaan rs232 dan rs485

Memilih protokol komunikasi untuk komunikasi antara mikrokontroler dan perangkat periferal adalah bagian penting dari sistem embedded microcontroller.

Ini penting karena kinerja keseluruhan dari aplikasi yang diprogramkan tergantung pada sarana komunikasi yang terkait dengan pengurangan biaya, transfer data yang lebih cepat, jangkauan jarak jauh dan lain – lain.

Jelaskan apa perbedaan rs232 dan rs485

Dalam tutorial sebelumnya kita telah belajar tentang protokol komunikasi I2C dan protokol komunikasi SPI pada pemrograman Arduino. Untuk saat terdapat protokol komunikasi serial yang dapat diaplikasikan juga di Arduino yang disebut dengan komunikasi RS-485.

Protokol ini menggunakan komunikasi serial asinkronus. Keuntungan utama dari RS-485 adalah transfer data jarak jauh yang mencapai 1200 meter antara dua perangkat (master dan slave). Dan pengaplikasian banyak di dunia industri otomotif, manufacture, aeorospace, kereta api, dan lain sebagainya.

Pada artikel ini akan dibahas tentang cara mengakses komunikasi RS-485 antara dua Arduino untuk mengendalikan kecerahan LED (fading LED) yang terhubung ke Slave Arduino dari Master Arduino dengan mengirimkan nilai ADC melalui Modul RS-485. Potensiometer 10k digunakan untuk memvariasikan nilai ADC di Master Arduino.

RS-485 Protokol Komunikasi Serial

RS-485 adalah protokol komunikasi serial asinkron yang tidak memerlukan pulsa clock. Komunikasi ini menggunakan teknik yang disebut sinyal diferensial untuk mentransfer data biner dari satu perangkat ke perangkat lainnya.

Jadi apa yang dimaksud dengan metode transfer sinyal diferensial?

Metode sinyal diferensial bekerja dengan membuat tegangan diferensial dengan menggunakan 5V positif dan negatif. Ini menyediakan komunikasi Half-Duplex saat menggunakan dua kabel dan Full-Duplex membutuhkan 4 kabel merangkak .

Keuntugan menggunakan metode ini antara lain :

  • RS-485 mendukung kecepatan transfer data dengan maksimum 30Mbps
  • Mendukung untuk transfer data dengan jarak yang mencapai 1200 meter lebih panjang dibandingkan dengan protokol RS-232
  • Keuntungan utama RS-485 dibandingkan RS-232 adalah lebih banyak slave device dengan Master device tunggal sementara RS-232 hanya mendukung slave device tunggal
  • Mendukung perangkat yang mencapai 32 slave device yang terhubung ke protokol RS-485
  • Keuntungan lain dari RS-485yaitu kebal terhadap kebisingan karena menggunakan metode sinyal diferensial dalam transfer datanya
  • Kecepatan data RS-485 lebih cepat dibandingkan dengan protokol I2C

Perbedaan antara Modbus dan RS485

MODBUS merupakan protokol komunikasi berstandar internasional untuk pertukaran data antar perangkat (master-slave) dari berbagai vendor yang berbeda yang biasanya digunakan untuk keperluan industri.

RS485 merupakan interface fisik, hanya perangkat keras atau hardware saja.

Dalam keadaan normal, 2 perangkat master dan slave saling mengirimkan data secara 2 arah melalui protokol MODBUS.

Jenis dari Protokol MODBUS antara lain MODBUS RTU, MODBUS ASCII, dan MODBUS TCP 3 mode.

Untuk interface perangkat keras yang berupa fisik yang sering digunakan yaitu port komunikasi serial jenis RS232, RS422, dan RS485.

Dan MODBUS TCP adalah untuk mengikuti tren perkembangan dunia saat ini, dan apa pun dapat dihubungkan dengan jaringan Ethernet atau Internet untuk mengirim data atau IOT.

Sehingga MODBUS TCP mode sebagai interface perangkat keras dari mode ini yaitu port Ethernet, yang dimana merupakan port yang ada pada setiap komputer.

RS-485 untuk penggunaan di Arduino

Untuk menggunakan RS-485 di Arduino, modul yang disebut 5V MAX485 TTL ke RS485 yang didasarkan pada Maxim MAX485 IC diperlukan karena memungkinkan komunikasi serial jarak jauh 1.200 meter dan dua arah. Dalam mode setengah dupleks ia memiliki kecepatan transfer data 2. 5Mbps.

Modul 5V MAX485 TTL ke RS485 membutuhkan tegangan 5V dan menggunakan level logika 5V sehingga dapat dihubungkan dengan port serial perangkat keras mikrokontroler seperti Arduino.

Jelaskan apa perbedaan rs232 dan rs485

RS-485 ini memiliki fitur sebagai berikut:

  • Tegangan kerja menggunakan 5 Vdc
  • Menggunakan ic Chip MAX485
  • Konsumsi daya yang rendah untuk komunikasi RS485
  • Transceiver terbatas laju perubahan tegangan
  • Menggunakan Terminal Block 2P 5.08mm
  • Kabel komunikasi RS-485
  • Dapat dikendalikan menggunakan mikrokontroler
  • Ukuran PCB 44 x 14 mm

Pin-Out dari RS-485:

PIN FUNGSI
VCC 5V
A Non-inverting Receiver Input
Non-Inverting Driver Output
B Inverting Receiver Input
Inverting Driver Output
GND 0V
R0 Receiver Out (RX pin)
RE Receiver Output (LOW-Enable)
DE Driver Output (HIGH-Enable)
DI Driver Input (TX pin)

Modul RS-485 ini dapat dengan mudah dihubungkan dengan Arduino. Gunakan port serial Arduino pada pin 0 (RX) dan 1 (TX) (pada arduino UNO, NANO). Pemrogramannya juga sederhana cukup gunakan Serial.print () untuk menulis ke RS-485 dan Serial.Read () untuk membaca dari RS-485.

Baca juga :  Tutorial Arduino mengakses module Rotary Encoder

Komponen yang Dibutuhkan

  • Arduino UNO atau Arduino NANO
  • MAX485 TTL ke RS485 Converter Module
  • Potensiometer 10K
  • Layar LCD 16×2
  • LED
  • Papan tempat memotong roti
  • Menghubungkan Kabel
  • Dalam tutorial ini Arduino Uno digunakan sebagai Master dan Arduino Nano digunakan sebagai Budak. Dua
  • Papan Arduino digunakan di sini sehingga diperlukan dua Modul RS-485.

Diagram rangkaian antar Arduino

Jelaskan apa perbedaan rs232 dan rs485

Wiring antar Arduino UNO Master dan Slave menggunakan RS-485:

RS-485 ARDUINO UNO
DI D1
DE D8
RE D8
R0 D0
VCC 5V
GND GND
A To A of Slave RS-485
B To B of Slave RS-485

Wiring antara LCD 16×2 dan Arduino Uno:

Arduino Uno Driver LCD PCF8574
A5 SDA
A4 SCL
GND GND
5V VIN

Pemrograman Arduino UNO & Arduino Nano untuk Komunikasi Serial RS485

Untuk pemrograman kedua papan, Arduino IDE digunakan. Tetapi pastikan Anda telah memilih PORT yang sesuai dari Tools -> Port dan Board dari Tools -> Board.

Di sisi Master, cukup ambil input Analog di pin A0 dengan memvariasikan potensiometer dan SerialWrite nilai-nilai tersebut ke bus RS-485 melalui Port Serial Perangkat Keras (0,1) ke sisi Slave.

Kode Program Master RS485

//Program master RS485 int Pin_enable = 8; int potensio = A0; int hasilbacapotensio =00 ; void setup() { Serial.begin(9600); pinMode(Pin_enable, OUTPUT); pinMode(potensio,INPUT); delay(10); digitalWrite(Pin_enable, HIGH); } void loop() { int hasilbacapotensio = analogRead(potensio); Serial.println(hasilbacapotensio); delay(100); }

int hasilbacapotensio =00 ;

  pinMode(Pin_enable, OUTPUT);

  digitalWrite(Pin_enable, HIGH);

    int hasilbacapotensio = analogRead(potensio);

    Serial.println(hasilbacapotensio);    

Kode Program Slave RS485 

#include <LiquidCrystal_PCF8574.h> #include <Wire.h> int enablePin = 8; LiquidCrystal_PCF8574 lcd(0x20); // dapat dicek menggunakan i2c scanner atau i2c finder void setup(){ Serial.begin(9600); //lcd setup lcd.begin(16, 2); // initialize the lcd lcd.setBacklight(255); lcd.setCursor(00, 00); lcd.print("nyebarilmu.com"); lcd.setCursor(00, 1); lcd.print(" RS485"); delay(3000); lcd.clear(); pinMode(enablePin, OUTPUT); delay(10); digitalWrite(enablePin, LOW); } void loop() { while (Serial.available()) //jika ada data yang masuk { lcd.clear(); int pwm = Serial.parseInt(); //data berupa interger dari master RS485 int konvert = map(pwm,00,1023,00,255); //pengubahan nilai dari 0-1023 ke nilai 0-255 lcd.setCursor(00,00); lcd.print("PWM DARI MASTER"); lcd.setCursor(00,1); lcd.print(konvert); //tampilkan nilai delay(100); } }

#include <LiquidCrystal_PCF8574.h>

LiquidCrystal_PCF8574 lcd(0x20); // dapat dicek menggunakan i2c scanner atau i2c finder

  lcd.begin(16, 2); // initialize the lcd

  lcd.print("nyebarilmu.com");

  pinMode(enablePin, OUTPUT);

  digitalWrite(enablePin, LOW);  

  while (Serial.available())                //jika ada data yang masuk

        int pwm = Serial.parseInt();            //data berupa interger dari master RS485

        int konvert = map(pwm,00,1023,00,255);    //pengubahan nilai dari 0-1023 ke nilai 0-255

        lcd.print("PWM DARI MASTER");

        lcd.print(konvert);                        //tampilkan nilai

Incoming search terms: