NIM : 1841220025
KELAS : 3B D-IV TOE
PRAKTIKUM INTERFACING & MIKROKONTROLLER
KOMUNIKASI SERIAL
A. TUJUAN
1. Dapat menjalankan Proteus untuk aplikasi komunikasi serial.
2. Membuat aplikasi komunikasi serial antara PC dengan modul mikrokontroler arduino
3. Menampilkan dan mengamati data setelah pengiriman data dari arduino ke serial monitor
PC.
B. DASAR TEORI
Komunikasi serial adalah salah satu protokol komunikasi yang paling banyak diadopsi dan
juga terdokumentasi dengan baik. Komunikasi serial adalah komunikasi yang pengiriman datanya
per-bit secara berurutan dan bergantian. Komunikasi serial ada dua macam, asynchronous serial
dan synchronous serial.
1. Synchronous serial adalah komunikasi dimana hanya ada satu pihak (pengirim atau
penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama
dengan data.
Contoh: terdapat pada transmisi data keyboard.
2. Asynchronous serial adalah komunikasi dimana kedua pihak (pengirim dan penerima)
masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock.
Contoh: UART pada serial port (COM) komputer.
Kecepatan 9600 bit/detik, maka setiap bitnya memerlukan waktu selama 1/9600 = 104
mikrodetik/bit. Satu paket data untuk satu karakter terdiri dari 10 bit (8-bit data, 1-bit start dan 1-
bit stop). Pengiriman satu karakter (yang terdiri dari 10-bit) akan membutuhkan waktu selama 10
x 104 mikrodetik = 1.040 mikrodetik = 1,04 ms (milidetik). Pengiriman kata
„OK‟ akan membutuhkan waktu sekitar 2 milidetik pada kecepatan 9600 bps.
Setiap port komunikasi serial akan menggunakan sepasang pin digital. Satu pin untuk
menerima, dan satu lagi untuk mengirim. Sebagai contoh, di Arduino UNO yang memiliki satu
port komunikasi serial, pin #0 untuk menerima (RX), dan pin #1 untuk mengirim (TX). Semua
board Arduino memiliki sedikitnya satu buah kontroller komunikasi serial. Hal ini menyebabkan
komunikasi serial dengan board Arduino mudah untuk dilakukan.
(Silahkan Anda ketikkan tambahkan sendiri, jika ada, dasar teori yang berisi tentang
pengertian, cara kerja, dan fungsi dari Komunikasi Serial)
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
C. HARDWARE
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED 1 Buah
5. Resistor 220 Ω
6. Resistor 10 kΩ
7. Push Button
8. Kabel Data USB
E. LANGKAH PERCOBAAN
1. Buka dan buat project di Proteus.
2. Rangkailah project simulasi Arduino dengan 8-LED.
3. Buka Visual Studio Code / Arduino IDE / Arduino Genuino.
4. Buat programnya dan jalankan, pastikan tidak ada error.
3. Cek driver, lihat port COM dan samakan pada software Arduino IDE.
5. Buka jendela komunikasi serial pada IDE Arduino caranya, pilih Tools > Serial Monitor.
F. PROGRAM
1. Percobaan 1, Menampilkan kata “Hello World!” pada Serial Monitor.
2. Percobaan 2, menampilkan nilai kondisi apabila button ditekan maka akan muncul 1 di serial
monitor, apabila tidak maka muncul 0.
3. Percobaan 3, Membuat program tx dan rx dengan Arduino
➢ Pengirim Tx
➢ Penerima Rx
➢ Percobaan Tx dan Rx
Latihan/Tugas!
1. Buatlah eksperimen dengan menggunakan komunikasi serial untuk menampilkan hasil dari
ekspresi matematika.
2. Buatlah eksperimen dengan menggunakan komunikasi serial antara 2 modul arduino yang
dapat berkomunikasi seperti chatting. Rangkaian terdapat pada Gambar 5.
➢ Analisis
Percobaan ini hanya dapat dilakukan jika langsung digunakan pada hardware. Karena
Arduino IDE harus ter-connect.
(Silahkan Anda tulis ulang program (source code/script) Anda disini dan menambahkan gambar
hasil rangkaian percobaan simulasi pada Proteus/Tinkercad, buatlah analisis pengamatan yang
Anda alami selama melakukan percobaan)
void setup() {
Serial.begin(9600);
void loop() {
Serial.println("Hello World");
delay(1000);
// put your main code here, to run repeatedly:
int pushButton = 2;
void setup() {
Serial.begin(9600);
pinMode(pushButton, INPUT);
void loop() {
Serial.println(kondisiButton);
delay(1000);
➢ Analisis : fungsi perintah pushbutton yaitu saat tombol dipencet akan menjalankan input.
Program Tx dan Rx
Pengirim Tx
#include<Wire.h>
void setup() {
Wire.begin(2);
Wire.onRequest(requestEvent);
void loop() {
delay(1000);
void requestEvent()
Wire.write("test");
Penerima Rx
#include<Wire.h>
void setup() {
Wire.begin(2);
Serial.begin(9600);
void loop() {
Wire.requestFrom(2,6);
while(Wire.available());
{char c = Wire.read();
Serial.print(c);
delay(500);
}
➢ Analisis : pada “Wire.requestFrom(2,6);” angka 2 dan 6 menunjukkan alamat dan
kuantitas.
Tx :
#include <Wire.h>
void setup() {
Wire.begin();
byte a = 0;
void loop() {
Wire.beginTransmission(8);
Wire.write(a);
Wire.endTransmission();
a++;
delay(1000);
}
Rx :
#include <Wire.h>
void setup() {
Wire.begin(8);
Wire.onReceive(receiveEvent);
Serial.begin(9600);
void loop() {
char c = Wire.read();
Serial.print(c);
int a = Wire.read();
Serial.println(a);
Ekspresi Matematika
#include <Arduino.h>
int x;
int y;
int z;
void setup() {
Serial.begin(9600);}
void loop() {
Serial.println("Masukkan x= ");
while(!Serial.available());
x= Serial.parseInt(); //Masukkan x
Serial.println("Masukkan y= ");
y= Serial.parseInt(); //Masukkan y
Serial.println("Masukkan z= ");
z= Serial.parseInt(); //Masukkan z
Serial.print("x = ");Serial.println(x);
Serial.print("y = ");Serial.println(y);
Serial.print("z = ");Serial.println(z);
// Ekspresi matematika
Serial.print("x + y = ");
Serial.println(x + y);
Serial.print("y - z = ");
Serial.println(y - z);
Serial.print("x * z = ");
Serial.println(x * z);
Serial.print("x / z = ");
Serial.println(x / z);
Serial 2 Modul
#include <SoftwareSerial.h>
int text;
void setup() {
Serial.begin(9600);
Serial.println("Memulai pesan...");
chat.begin(9600);
delay(1000);
chat.println("Ohayou sekai");
void loop() {
if (chat.available())
Serial.write(chat.read());
if (Serial.available())
{
Serial.print("Apip : ");
while (Serial.available())
text = Serial.read();
chat.write(text);
Serial.write(text);
chat.println();
Serial.println();
b. 1 LED Arduino
void setup()
pinMode(13, OUTPUT);
void loop()
digitalWrite(13, HIGH);
c. 2 LED HIGH-LOW
void setup()
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
void loop()
digitalWrite(13, HIGH);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
digitalWrite(12, LOW);
}
H. KESIMPULAN
Setelah melakukan percobaan di atas, buatlah kesimpulan pengamatan yang Anda alami selama
melakukan percobaan)
1. Ada beberapa program yang hanya dapat dijalankan apabila langsung diaplikasikan ke
hardware
2. Dari 2 aplikasi untuk proses pembelajaran terdapat keunggulannya masing2.