Komunikasi Serial Asinkron RS232 dengan Arduino

Pin 0 dan 1 Arduino memiliki fungsi khusus sebagai pin serial asinkron. Kedua pin ini terhubung dengan perangkat UART (Universal Asynchronous Receiver Transmitter) secara internal. Namun serial asinkron yang dimiliki Arduino ini level elektrikalnya adalah level tegangan TTL (Transistor-transistor Logic) dengan rentang tegangan 0 s.d 5V (tegangan 0V mewakili logika ‘0’, tegangan 5V mewakili logika ‘1’). Jika Arduino akan berkomunikasi secara serial asinkron dengan perangkat lain yang  level elektrikalnya sama, Arduino dan perangkat tersebut dapat langsung dihubungkan secara bersilang (Tx ketemu RxD, Rx ketemu TxD).

ilustrasi wiring komunikasi serial uart arduino - komunikasi serial asinkron

Nah, yang akan menjadi masalah adalah ketika Arduino akan berkomunikasi dengan perangkat lain secara serial namun level elektrikalnya berbeda, misalnya RS232, RS422 atau RS485. Jika ada studi kasus seperti ini, maka Anda akan memerlukan semacam level konverter dari level TTL ke level RS232/RS422/RS485 tersebut. Karena secara protokol komunikasi semua standar komunikasi tersebut (UART, RS232, RS422, RS485) adalah sama, yakni serial asinkron yang membutuhkan parameter komunikasi seperti baudrate, data bit, stop bit, parity dan flow control. Yang membedakan hanyalah level elektrikalnya. Level elektrikal ini hubungannya adalah dengan panjang maksimal kabel data, kekebalan data terhadap noise, dsb. Tiap standar komunikasi memiliki karakteristik yang berbeda-beda.

Komunikasi Serial Asinkron RS232 dengan Arduino

Untuk berkomunikasi dengan perangkat RS232, Arduino membutuhkan konverter TTL ke RS232. Anda dapat membuatnya dari rangkaian transistor atau menggunakan IC Max 232. Anda juga dapat membeli modul konverter TTL to RS232 yang sudah jadi jika tidak ingin repot membuat PCB-nya.

Rangkaian konverter TTL – RS232 dengan transistor

konverter serial asinkron uart ke RS232 dengan transistor

Rangkaian konverter TTL – RS232 dengan IC Max232

konverter serial asinkron uart ke RS232 dengan Max232

Modul konverter UART TTL – RS232

modul konverter uart ttl - rs232

Salah satu perangkat yang menggunakan standar komunikasi serial asinkron RS232 adalah komputer/laptop. Berhubung port serial fisik sudah tidak diadopsi pada komputer/laptop modern, maka kita akan menggunakan konverter port USB to serial untuk percobaan komunikasi antara komputer dengan Arduino. Sebagai percobaan komunikasi keduanya, saya akan menggunakan modul konverter TTL-RS232. Modul ini dapat langsung dihubungkan dengan konverter USB to serial laptop karena konektor DB modul konvertor TTL-RS232 bertipe DB-9 female sedangkan konektor konverter USB to serial di laptop bertipe DB-9 male. Untuk lebih jelasnya silahkan lihat gambar di bawah.

usb to serial vs modul konverter uart ttl to rs232

Untuk menguji komunikasi antara komputer/laptop dengan Arduino melalui protokol serial asinkron, buatlah prototipe rangkaian sebagai berikut : (perhatikan kabel USB-nya)

prototipe rangkaian usb to serial vs modul konverter uart ttl to rs232

saat di-zoom

zoom - usb to serial vs modul konverter ttl to rs232

Setelah itu, dari sisi komputer/laptop aktifkan aplikasi Hyper Terminal dan pilih port COM sesuai dengan port USB to serial dan set parameter baudrate ke 9600 bps dan flow control ke pilihan ‘none’ (atau tekan saja tombol ‘Restore defaults’). Jika belum tahu caranya bisa dibaca tutorialnya di artikel berikut. Sedangkan sisi Arduino aktifkan jendela Serial Monitor. Sebelumnya isikan sketch handler Arduino sebagai berikut untuk menangani komunikasi serial asinkron dengan komputer/laptop.

byte byteRead;

void setup() { 
Serial.begin(9600);
}

void loop() {
if (Serial.available()) {
byteRead = Serial.read();
Serial.write(byteRead);
}
}

Setelah sketch berhasil diupload ke Arduino, tibalah saatnya untuk melakukan pengujian komunikasi antara Arduino dengan komputer/laptop. Caranya, dari aplikasi Hyper Terminal ketikkan sembarang karakter dan tekan enter. Seharusnya karakter tersebut akan muncul di jendela Serial Monitor (jendela Serial Monitor adalah jendela untuk memonitor pertukaran data yang lewat di pin serial Arduino. Untuk lebih detailnya bisa dibaca disini).

tes komunikasi usb to serial vs modul konverter uart ttl - rs232 dengan arduino

Demikian tutorial kali ini tentang cara melakukan komunikasi serial asinkron RS232 dengan Arduino. Cara di atas efektif dilakukan jika Anda menjalankan IC Arduino tanpa papan Arduino. Jika IC Arduino berada di papan Arduino Anda bisa langsung berkomunikasi menggunakan port usb yang secara otomatis akan mengemulasi port serial sesudah Anda menginstal driver USB saat Anda melakukan instalasi software Arduino IDE. Untuk lebih detailnya bisa dibaca di sini. Selain dua cara komunikasi serial antara komputer/laptop dan Arduino tersebut, ada cara lain lagi, yakni menggunakan konverter USB to TTL. Caranya akan saya tulis pada artikel berikutnya.

Sebagai penutup, ingin saya sampaikan bahwa tiap standar komunikasi memiliki kelebihan dan kekurangan masing-masing. Standar komunikasi UART memiliki kelebihan sederhana secara rangkaian namun hanya efektif untuk jarak pendek (1-2 meter) dan hanya berlaku untuk sepasang perangkat saja. Sedangkan standar komunikasi RS232 kelebihannya adalah jarak kabel yang lebih panjang (bisa mencapai 25 meter), namun kekurangannya adalah standar ini hanya berlaku untuk sepasang perangkat saja dan tidak dapat digunakan untuk multi client atau multi slave. Jika menginginkan bisa berlaku untuk multi client/slave Anda harus menggunakan standar komunikasi RS422/RS485. Dua standar komunikasi terakhir perbedaannya terletak pada kekebalan noise dan jarak kabel, dimana RS485 lebih kebal noise dan jarak kabel lebih panjang, bisa mencapai 1000 m.

0 0 votes
Article Rating

Leave a Reply

81 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Lalu Fendy

assalammualikum pak—
pak saya mau tanya cara mengirim karakter string ke terminal IDE arduino—
misalnya saya punya sensor ketukan sy taruh di pin A0, terus saat saya ketuk sensor tersebut maka akan muncul tulisan misalny”sensor 1 masuk” di terminal arduino____

kalo bisa pak contoh baris kodingnya,,,
makasi sblmnya 🙂

Lalu Fendy

const int knockSensor = A2; // the piezo is connected to analog pin 0 const int threshold = 150; // threshold value to decide when the detected sound is a knock or not //const int knockSensor2 = A1; // these variables will change: int sensorReading = 0; // variable to store the value read from the sensor pin void setup() { Serial.begin(9600); // use the serial port } void loop() { // read the sensor and store it in the variable sensorReading: sensorReading = analogRead(knockSensor); // if the sensor reading is greater than the threshold: if (sensorReading >= threshold) {… Read more »

Muthi Winaswarna

pak saya sudah coba komunikasi asinkron RS232 dengan arduinonya, pengiriman data dari serial to arduino udh bisa tapi kalo dibalik (dari arduino to Serial) malah gak bisa, bisa kalo Tx Rx nya dibalik, jadi nya gak pengiriman 2 arah, itu harus gimana ya?

Febriawan

Mas, mau nanya dong itu kan pada connector d9 female ada led nya, itu pemasanganannya gimana ya mas? Boleh minta gambar schematicnya mas?
Terima kasih

Febriawan

oke makasih mas infonya

KOKO

Bos mau nanya nih,bisa tidak ya kontrol arduino menggunakan video realtime.. jadi instruksi arduino nya berdasarkan video.. misal, jika kamera terdeteksi objek 1 maka lampu hijau, deteksi objek ada 3 lampu merah.. mksih bos…

fimanisa

kak kalo mau menghubungkan arduino uno dan rfid mifare rc522 ke database mysql dan web php. harus pake rs-232 juga ya? scripnya sama kah kak? dimohon bantuannya

Chairul Anwar

Mas Aji Mohon bantuan nya saya pemula di arduino ini saat ini saya sedang belajar hingga tahap mengirimkan sms dari arduino(mega) menggunakan modem wavecom dan pin rx 10 dan tx 11 ( meski ada serialkomunikasi di arduino) , secara fungsi baik sensor jarak, LCd 16×02, rtc, sudah dapat berjalan namun kendalanya ada pada pengiriman sms ini. saya sudah mengikuti beberapa tutorial namun tetap terkendala dalam pengiriman smsnya. fungsi modem mengirim sms dari hyperterminal sudah oke. program pada arduino melaui serialmonitor sudah terbaca. sudah menggunakan RS232 juga untuk komunikasi antara modem dan arduino (mega). untuk susunan kabel pin Modem DB 15… Read more »

Rusmanto

Selamat siang pak.
Saya Rusmanto dr Kudus,,mau bertanya tentang komunikasi PLC LG Master K120 dengan arduino Uno.. Saat ini saya sudah memakai perangkat converter RS 232 to TTL.Input dari PLC untuk Arduino Uno sebagai data LOGGING. Mohon Bantuannya Pak. Trima kasih

ananda

Permisi mas, mau tanya. Saya masih baru nih dgn arduino
Kalau mau membaca nilai dari RS232 nya gimana mas.
Misal :
Saya punya alat ukur dengan komunikasi serial rs232. Lalu saya hubungkan dengan cara mas ini ke arduino.
Bagaimana cara menampilkan pembacaan alat ukur yang akan dibaca di arduinonya mas ?
Minimal saya bisa tampilkan di serial monitornya.

ananda

Say fikir gak diblas mas, alhamdulillah di bls..

Mas mohon bantuannya, saya sudah coba tapi blum bisa.
Saya menggunakan tipe alat ukur yg ini, Multimeter Digital UNI-T UT61E.
lygte-info.dk/review/Review%20UNI-T%20UT61E%20UK.html

Saya mau tampilkan nilai pembacaan di alat ukur ke serial monitor arduino, mohon bantuannya mas.

bismar

permisi pak, saya mau nanya untuk komunikasi plc ke arduiono itu gmna ya?? jika menggunkan konverter rs232 to tll, settingnya gmna ya pak?? sorry msh baru belajar soalnya makasih

Irawan Tandiono

Salam… Setelah membaca artikel di atas, sangat bermanfaat… Saya ingin bertanya Mas, 1. saya mempunyai sebuah alat timbangan yg sudah ada interface rs232, bagaimana caranya agar data dalam timbangan tersebut dapat saya tampilkan ke serial monitor arduino? 2. Apakah tanpa arduino kita tetap dapat menampilkan data timbangan tersebut langsung ke PC hanyan dengan menggunakan ttl ke rs232 usb? 3. Apakah conventer ttl ke rs232 dan rs232 ke ttl itu sama? ( bisa digunakan bolak balik) 4. Timbangan saya memiliki modul printer via rs232, apakah data print / format print timbangan tersebut bisa juga kita tampilkan di arduino/ Pc ? Terima… Read more »

Irawan Tandiono

Selamat pagi, terima kasih telah membalas pertanyaan saya

Menanggapi pertanyaan no:
1. Setelah saya coba, yg tampil dalam serial monitor hanya berupa angka antara 50 – 255 saja, tidak ada data scale weight yg keluar…

Bagaimana implementasi skematic yg benar untuk komunikasi antara rs232 output ke arduino sehingga data yg tampil sesuai dengan outputnya?

Terima kasih atas perhatiaanya
Salam sukses

Irawan Tandiono

Terima Kasih atas waktu dan masukan nya…

Salam sukses

taufikmas

phisycal perkabelan,,, protocol untuk data ya,, maksih pak. kasusnya pada sensor kapasitansi , saya mau beli dari cina,, cuma di datasheetnya sensor ngasih data kalo dikirim data tertentu dari arduino. baru mau coba,,,:)

Riandanu Aldy Sadewo

mas kok aplikasi hyper terminal yang saya download di G-drive dari web mas tidak bisa diketik sembarang dan dienter ya mas? padahal udah sesuai dengan contoh yang ada di web ini mas.
terimakasih mas

Riandanu Aldy Sadewo

nah tapi kalo saya ketikkan di serial monitor arduino uno malah keluar di hyper terminal ya mas jadi kayak kebalik gini, padahal source codenya sama, gimana ya mas?

terus saya udah cek di device manager di ports(Com&LPT) cuman kebaca yang arduinonya, cara lihat com rs232nya gimana ya mas?

terimakasih

Riandanu Aldy Sadewo

saya pakainya rs232 to rs232 mas bukan usb to rs232, ada saran lain kah?

Riandanu Aldy Sadewo

saya pakainya komputer mas
malah kebalik ya mas ngirim datanya malah dari arduino ke hyper terminal

Riandanu Aldy Sadewo

wah mas udah bisa nih, tadi saya setting dua duanya arduino dan hyperterminalnya dengan baudrate 2400, nuhun ya mas maaf ngerepotin

Riandanu Aldy Sadewo

mas mau nanya lagi hehe, saya kan udah bisa nih kirim data dari hyper terminal ke arduino. nah saya pengen baca timbangan dengan output data rs 232 seperti ini dalam satu kalimat “ST,GS,-00000001g)” ke arduino terus saya tulis tipe datanya masih byte tapi dia gak mau muncul di serial monitor, apakah saya salah ditipe data ya mas?

Riandanu Aldy Sadewo

berarti kalo code yang ini saya pakai terus saya hubungkan dari arduino ke timbangan dengan koneksi rs232 bakal terbaca ya mas? soalnya saya sudah pakai code ini tetapi tidak terbaca apapun ya mas

taufikmas

siang pak,, saya rencana mau baca data sensor kapasitansi level dengan arduino,, padahal dia komunikasinya di RS232 bukan TTL,, jadi mesti di konvert duluya..

Riandanu Aldy Sadewo

mas mau nanya, kalo misal saya mau kirim data dari arduino ke hyperterminal commandnya apa ya?

Riandanu Aldy Sadewo

kalo saya kasih command “Serial.println(Serial.available());” nilai yang keluar seharusnya berapa ya mas? soalnya saya mau ngecek koneksi rs232 saya.

Bang igo

Sore mas aji…mau tanya…sy jg ambil data dr dgital weigh…tp angkanya kebalik..misal actual weightnya 5.00 kg maka yg kebaca adalah 00.5…bisa tdk sy balik datanya shg diserial monitor kebaca 5.00…tq

Bang igo

Data nya konsist mas…pake sintaks apa ya mas??di arduinonya??

Bang igo

Ok..sy cb..mksh mas

Irawan Tandiono

Mas, Apakah Semua interfase RS232 bisa digunakan untuk collect data?
ada Ebook / pembelajaran khusus mengenai komunikasi interface? atau apakah buku yg Mas jual ada pembelajaran tentang komunikasi serial kah?

Silahkan Email saya saja mas

dany

assalamualaikum mas, mas kalau misal rs232 nya itu diganti pake rs485 bisa atau tidak? terus programnya apakah sama saja? terimakasih

Alfajri

Assalamu’alaikum mas, bedanya RS232 dengan Kabel Serial pada arduino uno R3 apa ya mas ?
Terimakasih

Alfajri

Tp untuk cara kerjanya sama kan mas ?

arbi

Salam kenal Mas Ajie, Saya baru beberapa bulan ini kenal Arduino dan sedang mencoba mengkomunikasikan sensor SPO2 (socket DB9) dengan RS232 ke arduino. Terdapat 4 pin yaitu Vcc, GND, TX dan RX. Saya coba connect-an sesuai pin tersebut, apakah sudah benar? Karna sepertinya tidak terjadi perubahan data. LED RX dan TX pada arduino UNO juga sudah berkedip. Saya menggunakan serial 9600.

Maturnuwun sebelumnya Mas Ajie

rayen

assalamualaikum mas ajie, mau tanya jika ingin komunikasi 1 arah dari db9 ke arduino apa perlu memperhatikan kabel yang tersambung di pin db9 nya? jika kabel yang tersambung di pin db9 hanya pin2 (rx) dan pin5 (gnd) apakah bisa di terima oleh arduino dengan konverter ttl-rs232? terima kasih

rayen

jika ingin komunikasi 1 arah dari konektor db9 dibaca oleh arduino apakah kedua pin rx dan tx dari kedua pihak harus terhubung juga mas?

rayen

terima kasih mas ajie

mai

permisi ka, maaf mau bertanya, cara mengirim perintah dan status dari rs232 ke arduino bagaimana? karena kodingan di atas hanya bisa mengirim perintah dari arduino ke rs232 saja,
terimakasih

Ridhwan

Terimakasih sudah saya coba dan berhasil untuk menjalankan komunikasi secara simplex, apakah ada cara untuk RS232 ini bisa melakukan komunikasi duplex sehingga baik lewat serial monitor ataupun hyper terminal bisa saling berbalas pesan?

Hendro

mau nanya mas.
seperti pertanyaan mas Irawan Tandiono.
data dari RS232 yang tampil di serial monitor cuma angka-angka.
itu apa karena saya gak pakai RS232 to TTL ya?
kirain itu kode DEC dari data RS232 nya, sampai saya nyari2 cara convert DEC ke text tapi gak nemu2 😁

Indra

mas sy mau tanya, apakah untuk modul RS232 itu bs utk mengupload program arduino dr komputer ke arduino uno ?

Delz007

Izin bertanya kalo ingin di munculkan tampilan ke modul p10 seperti apa perintah nya ?
Data dari timbangan di munculkan ke modul p10 melalui rs232. Mohon di bantu pencerahan nya. Terima kasih salam sehat

Delz007

Baik pak makasih info nya

pahri

ada yang singkat gak mas….

Imas Sindi Pramesti

Pak, saya mau menghubungkan indikator timbangan ke arduino. Makek rs232. Saya sudah bli modul rs232 ke ttl, klok makek program ini apakah bisa

81
0
Would love your thoughts, please comment.x
()
x