0% menganggap dokumen ini bermanfaat (0 suara)
69 tayangan68 halaman

Modul Mikroprosesor 1-5

Modul ini membahas tentang praktikum input dan output digital pada mikrokontroler Arduino Uno. Terdiri dari 5 modul yang membahas tentang pengenalan board Arduino Uno, konfigurasi pin input dan output, dan pembuatan program input dan output sederhana menggunakan LED, tombol, dan buzzer.

Diunggah oleh

Supriono Pbg
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
69 tayangan68 halaman

Modul Mikroprosesor 1-5

Modul ini membahas tentang praktikum input dan output digital pada mikrokontroler Arduino Uno. Terdiri dari 5 modul yang membahas tentang pengenalan board Arduino Uno, konfigurasi pin input dan output, dan pembuatan program input dan output sederhana menggunakan LED, tombol, dan buzzer.

Diunggah oleh

Supriono Pbg
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 68

MODUL PRAKTIKUM

MIKROPROSSESOR

Modul I Digital Input & Digital Output


Modul II Akses LCD Karakter 16x2 & Analog to
Digital Converter(ADC)
Modul III Komunikasi I2C, Digital Sensor dan
Keypad
Modul IV Modul GSM dan Komunikasi Serial
Modul V Komunikasi Ethernet

Disusun Oleh :
SIGIT PRAMONO,S.T.,M.T.

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Tata Tertib Laboratorium

1. Mahasiswa wajib mengenakan seragam resmi yang telah ditentukan ITT


Purwokerto dan memakai sepatu.
2. Mahasiswa wajib menjaga kebersihan ruang Laboratorium dan membuang
sampah pada tempatnya.
3. Mahasiswa menggunakan fasilitas yang disediakan Laboratorium untuk
aktivitas praktikum, workshop, pengujian alat tugas akhir dan segala kegiatan
yang berhubungan laboratorium. Untuk kegiatan selain hal tersebut tidak
diperbolehkan, tanpa seijin Ka.Ur. Laboratorium.
4. Selama berada di dalam Laboratorium, mahasiswa dilarang :
a. Membawa makanan atau minuman dan makan atau minum;
b. Mengambil atau membawa keluar alat/bahan yang disediakan
Laboratorium, tanpa seijin Officer Laboran.
5. Mematuhi segala tata tertib dan aturan yang ditentukan oleh Ka.Ur.
Laboratorium.

Tata Tertib Praktikum di Laboratorium

A. Sebelum Praktikum
1. Praktikan wajib :
a. Menunjukkan Kartu Peserta Praktikum yang sudah diisi dan
dilengkapi dengan foto berwarna terkini.
b. Menyediakan sendiri alat-alat tulis/gambar yang diperlukan.
c. Menguasai dasar teori dari unit modul praktikum yang akan
dilakukan.
d. Membawa buku panduan praktikum, baik dalam bentuk hardcopy
ataupun softcopy.
e. hadir tepat pada waktunya sesuai dengan jadwal yang telah
ditentukan. Bila keterlambatan melebihi 10 menit maka yang
bersangkutan tidak diperkenankan mengikuti praktikum dan baginya
tidak diberikan praktikum susulan.
2. Praktikan akan briefing pada saat Pre-Test
3. Praktikan diperbolehkan melakukan tukar-jadwal dengan praktikan lain
setelah konfirmasi ke asisten praktikum dan mengisi formulir tukar-jadwal
yang telah disediakan.

B. Selama Praktikum
1. Setiap unit modul sudah disediakan alat, tempat, dan bahan sendiri yang
tidak boleh diubah, diganti, atau ditukar kecuali dengan sepengetahuan
asisten.
2. Praktikan wajib membaca petunjuk langkah kerja dan mencatat hasil kerja
praktikum yang tercantum dalam modul praktikum ataupun sesuai arahan
asisten atau dosen pengampu.
3. Apabila menjumpai kesalahan, kerusakan, atau ketidaksesuaian dengan
langkah kerja praktikum, praktikan harus segera melapor pada asisten.
4. Khusus untuk praktikum yang berhubungan dengan sumber arus atau
tegangan, setelah selesai menyusun rangkaian sesuai langkah kerja,
praktikan harus melapor kepada asisten, dan dilarang menghubungkan
rangkaian dengan sumber tegangan atau arus tanpa seijin asisten.
5. Segala kerusakan yang terjadi karena kelalaian ataupun kesalahan
praktikan akibat tidak mengikuti langkah kerja praktikum ditanggung oleh
praktikan yang bersangkutan dan wajib untuk dilakukan penggantian
paling lambat 1 (satu) minggu setelah terjadinya kerusakan.
6. Praktikan yang berhalangan praktikum, wajib memberitahukan kepada
Dosen Praktikum maksimal 1 hari sebelum praktikum diadakan dengan
menyertakan surat alasan tidak hadir saat praktikum dan bagi yang sakit
menyertakan surat dokter (terkecuali bagi yang mendadak hari disaat
praktikum yang bersangkutan sakit, ada pertimbangan tersendiri). Jika
tidak, maka bagi yang bersangkutan diberikan praktikum susulan.
7. Praktikan tidak diperkenankan bersenda gurau dan atau meninggalkan
ruangan praktikum tanpa seijin asisten atau dosen pengampu, serta
bersikap tidak sopan terhadap para asisten atau dosen pengampu.
8. Praktikan diwajibkan mengembalikan alat-alat yang digunakan dan
dilarang meninggalkan ruangan praktikum sebelum mendapat izin dari
asisten atau pengampu praktikum.
9. Asisten praktikum berwenang memberikan tindakan terhadap Praktikan
yang melanggar aturan, dengan sepengetahuan Dosen Praktikum.

C. Setelah Praktikum
1. Lembar data praktikum wajib mendapatkan persetujuan atau tanda tangan
dari asisten, bila tidak maka data tersebut akan dinyatakan tidak sah.
2. Laporan praktikum dikumpulkan ke asisten sesuai dengan aturan yang
telah ditetapkan sebelumnya.
3. Praktikan akan diberi pos-test oleh Dosen Praktikum dibantu oleh asisten
praktikum.

D. Ketentuan Lain
1. Praktikum susulan diselenggarakan hanya untuk mahasiswa yang
berhalangan hadir pada saat praktikum dikarenakan sakit, menikah, orang
tua/wali atau saudara kandung meninggal, dan dispensasi mengikuti
kegiatan dari kampus.
2. Praktikum susulan akan terselenggara, jika mahasiswa yang bersangkutan
dapat menunjukkan surat keterangan resmi, seperti : Surat Keterangan
Sakit dari dokter dan Surat Dispensasi dari bagian Akademik/
Kemahasiswaan.
3. Penyelenggara praktikum susulan hanya diperbolehkan atas seijin Dosen
Praktikum dan Ka.Ur. Laboratorium.
MODUL PRAKTIKUM
MIKROPROSSESOR

MODUL I
DIGITAL INPUT & DIGITAL OUTPUT

Disusun Oleh :
SIGIT PRAMONO, S.T., M.T.

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Praktikum I
Digital Input & Digital Ouput

A. Tujuan Praktikum
1. Mahasiswa mampu memahami pembagian port dan pin pada Board
Arduino Uno R3.
2. Mahasiswa mampu memahami fungsi pin I/O pada Board Arduino Uno
R3 sebagai input dan output.
3. Mahasiswa mampu mengkonfigurasi pin I/O Arduino Uno R3 sebagai
input dan output.
4. Mahasiswa mampu membuat program yang menggunakan pin I/O
Arduino Uno R3.
5. Mahasiswa Mampu menggunakan Arduino IDE untuk memprogram dan
mengupload program ke Board Arduino Uno R3.

B. Alat Dan Bahan Praktikum


1. Board Arduino Uno R3 : 1 (satu) buah
2. Kabel USB tipe A ke B : 1 (satu) buah
3. Breadboard : 1 (satu) buah
4. LED merah : 6 (enam) buah
5. Resistor 220 Ω : 6 (satu) buah
6. Resistor 10 KΩ : 2 (dua) buah
7. Tombol saklar (pushbutton) : 2 (dua) buah
8. Buzzer 5V : 1 (satu) buah
9. Kabel Jumper male-to-male sesuai kebutuhan

C. DASAR TEORI
1. Pengenalan Arduino
Arduino (http://arduino.cc) adalah platform komputasi open source
yang terdiri dari perangkat keras berupa Board Arduino dan perangkat
lunak pemrograman, Arduino IDE. Arduino lahir di Italia pada tahun 2005
dari sebuah proyek thesis Hernando Barragan bernama Wiring
(http://wiring.org.co/). Proyek tersebut berupa sebuah Board rangkaian
elektronik menggunakan Microcontroller ATMEL ATmega644P
diprogram menggunakan perangkat lunak yang dibangun dari bahasa
pemrograman Processing (http://processing.org). Arduino awalnya
dikembangkan oleh Massimo Banzi dan David Cuartielles yang kemudian
menjadi sebuah tim dengan bergabungnya Tom Igoe, Gianluca Martino
dan David Mellis.
Arduino banyak dipilih sebagai proyek pengembangan
Microcontroller karena beberapa alasan berikut ini:
 Ekonomis
Board Arduino dapat dirakit sendiri atau dibeli dengan harga di bawah
$50 (termasuk asesorinya).
 Lintas Platform
Arduino IDE dapat dijalankan dalam komputer menggunakan sistem
operasi Windows, Linux atau Mac. Sebagian besar perangkat lunak
untuk sistem Microcontroller biasanya hanya berjalan di Windows.
 Lingkungan Pemrograman yang Sederhana
Antarmuka Arduino IDE bersifat sederhana, mudah dipahami bagi
pemula di bidang Microcontroller dan fleksibel bagi mereka yang ahli.
 Open Source dengan Perangkat yang Dapat Dikembangkan
Arduino IDE dapat ditambahkan berbagai pustaka untuk
menambahkan fitur-fitur tertentu. Skematik dari rangkaian
Microcontroller juga dapat dimodifikasi lebih lanjut untuk berbagai
proyek.

2. Arduino Uno R3
Salah satu jenis Board Arduino yang banyak digunakan adalah
Arduino Uno. Board ini menggunakan Microcontroller ATmega328
sebagai pemroses utama dan ATmega16U untuk komunikasi serial. Catu
daya rangkaian diperoleh dari konektor DC atau kabel USB yang juga
berfungsi sebagai konektor terhadap PC untuk download program ke mikr.
Versi terbaru dari Arduino Uno adalah R3 (Revision 3) dengan tampilan
dan bagian-bagiannya sebagai berikut ini: Hardware arduino memiliki
prosesor Atmel AVR dan software arduino memiliki bahasa pemrograman
Memori yang dimiliki oleh Arduino Uno sebagai berikut : Flash Memory
sebesar 32KB, SRAM sebesar 2KB, dan EEPROM sebesar 1KB. Clock
pada board Uno menggunakan XTAL dengan frekuensi 16 Mhz. Dari segi
daya, Arduino Uno membutuhkan tegangan aktif kisaran 5 volt, sehingga
Uno dapat diaktifkan melalui koneksi USB. Arduino Uno memiliki 28
kaki yang sering digunakan. Untuk Digital I/O terdiri dari 14 kaki, kaki 0
sampai kaki 13, dengan 6 kaki mampu memberikan output PWM (kaki
3,5,6,9,10,dan 11). Masing-masing dari 14 kaki digital di Uno beroperasi
dengan tegangan maksimum 5 volt dan dapat memberikan atau menerima
maksimum 40mA.
Untuk Analog Input terdiri dari 6 kaki, yaitu kaki A0 sampai kaki A5.
Kaki Vin merupakan tempat input tegangan saat menggunakan sumber
daya eksternal selain USB dan adaptor.
3. Spesifikasi Arduino Uno R3
Tabel 1. Spesifikasi Arduino Uno R3
Mikrokontroler ATmega328
OperasiTegangan 5 Volt
Input Tegangan 7-12 Volt
Pin I/O Digital 14
Pin Analog 6
Arus DC tiap pin I/O 50 mA
Arus DC ketika 3.3V 50 mA
Memori flash 32 KB
SRAM 2 KB
EEPROM 1 KB
Kecepatan clock 16 MHz

4. Mengenal Arduino IDE


Aplikasi yang digunakan untuk memrogram board Arduino, dalam hal ini
Arduino Uno R3 seperti gambar di atas, adalah Arduino IDE. IDE atau
Integrated Development Environment adalah lingkungan pemrograman
yang terintegrasi, dimana pemrogram dapat mengetikkan kode program
Arduino, mengecek apakah ada kesalahan kode dan memrogramnya ke
board dalam satu aplikasi.
Bahasa yang digunakan untuk memrogram Arduino Uno adalah bahasa
pemrograman Arduino. Bahasa ini sebenarnya adalah turunan dari C/C++.
PROSEDURE PRAKTIKUM
A. Instalasi Arduino IDE
1. Buka file arduino-1.8.8-windows.exe, lalu pilih I Agree.

2. Lalu Select All pada pilihan berikut, lalu Next.

3. Pilih Destination Folder penginstalan, kemudian klik Instal dan


tunggu berberapa menit. Jika diminta menginstal Driver, maka klik
Instal sampai Arduino tidak memprintahkan lagi.

4. Arduino IDE selesai di Instal.


B. Digital Output
Percobaan #1: LED Menyala Kedip (Blink)
1. Pertama siapkan bahan-bahan yang telah di tentukan, kemudian
rangkai lah seperti gambar berikut ini :

2. Pastikan Kaki LED positif (anoda) dan negatif (katoda) terletak


bersebelahan. Dan tidak terbalik.
3. Hubungkan resistor 220 Ω ke kaki katoda dari LED dan satu kaki
lainnya melintasi celah pada breadboard, seperti dalam Gambar 1.
4. Hubungkan kaki positif (anoda) dari LED ke pin 8 dari Arduino
menggunakan kabel male-to-male.
5. Hubungkan kaki resistor yang berada di seberang celah breadboard ke
pin ground (GND) dari Arduino menggunakan kabel male-to-male.
6. Cocokkan kembali dengan gambar rangkaian diatas.
7. Buka Arduino IDE. Dan Ini adalah tampilan awal aplikasi Arduino
IDE.

8. Ketik kode program langsung pada aplikasi tersebut seperti di bawah


ini. Pastikan huruf besar dan kecil nya sesuai. Karena bahasa
pemograman arduino bersifat Case Sensitive lalu kemudian berkas di
simpan dengan menekan tombol (Ctrl+S) dengan nama berkas
blink_led.
//Program Blink
int led = 8;

void setup()
{
pinMode(led, OUTPUT);
}

void loop()
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}

9. Hubungkan Board Arduino ke Laptop menggunakan kabel Kabel


USB A to B type.

10. Kemudian klik menu Tools, Lalu pilh tipe board yang sedang di
gunakan yaitu Arduino/Genuino Uno. Setelah itu pastikan pada Port
bahwa Arduino Uno yang kita gunakan terdeteksi dan pilih port
tersebut.

11. Langkah selanjutnya yaitu memverify dan mengupload program


kedalam Arduino dengan cara mengklik ikon Upload.
12. Jika proses Upload berhasil akan di tandai dengan pemberitauan Done
Uploading. dan Lampu LED pada rangkaian akan menyala dan mati
selama 1 detik.

[1] Apakah yang dimaksud dengan PORT pada menu Tools


Arduino IDE?
[2] Apakah fungsi dari void setup() dan void loop()?
[3] Apakah arti dari pinMode(Led,OUTPUT) dan
pinMode(Led,INPUT)?
[4] Apakah fungsi dari resistor 220 pada rangkaian?
Percobaan #2: LED Menyala Bergantian (Flip-Flop)
1. Pastikan kabel yang board arduino sudah tercabut dari komputer.
Kemudian buatlah rangakaian seperti gambar berikut. Pastikan resistor
yang digunakan bernilai 220 Ω. Dan pemasangan kaki LED tidak
terbalik pada breadboard.

2. Hubungkan kaki positif (anoda) dari LED hijau ke pin 8 dari Arduino.
Hubungkan juga kaki positif (anoda) dari LED merah ke pin 9 dari
Arduino. Semua koneksi menggunakan kabel male-to-male.
3. Pastikan rangkaian sudah sesuai dengan gambar diatas.
4. Buat berkas baru pada Arduino IDE dan Ketik kode program seperti
di bawah ini dan simpan dengan nama berkas flipflop.
//Program Flip-flop
int merah = 9;
int hijau = 8;
int waktu = 1000;
void setup()
{
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
}
void loop()
{
digitalWrite(merah, HIGH);
digitalWrite(hijau, LOW);
delay(waktu);
digitalWrite(merah, LOW);
digitalWrite(hijau, HIGH);
delay(waktu);
}
5. Hubungkan board Arduino dengan komputer/laptop. Lalu upload
program ke dalam board Arduino.
Percobaan #3: LED Berjalan (Running LED)
1. Siapkan 6 buah LED dan 6 buah resistor 220 Ω. Buatlah rangkaian
seperti gambar berikut :

2. Pastikan rangkaian sudah sesuai dengan gambar.


3. Buat berkas baru pada Arduino IDE. Lalu ketikan program berikut. Dan
simpan dengan nama berkas Runing_Led.
//Program LED berjalan (Running LED)
int led;
int waktu = 200;

void setup()
{
for(led = 2; led <= 7; led++)
{
pinMode(led, OUTPUT);
digitalWrite(led, LOW); //Mematikan semua
LED
}
}

void loop()
{
for(led = 2; led <= 7; led++)
{
digitalWrite(led, HIGH);
delay(waktu);
digitalWrite(led, LOW);
}
}
4. Hubungkan board Arduino yang sudah di rangkai dengan
komputer/laptop. Lalu lakukan upload program kedalam Arduino.
C. Digital Input
Percobaan #1: LED Menyala dengan Tombol Saklar (Pushbutton
Switch)
1. Siapkan 1 buah LED, 1 buah resistor 220 Ω, 1 buah resistor 10K Ω dan
1 buah switch button dan buatlah rangkaian seperti gambar berikut ini.

2. Pastikan rangkaian sudah sesuai gambar.


3. Buat file baru pada Arduino IDE dan ketik kode program seperti di
bawah ini dan simpan dengan nama berkas tombol.
int masukan;
int led = 9;
int tombol = 8;

void setup()
{
pinMode(led, OUTPUT);
pinMode(tombol, INPUT);
}

void loop()
{
masukan = digitalRead(tombol);
if(masukan == HIGH)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
}
4. Hubungkan board Arduino dengan komputer/laptop. Lakukan upload
program kedalam Arduino.
[5] Apakah fungsi dari digitalWrite() dan digitalRead()?
[6] Apakah maksud dari printah berikut ini :
int tombol_led = 6;
int buzzer = 7;
[7] Apakah arti dari delay(1500)?
[8] Apakah arti dari status HIGH dan LOW pada script yang anda
gunakan?
[9] Apa persamaan dari bahasa pemograman C++ dan bahasa
pemograman Arduino?

Percobaan #3: Dua Tombol untuk Menyalakan LED dan


Membunyikan Buzzer
1. Siapkan 1 buah LED merah, 2 buah pushbutton, 2 buah resistor 10K
Ω, 1 buah Buzzer 5V dan 1 buah resistor 220 Ω. Buatlah rangkaian
seperti gambar berikut ini.

2. Pastikan rangakaian sudah sesuai dengan gambar diatas.


3. Buat berkas baru pada Arduino IDE. Lalu ketikan kode program
dibawah ini dan simpan berkas dengan nama tombol2.
int led = 5;
int tombol_led = 6;
int buzzer = 7;
int tombol_buzzer = 8;
boolean status = false;

void setup()
{
pinMode(led, OUTPUT);
pinMode(tombol_led, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(tombol_buzzer, INPUT);
}

void loop()
{
if(digitalRead(tombol_buzzer) == HIGH)
{
digitalWrite(buzzer, HIGH);
}
else
{
digitalWrite(buzzer, LOW);
}
if(digitalRead(tombol_led) == HIGH)
{
status = !status;
delay(200);
}
if(status == true)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
}

4. Hubungkan board Arduino dengan komputer/laptop. Lakukan


penguploadan program kedalam Arduino.
[10] Apakah arti dari perintah berikut ini ?
If (digitalRead(tombol_buzzer) == HIGH)
[11] Apakah arti dari perintah berikut ini ?
For (led = 2; led <= 7; led++)

TUGAS
1. Jawablah 11 pertanyaan yang telah di sisipkan diatas!
2. Buatlah Simulasi & Program lampu lalu lintas (traffic light) di sebuah
pertigaan dengan ketentuan :
 Output 9 lampu LED
 Lampu kuning hidup selama 1 detik
 Lampu Hijau1 (X+2)detik
 Lampu Hijau2 hidup selama (Y+2) detik
 Lampu Hijau3 hidup selama (Z+2) detik

XYZ = 3 digit terakhir NIM


Contoh : 17101171, maka XYZ = 171
MODUL PRAKTIKUM
MIKROPROSSESOR

MODUL II
Akses LCD Karakter 16x2 & Analog to Digital
Converter(ADC)

Disusun Oleh :
SIGIT PRAMONO, S.T., M.T.

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Praktikum II
Akses LCD Karakter 16x2 &
Analog to Digital Converter(ADC)

I. Tujuan Praktikum
1. Mahasiswa mampu memahami cara kerja dari pin analog to digital
converter (ADC) pada Arduino Uno R3.
2. Mampu memahami pegaruh nilai tegangan referensi terhadap hasil
konversi analog to digital converter (ADC)
3. Mahasiswa mampu memahami penggunaan Serial Monitor pada Arduino
IDE.
4. Mahasiswa mampu memahami cara mengakses LCD 16x2 dengan
Arduino Uno R3.
5. Mahasiswa mampu merangkai dan memprogram pin ADC Arduino Uno
R3 sebagai inputan sebuah sensor suhu LM35.
6. Mahasiswa mampu menampilkan hasil pembacaan nilai dari pin ADC
kedalam LCD 16x2.

II. Alat Dan Bahan Praktikum


1. Board Arduino Uno R3 : 1 (satu) buah
2. Kabel USB tipe A ke B : 1 (satu) buah
3. Breadboard : 1 (satu) buah
4. Potensio 10K : 3 (tiga) buah
5. Resistor 220 Ω : 1 (satu) buah
6. LCD 16x2 : 1 (satu) buah
7. LM 35 : 1 (satu) buah
8. Buzzer 5V : 1 (satu) buah
9. Multimeter Digital : 1 (satu) buah
10. Kabel Jumper male-to-male sesuai kebutuhan

III. DASAR TEORI


1. Pengenalan Analog to Digital Converter (ADC)
Pin analog pada Arduino dapat digunakan untuk input dan output
digital. Hanya saja pin analog memiliki fitur untuk dapat mengubah sinyal
analog yang masuk menjadi nilai digital yang mudah diukur. Pin digital
hanya dapat mengenali sinyal 0 volt sebagai nilai LOW dan 5 volt sebagai
nilai HIGH. Sedangkan Pin analog dapat mengenali sinyal pada rentang
nilai voltase tersebut. Hal ini sangat berguna ketika kita hendak mengukur
sesuatu dari sensor dan menggunakan nilai masukan tersebut untuk
keperluan lain.
Pin analog ini terhubung dengan converter pada mikrokontroller yang
dikenal dengan istilah analog-to-digital converter (disingkat ADC atau
A/D). Converter ini mengubah nilai analog berbentuk sinyal voltase ke
dalam bentuk digital/angka supaya nilai analog ini dapat digunakan
dengan lebih mudah dan aplikatif. Pada Arduino (mikrokontroller
ATMega) converter ini memiliki resolusi 10 bit, artinya nilai hasil
konversi berkisar dari 0 hingga 1023. Pada Arduino UNO, pin analog
ditandai dengan label A0 sampai A5. Pada board lainnya, pin-pin yang
diberi tanda A, Analog, ADC adalah pin analog. Fungsi yang kita gunakan
untuk membaca nilai analog pada Arduino adalah :

Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu
kecepatan sampling dan resolusi. Kecepatan sampling menyatakan
seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam
bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan
dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat
ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10
bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan
referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino
mampu menangani sinyal analog dengan tegangan 0 - 5 volt.
Rumus untuk menghitung nilai ADC adalah sebagai berikut:

2. Pengenalan LCD 16x2


LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang
menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan
diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator,
atau pun layar komputer. Pada percobaan kali ini LCD yang dugunakan
ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat
berfungsi sebagai penampil yang nantinya akan digunakan untuk
menampilkan status kerja dari sebuah alat.
Adapun fitur – fitur yang tersedia antara lain
 Terdiri dari 16 kolom dan 2 baris
 Dilengkapi dengan back light (Lampu latar belakang)
 Mempunyai 192 karakter tersimpan
 Dapat dialamati dengan mode 4-bit dan 8-bit
 Terdapat karakter generator terprogram
Keterangan :
 GND : catu daya 0Vdc
 VCC : catu daya positif
 Constrate : untuk kontras tulisan pada LCD
 RS atau Register Select :
High : untuk mengirim data
Low : untuk mengirim instruksi
 R/W atau Read/Write :
High : mengirim data
Low : mengirim instruksi
Disambungkan dengan LOW untuk pengiriman data ke layar
 E (enable) : Untuk mengontrol ke LCD ketika bernilai LOW,
LCD tidak dapat diakses
 D0 – D7 : Data Bus 0 – 7
 Backlight + : Disambungkan ke VCC untuk menyalakan lampu
latar
 Backlight – : Disambungkan ke GND untuk menyalakan lampu
latar

3. Pengenalan LM 35
Sensor suhu IC LM 35 merupkan chip IC produksi Natioanal
Semiconductor yang berfungsi untuk mengetahui temperature suatu objek
atau ruangan dalam bentuk besaran elektrik, atau dapat juga di definisikan
sebagai komponen elektronika yang berfungsi untuk mengubah perubahan
temperature yang diterima dalam perubahan besaran elektrik. Sensor suhu
IC LM35 dapat mengubah perubahan temperature menjadi perubahan
tegangan pada bagian outputnya. Sensor suhu IC LM35 membutuhkan
sumber tegangan DC +5 volt dan konsumsi arus DC sebesar 60 µA dalam
beroperasi.
PROSEDURE PRAKTIKUM
Percobaan #1: Mengakses LCD 16x2
1. Langkah pertama pada percobaan Akses LCD 16x2 adalah menyiapkan
alat dan bahan yang di butuhkan yaitu : Arduino Uno R3, Kabel USB
Type A to Type B, Breadboard, LCD 16x2, Potensio 10K, Resistor 220
Ohm dan kabel jumper secukupnya.
2. Kemudian rangkai lah seperti gambar di bawah ini :
3. Hubungkan Kaki LCD seperti ketentuan berikut :
VSS : GND
VDD : 5V
V0 : Pin 2 Potensio.
RS : Pin 12 Arduino
RW : GND
E : Pin 11 Arduino
D4 : Pin 5 Arduino
D5 : Pin 4 Arduino
D6 : Pin 3 Arduino
D7 : Pin 2 Arduino
A : Kaki Resistor 220 Ohm
K : GND
4. Pastikan semua rangkaian sudah seperti pada gambar ketentuan dan
gambar diatas.
5. Buka Arduino IDE dan ketik program seperti di bawah ini, simpan dengan
nama LCD1.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //(rs,
enable, d4, d5, d6, d7)
String materi1 = "ADC", materi2 = "LCD";
int counter = 0;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Modul 2 - Mikro");
lcd.setCursor(0, 1);
lcd.print(materi1);
lcd.setCursor(4, 1);
lcd.print(char(38));
lcd.setCursor(6, 1);
lcd.print(materi2);
delay(1500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Counter : ");
lcd.print(counter);
Serial.println("Modul 2 - Mikro");
Serial.print(materi1);
Serial.print(char(38));
Serial.println(materi2);
Serial.print("Counter : ");
Serial.println(counter);
Serial.println();
counter++;
delay(1000);
}
6. Hubungkan board Arduino ke laptop/komputer.
7. Upload program ke dalam board Arduino.
8. Jika tulisan tidak terlalu jelas, maka potensio pada LCD bisa di putar ke
kanan dan kekiri untuk memperjelas kontras tulisan pada LCD.
[1] Apa maksud dari 16x2 pada spesifikasi LCD yang di pakai saat
praktikum?
[2] apa yang terjadi pada LCD jika pada baris ke 1 kita menuliskan tulisan
“IT TELKOM PURWOKERTO”, dan mengapa bisa terjadi seperti
itu?
[3] Apa maksud dari setCursor dibawah ini :
lcd.setCursor(4, 1);
lcd.print(char(38));

Percobaan #2: Pembacaan Sensor LM35 dengan ADC


1. Pada percobaan ketiga ini, cukup menghilangkan rangkaian pada
percobaan kedua. Yaitu rangkaian 2 buah potensio. Setelah di hilangkan
kemudian tambahkan sensor LM35. Tapi sebelumnya pastikan Arduino
sedang tidak terhubung ke laptop/ komputer. Lakukan seperti gambar di
bawah ini.
2. Pastikan rangakaian sudah sesuai dengan gambar diatas.
3. Ketik program pada Arduino IDE seperti di bawah ini, dan simpan dengan
nama LM35.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define sensorsuhu A5
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
int vref = 5;
int adc = analogRead(sensorsuhu);
float mv = ( adc / 1024.0) * (vref * 1000);
float cel = mv / 10;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("TEMP:");
lcd.print(cel);
lcd.print(char(223));
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("ADC:");
lcd.print(adc);
lcd.setCursor(7, 1);
lcd.print("mV:");
lcd.print(mv);
delay(500);
}
4. Setelah program di simpan. Hubungkan board Arduino ke
laptop/komputer. Lakukan upload program.
5. Setelah upload program berhasil maka LCD akan menampilkan Tempratur
suhu dalam satuan drajat celsius. Dan menampilkan nilai ADC serta
tegangan yang di baca dari kaki LM35.
6. Lengkapi tabel di bawah ini. Lengkapi dengan hasil pengamatan pada
LCD, pengukuran tegangan dengan multimeter dan perhitungan nilai ADC
dan Tempratur.
7. Arahkan probe multimeter ke kaki LM35 seperti gambar dibawah ini
untuk mengukur besar tegangan Vin.

Tabel Percobaan ke 3
LCD Pengukuran Perhitungan
Vref
Vin ADC Temp Vin ADC Temp

5v

[4] Apa yang di maksud sinyal analog dan digital pada pengertian ADC?
[5] Apa perintah yang digunakan untuk membaca nilai ADC pada pin
A4?
[6] Mengapa pembacaan nilai ADC maksimal 1023/1024?
[7] Berapakah nilai tegangan Refrensi default jika kita tidak
menginputkan tegangan Refrensi eksternal?
Percobaan #3: Alarm Suhu Ruangan sederhana dengan Buzzer
1. Pada percobaan ke 4 ini, cukup menambahkan rangkaian buzzer 5v pada
breadboard seperti gambar rangkaian dibawah ini.

2. Tulisakan kode program seperti dibawah ini. Dan simpan dengan nama
ALARM.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define sensorsuhu A5
float suhu_max = 29;
int buzzer = 7;
void setup()
{
lcd.begin(16, 2);
pinMode(buzzer, OUTPUT);
}

void loop()
{ int vref = 5;
int adc = analogRead(sensorsuhu);
float mv = ( adc / 1024.0) * (vref * 1000);
float cel = mv / 10;

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("TEMP:");
lcd.print(cel);
lcd.print(char(223));
lcd.print("C");

if (cel >= suhu_max)


{
digitalWrite(buzzer, 1);
lcd.setCursor(0, 1);
lcd.print("WARNING...!!!");
}
else
{
digitalWrite(buzzer, 0);
}
delay(500);
}
3. Hubungkan board Arduino ke laptop/komputer. Lalu upload program.
4. Untuk variabel yang menentukan batas maksimal suhu, bisa di sesuaikan
sesuai kondisi suhu ruangan saat praktikum.
[8] Apa contoh sederhana dari kegunaan ADC pada kehidupan sehari-
hari?
[9] Jelaskan apa maksud dari script di bawah ini ?
Int adc = analogRead(sensorsuhu);
float mv = ( adc / 1024.0) * (vref * 1000);
float cel = mv / 10;
[10] Bisakah pin Analog pada Arduino di gunakan sebagai Output untuk
menghidupkan sebuah LED, seperti layaknya pin Digital Output?
TUGAS
1. Jawablah 10 pertanyaan yang telah di sisipkan diatas!
2. Buatlah Program Runing Text dengan ketentuan sebagai berikut :
 Baris pertama berisi “Nama Praktikan”.
 Baris kedua berisi “NIM Praktikan”.
 NIM Ganjil : Runing text berjalan dari kiri ke kanan.
 NIM Genap : Runing text berjalan dari kanan ke kiri.
 Jeda pindah antar karakter adalah (125ms + XYZ).

XYZ = 3 Digit NIM Terakhir.


Contoh : 17101144 : 144+125 = 169ms)
MODUL PRAKTIKUM
MIKROPROSSESOR

MODUL III
Komunikasi I2C, Digital Sensor dan Keypad

Disusun Oleh :
SIGIT PRAMONO,S.T.,M.T.

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Praktikum III
Komunikasi I2C, Digital Sensor dan Keypad
I. Tujuan Praktikum
1. Mahasiswa mampu memahami apa itu komunikasi I2C dan mencari
alamat dari perangkat yang menggunakan komunikasi I2C.
2. Mahasiswa mampu menambahkan sebuah library pada Arduino IDE.
3. Mahasiswa mampu mengakses sebuah sensor digital DHT 11.
4. Mahasiswa mampu mengakses sebuah keypad matrix 4x4.
5. Mahasiswa mampu membuat program sederhana yang memanfaatkan
keypad 4x4 dan LCD 16x2.

II. Alat Dan Bahan Praktikum


1. Board Arduino Uno R3 : 1 (satu) buah
2. Kabel USB tipe A ke B : 1 (satu) buah
3. Breadboard : 1 (satu) buah
4. Keypad 4X4 : 1 (satu) buah
5. LCD 16x2 : 1 (satu) buah
6. I2C Modul : 1 (satu) buah
7. DHT 11 : 1 (satu) buah
8. Library I2C,AdfriutKeypad dan DHT
9. Kabel Jumper male-to-female sesuai kebutuhan

III. DASAR TEORI


1. I2C (Inter Integrated Circuit)
I2C (Inter-Integrated Circuit), merupakan jalur komunikasi serial
multi-master. Dengan mengunakan komunikasi I2C hanya membutuhkan
dua jalur untuk berkomunikasi antar perangkat. Perangkat tidak
memerlukan address decoder untuk mengimplementasi jalur I2C. Dua
jalur tersebut adalah SDA (Serial Data) dan SCL (Serial Clock). SCL
merupakan jalur yang digunakan untuk mensinkronisasi transfer data pada
jalur I2C, sedangkan SDA merupakan jalur untuk data. Beberapa
perangkat dapat terhubung ke dalam jalur I2C yang sama dimana SCL dan
SDA terhubung ke semua perangkat tersebut, hanya ada satu perangkat
yang mengontrol SCL yaitu perangkat master.

Pengalamatan dalam I2C bisa 7 bit atau 10 bit. Pengalamatan 10 bit


jarang digunakan. Semua perangkat (uC dan modul-modul) yang
terhubung ke dalam jalur I2C yang sama dapat dialamati sebanyak 7 bit.
Ini berarti sebuah jalur I2C dengan pengalamatan 7 bit dapat menampung
128 (2^7) perangkat.
Arduino sendiri sudah mendukung protokol I2C/IIC. Di papan
Arduino Uno, port I2C terletak pada pin A4 untuk jalur SDA (Serial Data)
dan pin A5 untuk jalur SCL (Serial Clock). Untuk sisi software, Arduino
sudah cukup membantu kita bekerja dengan protokol ini melalui library
„Wire.h‟. Berikutnya, library ini akan dimanfaatkan untuk mengkonversi
jalur parallel LCD menjadi jalur serial I2C. Yaitu menggunakan library
LiquidCrystal_I2C.h (bersama dengan library LCD.h).

2. DHT (Digital Humadity Temprature) 11


DHT11 adalah salah satu sensor yang dapat mengukur dua parameter
lingkungan sekaligus, yakni suhu dan kelembaban udara (humidity).
Dalam sensor ini terdapat sebuah thermistor tipe NTC (Negative
Temperature Coefficient) untuk mengukur suhu, sebuah sensor
kelembaban tipe resisitif dan sebuah mikrokontroller 8-bit yang mengolah
kedua sensor tersebut dan mengirim hasilnya ke pin output dengan format
single-wire bi-directional (kabel tunggal dua arah). Jadi walaupun
kelihatannya kecil, DHT11 ini ternyata melakukan fungsi yang cukup
kompleks.
Spesifikasi Pengukuran Kelembaban Udara
 Resolusi pengukuran: 16Bit
 Repeatability: ±1% RH
 Akurasi pengukuran: 25℃ ±5% RH
 Interchangeability: fully interchangeable
 Waktu respon: 1 / e (63%) of 25℃ 6 detik
 Histeresis: <± 0.3% RH
 Long-term stability: <± 0.5% RH / yr in

Spesifikasi Pengukuran Temperatur


 Resolusi pengukuran: 16 Bit
 Repeatability: ±0.2℃
 Range: At 25℃ ±2℃
 Waktu Respon: 1 / e (63%) 10 detik

Karakteristik Electrikal
 Power supply: DC 3.5 – 5.5V
 Konsumsi arus: measurement 0.3mA, standby 60μ A
 Periode sampling : lebih dari 2 detik

3. Keypad Matrix 4x4


Keypad berfungsi sebagai interface antara perangkat (mesin)
elektronik dengan manusia atau dikenal dengan istilah HMI (Human
Machine Interface). Matrix keypad 4×4 merupakan salah satu contoh
keypad yang dapat digunakan untuk berkomunikasi antara manusia dengan
mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini
bertujuan untuk penghematan port mikrokontroler karena jumlah key
(tombol) yang dibutuhkan banyak pada suatu sistem dengan
mikrokontroler. Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat
dibuat seperti pada gambar berikut:

Proses scaning untuk membaca penekanan tombol pada matrix keypad


4×4 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi
kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga
baris ke 4. Misal kita asumsikan keypad aktif LOW (semua line kolom dan
baris dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr
dengan jalur kolom adalah jalur input dan jalur baris adalah jalur output
maka proses scaning matrix keypad 4×4 dapat di lakukan.
PROSEDURE PRAKTIKUM
Instalasi Library :
1. Langkah pertama sebelum melakukan praktikum modul 3 adalah
memasukan library kedalam Arduino IDE. Library yang di butuhkan
adalah library untuk mengakses LCD 16x2 dengan I2C modul, library
untuk mengakses sensor DHT 11 dan library untuk mengakses keypad.
2. Untuk yang menginstal sebuah library yang di lakukan adalah membuka
menu Sketch lalu pilih Include Library dan Add ZIP Library.

3. Setelah itu arahkan ke folder tempat menyimpan library tersebut, lalu pilih
library yang ingin di masukan. Dan klik open.

4. Jika berhasil maka akan ada notifikasi “library added to your libraries”
Percobaan #1: Scanning Alamat Pada modul I2C.
1. Siapkan alat dan bahan yang di butuhkan, yaitu LCD 16x2, breadboard,
modul I2C dan jumper female to male secukupnya.
2. Rangkailah seperti gambar di bawah ini.

3. Kemudian ketik program seperti di bawah ini, beri nama file


scanning_i2c.
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Memindai...");
nDevices = 0;
for (address = 1; address < 127; address++ )
{
Wire.beginTransmission(address);
error = Wire.endTransmission();

if (error == 0)
{
Serial.print("I2C terbaca pada alamat 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}
}
if (nDevices == 0)
Serial.println("Tidak ada satupun alamat I2C
yang ditemukan\n");
else
Serial.println("selesai\n");
delay(3000);
}
4. Hubungkan board Arduino ke Laptop/komputer. Lalu lakukan upload
program.
5. Setelah berhasil, bukalah Serial monitor untuk melihat hasil pembacaan
alamat I2C.

6. Setelah mendapatkan alamat dari I2C. Catat alamat tersebut untuk di


gunakan pada percobaan selanjutnya.
[1] Apa fungsi dari Serial Monitor?
[2] Apa maksud dari potongan program berikut?
for (address = 1; address < 127; address++ )
[3] Jika I2C bisa mengalamatkan sampai 127 alamat. pada alamat berapa
I2C yang digunakan terdeteksi?
Percobaan #2: Akses Digital Sensor DHT 11
1. Pada percobaan kedua ini, setelah mendapatkan alamat dari I2C. Langkah
selanjutnya adalah memasukan alamat I2C kedalam program. Dan
menambahkan sensor DHT 11 pada rangkaian. Seperti gambar di bawah
ini.

2. Pastikan rangakaian sudah sesuai dengan gambar diatas.


3. Ketik program pada Arduino IDE seperti di bawah ini, jangan sampai lupa
memasukan alamat kedalam scriptnya. Dan beri nama programnya dht11
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(ALAMAT_I2CNYA, 16, 2);
void setup()
{ dht.begin();
lcd.begin();
lcd.backlight();
}

void loop()
{
int humidity = dht.readHumidity();
float celcius = dht.readTemperature();
lcd.setCursor(0,0);
lcd.print("Hum :");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Temp:");
lcd.print(celcius);
lcd.print(char(223));
lcd.print("C");
delay(500);
}
4. Setelah program di simpan. Hubungkan board Arduino ke
laptop/komputer. Lakukan upload program.
5. Setelah upload program berhasil maka LCD akan menampilkan Tempratur
suhu dalam satuan drajat celsius. Dan menampilkan nilai dalam satuan %.
6. Jika tulisa tidak terlihat, bisa di atur tingkat kejelasan text nya dengan
memutar variabel resistor pada modul I2C seperti gambar di bawah ini
menggunakan obeng +.

[4] Apa fungsi dari modul I2C, apa bedanya dengan menggunakan dan
tidak menggunakan modul I2C pada LCD 16x2?
[5] Apa bedanya pada saat kemarin menggunakan LM35 dan sekarang
menggunakan DHT 11?
[6] Kenapa DHT 11 disebut sensor digital? Dan kenapa LM35 disebut
sensor analog?
Percobaan #3: Akses Keypad Matrix 4x4
1. Pada percobaan ke 3 ini, cukup melepaskan rangkaian DHT 11 dan
menambahkan keypad pada arduino, pastikan rangkai sesuai gambar
dibawah ini.

2. Pastikan keypad tidak terbalik dan sesuai pada gambar.


3. Tulisakan kode program seperti dibawah ini. Dan simpan dengan nama
keypad.
#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(ALAMAT_I2CNYA, 16, 2);

const byte ROWS = 4;


const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] = {3, 2, 1, 0};

Keypad keypad = Keypad( makeKeymap(keys), rowPins,


colPins, ROWS, COLS );

void setup() {
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Key Is : ");
}
void loop() {
char key = keypad.getKey();
if (key) {
lcd.setCursor(9, 0);
lcd.print(key);
}
}
4. Hubungkan board Arduino ke laptop/komputer. Lalu upload program.
[7] Apa fungsi dari sebuah library?
[8] Kenapa keypad yang digunakan disebut keypad matrix?
[9] Apa maksud dari potongan program berikut :
char key = keypad.getKey();
if (key)

Percobaan #4: Membuat Sistem Login Sederhana


1. Pada percobaan ke 4 ini, rangkaian yang di gunakan sama seperti
percobaan ke 3.
2. Cukup Tulisakan kode program seperti dibawah ini. Dan simpan dengan
nama login.
#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(ALAMAT_I2CNYA, 16, 2);
byte state;
byte code;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {7, 6, 5, 4};
byte colPins[COLS] = {3, 2, 1, 0};
char data_pass[6] = "123456";
Keypad keypad = Keypad( makeKeymap(keys), rowPins,
colPins, ROWS, COLS );

void setup() {
lcd.begin();
lcd.backlight();
reset();
}
void reset()
{ lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sistem Keamanan");
lcd.setCursor(0, 1);
lcd.print("PIN:");
state = 0;
code = 0;
}
void gagal()
{ lcd.setCursor(0, 0);
lcd.print("Password Salah!");
delay(2000);
lcd.clear();
reset();
}

void sukses()
{ a:
lcd.setCursor(0, 0);
lcd.print("Login Sukses..!");
lcd.setCursor(0, 1);
lcd.print("* : Logout");
char key = keypad.getKey();
if (key != '*')
{
goto a;
}
else
{
reset();
}
}
void loop() {
char key = keypad.getKey();
if (key)
{ if (key != '#')
{
lcd.setCursor(state + 5, 1);
if (data_pass[state] == key)
{ code++;
}
else
{
code--;
}
lcd.print("*");
delay(100);
state++;
}
else
{ if (code == 6)
{
lcd.clear();
sukses();
}
else
{
lcd.clear();
gagal();
}
}
}
}
3. Hubungkan board Arduino ke laptop/komputer. Lalu upload program.
4. Untuk variabel yang menentukan batas maksimal suhu, bisa disesuaikan
sesuai kondisi suhu ruangan saat praktikum.
[10] Apa fungsi dari sebuah void/fungsi?
[11] Mengapa pada percobaan ke 4 variabel data_pass menggunakan tipe
data char dan aray?
[12] Mengapa di butuhkan void reset ?
[13] Apa maksud dari potongan program berikut :
goto a;
[14] Mengapa pada saat percobaan ke 3 key yang di tekan berubah2 di
LCD, tidak bergeser ke kanan?
[15]
TUGAS
1. Jawablah 14 pertanyaan yang telah di sisipkan di setiap percobaan!
2. Modifikasilah program pada percobaan ke 4, sehingga memenuhi
ketentuan berikut :
 Panjang PIN adalah Digit terakhir dari NIM Praktikan.
Contoh : 17201024 = maka panjang pin adalah 4 digit.
(note : jika digit NIM terakhir = 0 maka, panjangnya adalah 10 digit).
 Jika sudah 3 kali gagal, maka ada tulisan “PIN DIBLOKIR”dan user
tidak bisa memasukan pin lagi.
MODUL PRAKTIKUM
MIKROPROSSESOR

MODUL IV
Modul GSM dan Komunikasi Serial

Disusun Oleh :
SIGIT PRAMONO, S.T., M.T.

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Praktikum IV
Modul GSM dan Komunikasi Serial
I. Tujuan Praktikum
1. Mahasiswa mampu mengetaui cara menggunakan komunikasi serial pada
Arduino.
2. Mahasiswa mampu mengakses modul gsm SIM800C.
3. Mahasiswa dapat mengetahui perintah – perintah AT Commands dasar
pada SIM800C.
4. Mahasiswa dapat melakukan pengiriman dan pembacaan SMS, Menerima
dan melakukan panggilan telpon serta melakukan koneksi GPRS pada
modul GSM SIM800C.
5. Mahasiswa mampu membuat sebuah program otomatis untuk melakukan
SMS, Panggilan Telepon maupun Koneksi GPRS.

II. Alat Dan Bahan Praktikum


1. Board Arduino Uno R3 : 1 (satu) buah
2. Kabel USB tipe A ke B : 1 (satu) buah
3. Breadboard : 1 (satu) buah
4. Modul GSM SIM800C : 1 (satu) buah
5. Antena SIM800 : 1 (satu) buah
6. Diode N4002 : 1 (satu) buah
7. SIM CARD GSM Mikro : 1 (satu) buah
8. Kabel Jumper male-to-male sesuai kebutuhan

III. DASAR TEORI


1. Komunikasi Serial
Sebuah papan Arduino dibekali beberapa pilihan protokol
komunikasi data yakni serial asinkron dan serial sinkron (I2C, TWI dan
SPI). Serial asinkron adalah protokol komunikasi serial yang tidak
memiliki jalur clock sinkronisasi, dan sebaliknya protokol komunikasi
serial sinkron memilikinya.
Sebuah papan Arduino minimal memiliki satu buah hardware serial
dalam bentuk UART (Universal Asynchronous Receiver Transmitter)
tergantung pada tipe papannya. Sebagai contoh, papan Arduino Uno
memiliki satu buah serial UART, namun papan Arduino Mega memiliki 4
buah serial UART. Untuk Arduino Uno serial UART berada pada pin
digital 0 (Rx) dan 1 (Tx). Jadi, selain sebagai pin digital untuk input atau
output, pin 0 dan 1 memiliki fungsi khusus menjadi pin serial untuk
komunikasi serial asinkron/UART.
Secara umum wiring antar device yang berkomunikasi secara serial
asinkron adalah sebagai berikut :
Ilustrasi wiring komunikasi serial uart arduino
SoftwareSerial adalah library Arduino yang mampu mengubah pin
digital menjadi pin serial. Dengan demikian Anda dapat memiliki lebih
dari satu pin serial pada papan Arduino (Uno) yang dapat digunakan untuk
berbagai keperluan.

2. SIM800C.
SIM800 adalah salah satu modem GSM/GPRS yang bekerja di
empat band frekuensi, yakni 850, 900, 1800 dan 1900 MHZ. Sedangkan
GPRs-nya mengadopsi teknologi multi slot class 12/10 dan mendukung
skema coding GPRS CS1-CS4.

3. AT Commands SIM800C
AT Command merupakan kepanjangan dari Attention Command,
dan selalu digunakan untuk memulai pengiriman baris perintah dari
Terminal Equipment (TE) kepada Terminal Adaptor (TA). AT Command
yang diberikan kepada modem GSM/CDMA dilakukan untuk melakukan
sesuatu hal. Setiap versi dari Modul GSM memiliki daftar AT Command
tersendiri yang biasanya di kumpulkan dalam 1 Ebook pdf. Untuk
SIM800C sendiri AT-Command yang di gunakan adalah “SIM800
Series_AT Command Manual_V1.09”

PROSEDURE PRAKTIKUM
Percobaan #1: Mengakses SIM800C
1. Siapkan Board Arduino UNO, Modul SIM800C, SIM CARD serta kabel
jumper Male to Male secukupnya. Pasang Antena dan Masukan SIM
CARD kedalam Modul GSM SIM800C Seperti Gambar di bawah ini :

2. Rangkailah Arduino dan Modul GSM seperti gambar di bawah ini :


3. Pastikan kembali rangkaian telah sesuai dengan Gambar diatas.
4. Buka Arduino IDE dan ketik program seperti di bawah ini, lalu simpan
dengan nama akses_serial.
#include <SoftwareSerial.h>
SoftwareSerial SIM800C(7, 8); //RX TX
void setup()
{
power();
Serial.begin(9600);
SIM800C.begin(9600);
Serial.println("IT TELKOM PURWOKERTO -
SIM800C");
}
void loop() {
if (SIM800C.available()) {
Serial.write(SIM800C.read());
}
if (Serial.available()) {
SIM800C.write(Serial.read());
}
}

void power()
{
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
delay(2500);
digitalWrite(9, LOW);
}

5. Hubungkan board Arduino ke Laptop/komputer. Lalu lakukan upload


program.
6. Setelah berhasil, bukalah Serial monitor untuk melakukan perintah AT
Commands pada Modul SIM800C.
7. Ketik Perintah seperti Tabel dibawah ini dan Catat Respon dari Modem
Tersebut.
Perintah Fungsi
AT Test AT Command
AT+CSQ Melihat kekuatan sinyal
Untuk mengetahui nama provider kartu
AT+COPS?
GSM
AT+CGMI Untuk mengetahui nama atau jenis ponsel
AT+CGMM Untuk mengetahui kelas ponsel
AT+CBC Untuk mengetahui level baterai
AT+CGSN Untuk menanyakan serial number modem,
AT+CGMR Mengecek versi keluaran modem.
AT+CUSD=1,"*123#" Menjalankan perintah USSD
[1] Apa yang di maksud Komunikasi Serial?
[2] Apa fungsi dari software serial?
[3] Apa fungsi dari void power()?
[4] Sebutkan kecepatan boudreate yang dapat di gunakan untuk
komunikasi serial!
[5] Jelaskan maksud dari
if (SIM800C.available()) {
Serial.write(SIM800C.read());
}
if (Serial.available()) {
SIM800C.write(Serial.read());
}
[6] Apa fungsi dari AT command pada sim800c?
[7] Jelaskan maksud dari respon perintah AT+CSQ, AT+COPS? dan
AT+CBC!

Percobaan #2: Membaca Semua Pesan


1. Bersihkan Layar Serial Monitor dengancara mengklik “Clear Output”.

2. Bersihkan Serial Monitor, lalu Ketikan perintah di bawah ini untuk


membaca Semua Pesan.
Perintah Fungsi
AT+CMGF=1 Mengeset Modem sebagai Mode text.
AT+CMGL="ALL" Perintah untuk Melihat Semua Pesan
Percobaan #3: Melakukan dan menerima panggilan Telepon
1. Bersihkan Serial Monitor, lalu Ketikan perintah di bawah ini untuk
Melakukan panggilan.
Perintah Fungsi
Perintah Untuk melakukan panggilan
ATD082321376118;
Telepon.
ATH Perintah untuk Mengakhiri Panggilan

Percobaan #4: Koneksivitas GPRS untuk GET HTTP


1. Bersihkan Serial Monitor, lalu Ketikan perintah di bawah ini untuk
mengaktifkan koneksi GPRS.
Perintah Fungsi
Terhubung dengan
AT+CGATT=1
GPRS
AT+CSTT="internet","","" Memulai task
Mengaktifkan koneksi
AT+CIICR
wireless GPRS
AT+CIFSR Get Public IP address
AT+SAPBR=3,1,"CONTYPE","GPRS" Inisiasi protokol SAP
AT+SAPBR=3,1,"APN","internet" Set APN
AT+SAPBR=1,1 Inisiasi protokol SAP
AT+HTTPINIT Inisiasi HTTP service
AT+HTTPPARA="CID",1 Set HTTP session
AT+HTTPPARA="URL","http://kontrol Set HTTP URL
cerdas.com/a/modul4.html"
Start session : 0 -
AT+HTTPACTION=0
GET
Membaca respons
AT+HTTPREAD
dari HTTP server
Mengakhiri HTTP
AT+HTTPTERM
service

Percobaan #5: Kirim SMS dengan kode program


1. Lepaskan Arduino dari komputer/laptop lalu Ketik kode program di bawah
ini dan simpan dengan nama SMS_sim800.
#include <SoftwareSerial.h>
SoftwareSerial SIM800C(7, 8);
void setup() {
power();
Serial.begin(9600);
Serial.println("IT TELKOM PURWOKERTO - SIM800C");
SIM800C.begin(9600);
delay(5000);
Serial.println("Kirim SMS...");
SIM800C.write("AT+CMGF=1\r\n");
delay(1000);
SIM800C.write("AT+CMGS=\"085727615213\"\r\n");
delay(1000);
SIM800C.write("SIM800C - SMS BERHASIL");
delay(1000);
SIM800C.write((char)26); //CTRL-Z
delay(20000);
Serial.println("SMS Terkirim!");
}
void loop()
{
}

void power()
{
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);
delay(2500);
digitalWrite(9, LOW);
}
2. Setelah itu hubungkan arduino ke komputer/laptop dan lakukan upload
program ke Board Arduino.
3. Setelah berhasil, bukalah Serial monitor.
[8] Apa kegunaan dari karakter "\" pada perintah
SIM800C.println("AT+CMGS=\"082321376118\"\r");
[9] Sebutkan minimal 4 perangkat yang menggunakan Komunikasi
Serial!
[10] Sebutkan minimal 2 perangkat yang menggunakan AT Command
manual!

TUGAS
1. Jawablah pertanyaan yang telah di sisipkan di setiap percobaan di atas.
2. Ubah perintah-perintah manual pada percobaan ke 4 menjadi sebuah
program seperti pada percobaan ke 5.

(Hanya program - tidak usah menggunakan simulasi)


MODUL PRAKTIKUM
MIKROPROSSESOR

MODUL V
Komunikasi Ethernet

Disusun Oleh :
SIGIT PRAMONO, S.T., M.T.

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2019
Praktikum V
Komunikasi Ethernet
I. Tujuan Praktikum
1. Mahasiswa mampu mengetaui cara menggunakan Ethernet Shield W5100
pada Arduino Uno.
2. Mahasiswa mampu mengkonfigurasi IP Statis dan Dinamis pada Ethernet
Shield W5100.
3. Mahasiswa dapat melakukan pengetesan pada jaringan yang telah
dibangun.
4. Mahasiswa dapat mengkonfigurasi Ethernet Shield W5100 sebagai Web
Server.
5. Mahasiswa mampu membuat sebuah sistem IOT sederhana untuk
monitoring Suhu dan mengontrol 2 buah LED.

II. Alat Dan Bahan Praktikum


1. Board Arduino Uno R3 : 1 (satu) buah
2. Kabel USB tipe A ke B : 1 (satu) buah
3. Breadboard : 1 (satu) buah
4. Modul Ethernet W5100 : 1 (satu) buah
5. Kabel LAN : 1 (satu) buah
6. Led Merah 5 mm : 1 (satu) buah
7. Led Hijau 5 mm : 1 (satu) buah
8. Resistor 330 Ohm : 2 (dua) buah
9. LM 35 : 1 (satu) buah
10. Kabel Jumper male-to-male sesuai kebutuhan

III. DASAR TEORI


1. Ethernet Shield
Ethernet Shield adalah modul yang digunakan untuk
mengkoneksikan Arduino dengan internet menggunakan kabel (Wired).
Arduino Ethernet Shield dibuat berdasarkan pada Wiznet W5100 ethernet
chip. Wiznet W5100 menyediakan IP untuk TCP dan UDP, yang
mendukung hingga 4 socket secara simultan. Untuk menggunakanya
dibutuhkan library Ethernet dan SPI. Dan Ethernet Shield ini
menggunakan kabel RJ-45 untuk mengkoneksikanya ke Internet, dengan
integrated line transformer dan juga Power over Ethernet.
2. IP Statis dan Dinamis
Agar suatu perangkat dapat terhubung dalam jaringan internet,
perangkat tersebut terlebih dahulu harus memiliki identitas unik dalam
jaringan, yakni IP (Internet Protocol) address. IP address dari sebuah
perangkat merupakan identifier yang unik, dalam standard IPv4, yang
mana setiap setiap byte memiliki nilai 0 hingga 255. Untuk IP address
192.168.xxx.xxx, bersifat non routable, packet data yang dikirimkan
dalam jaringan tidak dapat melewati switch internet. Meski begitu
perangkat dengan IP address 192.168.xxx.xxx, dapat terhubung dalam
physical network. Oleh karena itu perangkat dalam home network
biasanya menggunakan IP address semisal 192.168.xxx.xxx.
IP address dari suatu perangkat dapat bersifat static atau dynamic.
Sebuah perangkat yang tidak memiliki static IP address dapat meminta IP
address dari komputer manapun dalam jaringan yang sama sebagai DHCP
(Dynamic Host Configuration Protocol) server. Tergantung pada
konfigurasi pada server, IP address yang tersedia dapat diberikan pada
perangkat secara random atau berdasarkan pada identitas perangkat
tersebut.
Setiap perangkat yang terhubung dalam jaringan memiliki MAC
(Media Access Control) address. MAC address tersusun dari kumpulan
enam byte, yang biasanya ditampilkan dalam bilangan berbasis
hexadecimal, sebagai contoh 5e:a4:18:f0:8a:f6. Request MAC address
tersebut dikirimkan lewat jaringan, sehingga DHCP server dapat
menentukan untuk membalas request tersebut atau mengacuhkannya.
Dengan hanya memiliki IP address saja tidak cukup bagi perangkat
tersebut untuk berkomunikasi dengan perangkat lainnya. Packet data
tersebut harus terlebih dahulu mencapai perangkat khusus, yang disebut
gateway. Perangkat gateway tersebut juga harus diberikan IP address yang
dikenali oleh perangkat lainnya dalam jaringan.
3. Web Server
Web server adalah perangkat lunak yang berfungsi sebagai
penerima permintaan yang dikirimkan melalui browser kemudian
memberikan tanggapan permintaan dalam bentuk halaman situs web atau
lebih umumnya dalam dokumen HTML.
Arduino dapat membuat sebuah web server sederhana semacam
Apache, Nginx, Mongoose, dll. Tentunya dengan skala yang terbatas.
Web server dengan Arduino ini banyak dimanfaatkan untuk meng-
interface-kan perangkat I/O melalui protokol TCP/IP. Untuk media
jaringannya, tergantung kebutuhan, bisa melalui jaringan intranet (LAN)
maupun internet.
PROSEDURE PRAKTIKUM
Percobaan #1: Konfigurasi IP Dinamis (DHCP)
1. Siapkan Board Arduino UNO, Ethernet Shield W5100,Kabel USB type A
to B serta kabel LAN. Hubungkan Arduino Uno dengan Ethernet Shield.
2. Hubungkan Ethernet Shield dan Router dengan kabel LAN seperti gambar
dibawah ini :

3. Pastikan Konektor RJ-45 sudah terhubung dengan baik pada perangkat.


4. Hubungkan Komputer ke WiFi sesuai dengan SSID Router yang di
gunakan : “Modul_5_Mikroprosesor”/ “Modul_5_Mikroprosesor2” /
“Modul_5_Mikroprosesor3”.
5. Buka Arduino IDE, pastikan sudah menggunakan Arduino IDE dengan
versi yang terbaru. Kemudian ketik program di bawah ini dan ganti MAC
address sesuai dengan MAC address yang tertulis pada box, lalu simpan
dengan nama ip_dhcp.
#include <SPI.h>
#include <Ethernet.h>
byte mac[ ] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
char perangkat[4][9] = {"NO DEVICE", "W5100",
"W5200", "W5500"};
void setup()
{ Serial.begin(9600);
Serial.println("Ethernet - DHCP IP Address");
Ethernet.begin(mac);
Serial.print("Local IP Address : ");
Serial.println(Ethernet.localIP());
Serial.print("IP Gateway : ");
Serial.println(Ethernet.gatewayIP());
Serial.print("Subnet Mask : ");
Serial.println(Ethernet.subnetMask());
Serial.print("DNS Server IP : ");
Serial.println(Ethernet.dnsServerIP());
byte macBuffer[6];
Ethernet.MACAddress(macBuffer);
Serial.print("MAC Address : ");
for (byte octet = 0; octet < 6; octet++)
{
Serial.print(macBuffer[octet], HEX);
if (octet < 5) {
Serial.print('-');
}
}
Serial.println();
Serial.print("Status Perangkat : Ethernet");

Serial.println(perangkat[Ethernet.hardwareStatus()])
;
}

void loop()
{
}
[1] Apa kegunaan dari library <SPI.h>?
6. Hubungkan board Arduino ke Laptop/komputer. Lalu lakukan upload
program.
7. Setelah berhasil, bukalah Serial monitor untuk melihat data jaringan yang
di dapatkan pada DHCP router.
8. Kemudian buka “Command Prompt” atau CMD pada komputer. Lakukan
PING pada IP yang di dapatkan.

[2] Apa fungsi dari Router dalam rangkaian percobaan 1?


[3] Apa jenis Konfigurasi Kabel LAN yang di gunakan pada praktikum
ini?
[4] Apa fungsi dari perintah Ethernet.localIP()?
[5] Apa fungsi dari PING?

Percobaan #2: Konfigurasi IP Statis


1. Lepaskan Kabel USB dari Arduino pada Laptop/komputer. Lalu
Hubungkan Ethernet Shield dan Komputer dengan kabel LAN seperti
gambar dibawah ini :
2. Lakukan konfigurasi IP Statis pada Ethernet Card pada laptop dengan cara
pertama buka “Menu Windows”, kemudian lakukan pencarian dengan
mengetik keyword “Control Panel”

3. Kemudian pilih “Network and Internet”

4. Lalu pilih “Network and Sharing Center” dan pilih “Ethernet”

5. Pilih “Properties” lalu pilih “Internet Protocol Version 4(TCP/IPV4)”


kemudian pilih “Properties”.
6. Pilih “Use the following IP address”, kemudian isi tabel sesuai dengan
gambar di bawah ini, lalu “Ok”.
7. Buka Arduino IDE. Kemudian ketik program di bawah ini dan ganti MAC
address serta IP address sesuai yang tertulis pada box, lalu simpan dengan
nama ip_static.
#include <SPI.h>
#include <Ethernet.h>
byte mac[ ] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
byte ip[ ] = { 192, 168, 137, 10};
byte dns[ ] = { 192, 168, 137, 1 };
byte gateway[ ] = { 192, 168, 137, 1 };
byte subnet[ ] = { 255, 255, 255, 0 };
char perangkat[4][9] = {"NO DEVICE", "W5100",
"W5200", "W5500"};

void setup()
{ Serial.begin(9600);
Serial.println("Ethernet - Static IP Address");
Ethernet.begin(mac, ip, dns, gateway, subnet);
Serial.print("Local IP Address : ");
Serial.println(Ethernet.localIP());
Serial.print("IP Gateway : ");
Serial.println(Ethernet.gatewayIP());
Serial.print("Subnet Mask : ");
Serial.println(Ethernet.subnetMask());
Serial.print("DNS Server IP : ");
Serial.println(Ethernet.dnsServerIP());
byte macBuffer[6];
Ethernet.MACAddress(macBuffer);
Serial.print("MAC Address : ");
for (byte octet = 0; octet < 6; octet++)
{
Serial.print(macBuffer[octet], HEX);
if (octet < 5) {
Serial.print('-');
}
}
Serial.println();
Serial.print("Status Perangkat : Ethernet");

Serial.println(perangkat[Ethernet.hardwareStatus()
]);
}

void loop()
{
}
[6] Apa yang membedakan printah DHCP dan Static IP pada kode
program?
8. Hubungkan board Arduino ke Laptop/komputer. Lalu lakukan upload
program.
9. Setelah berhasil, bukalah Serial monitor untuk melihat data jaringan yang
telah di atur.
10. Kemudian buka “Command Prompt” atau CMD pada komputer. Lakukan
PING pada IP yang tertulis pada BOX.

[7] Dari mana IP Address yang didapatkan pada percobaan pertama?


[8] Mengapa komputer/laptop kita perlu di atur IP nya sedemikian rupa
pada percobaan 2?

Percobaan #3: Web Server – Monitoring Suhu


1. Lepaskan Kabel USB dari Arduino pada Laptop/komputer. Siapkan LM35
dan kabel jumper. Kemudian rangkai seperti gambar dibawah ini.

2. Pastikan bagian tengah/output dari LM35 terhubung dengan A0, lalu kaki
(+) dengan 5V dan kaki (–) terhubung dengan GND.
3. Buka Arduino IDE. Kemudian ketik program di bawah ini dan ganti MAC
address serta IP address sesuai yang tertulis pada box, lalu simpan dengan
nama web_server_monitoring_suhu.
#include <SPI.h>
#include <Ethernet.h>
byte mac[ ] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE,
0xED};
IPAddress ip(192, 168, 137, 10);
EthernetServer server(80);
void setup()
{
Serial.begin (9600);
Ethernet.begin(mac, ip);
server.begin();
}
void loop( )
{ float suhu = analogRead(A0) / 2.0479;
EthernetClient Ethernet = server.available();
if (Ethernet){
boolean currentLineIsBlank = true;
while (Ethernet.connected ())
{
if (Ethernet.available())
{
char character = Ethernet.read ( );
Serial.write(character);
if (character == '\n' &&
currentLineIsBlank)
{
Ethernet.println ("HTTP/1.1 200 OK");
Ethernet.println ("Content-Type:
text/html");
Ethernet.println ("Connection: close");
Ethernet.println ("Refresh: 3");
Ethernet.println ();
Ethernet.println ("<!DOCTYPE HTML>");
Ethernet.println ("<html>");
Ethernet.print ("<Title>Modul
5</Title>");
Ethernet.print ("<h1>IOT - Monitoring
Suhu</h1>");
Ethernet.print ("<h3>Suhu: ");
Ethernet.print (suhu);
Ethernet.print (" C</h3>");
Ethernet.println ("<br>");
Ethernet.println ("</html>");
break;
}
if ( character == '\n')
{
currentLineIsBlank = true;
}
else if (character != '\r')
{
currentLineIsBlank = false;
}
}
}
delay(1);
Ethernet.stop();
Serial.println("Ethernet disconnected");
}
}
4. Hubungkan board Arduino ke Laptop/komputer. Lalu lakukan upload
program.
5. Kemudian buka WEB Browser pada Laptop dan ketik IP yang tertulis
pada BOX.

6. Buka Serial Monitor.


[9] Apa yang dimaksud WEB Server? apa bedanya dengan WEB Client?
[10] Apa fungsi dari Ethernet.println ("Refresh: 3"); pada percobaan 3?
[11] Apa yang di maksud skrip berikut EthernetServer server(80);?

Percobaan #4: Web Server – Kontrol 2 LED


1. Lepaskan Kabel USB dari Arduino pada Laptop/komputer. Siapkan 2
LED, 2 Resistor 330 Ohm dan kabel jumper. Kemudian rangkai seperti
gambar dibawah ini.

2. Pastikan rangkaian sudah sesuai dengan gambar.


3. Buka Arduino IDE. Kemudian ketik program di bawah ini dan ganti MAC
address serta IP address sesuai yang tertulis pada box, lalu simpan dengan
nama web_server_kontrol_led.
#include <SPI.h>
#include <Ethernet.h>
byte mac[ ] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
byte ip[ ] = { 192, 168, 137, 10 };
EthernetServer server(80);
String readString;
int led1 = 8;
int led2 = 9;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Ethernet.begin(mac, ip);
server.begin();
}
void loop() {
EthernetClient Ethernet = server.available();
if (Ethernet) {
while (Ethernet.connected()) {
if (Ethernet.available()) {
char c = Ethernet.read();
if (readString.length() < 100) {
readString += c;
}
if (c == '\n') {
Serial.println(readString);
Ethernet.println("HTTP/1.1 200 OK");
Ethernet.println("Content-Type:
text/html");
Ethernet.println ();
Ethernet.println ("<!DOCTYPE HTML>");
Ethernet.println("<HTML>");
Ethernet.println("<HEAD>");
Ethernet.println("<TITLE>Modul
5</TITLE>");
Ethernet.println("</HEAD>");
Ethernet.println("<H1>IOT - Kontrol
LED</H1>");
Ethernet.println("<hr>");
Ethernet.println("<br>");
Ethernet.println("<br>");
Ethernet.println("<input type=\"button\"
value=\"Led 1 ON\"
onclick=\"window.location.href='/?button1on'\"/>")
;
Ethernet.println("<input type=\"button\"
value=\"Led 1 OFF\"
onclick=\"window.location.href='/?button1off'\"/>"
);
Ethernet.println("<br><br>");
Ethernet.println("<input type=\"button\"
value=\"Led 2 ON\"
onclick=\"window.location.href='/?button2on'\"/>")
;
Ethernet.println("<input type=\"button\"
value=\"Led 2 OFF\"
onclick=\"window.location.href='/?button2off'\"/>"
);
Ethernet.println("<br>");
Ethernet.println("<br>");
Ethernet.println("<hr>");
Ethernet.println("</HTML>");
delay(1);
Ethernet.stop();
if (readString.indexOf("?button1on") > 0) {
digitalWrite(led1, HIGH);
}
if (readString.indexOf("?button1off") > 0) {
digitalWrite(led1, LOW);
}
if (readString.indexOf("?button2on") > 0) {
digitalWrite(led2, HIGH);
}
if (readString.indexOf("?button2off") > 0) {
digitalWrite(led2, LOW);
}
readString = "";

}
}
}
}
}
4. Hubungkan board Arduino ke Laptop/komputer. Lalu lakukan upload
program.
5. Kemudian buka WEB Browser pada Laptop dan ketik IP yang tertulis
pada BOX.
6. Buka Serial Monitor.
[12] Apa maksud dari fungsi “readString.indexOf” ?
[13] Mengapa kita dapat memonitoring suhu dan mengontrol LED pada
jaringan yang tidak terhubung dengan internet?

TUGAS
1. Jawablah 13 pertanyaan yang telah di sisipkan di setiap percobaan di atas!
2. Cari penjelasan tentang fungsi dan kegunaan dari 12 fitur yang disediakan
pada Library Ethernet seperti gambar dibawah ini :

Anda mungkin juga menyukai