100% menganggap dokumen ini bermanfaat (1 suara)
379 tayangan67 halaman

Modul Arduino Uno SMK NEGERI 7 SAROLANGUN

Materi Praktik Arduino Uno dan NodeMcu

Diunggah oleh

aanefendi32
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
100% menganggap dokumen ini bermanfaat (1 suara)
379 tayangan67 halaman

Modul Arduino Uno SMK NEGERI 7 SAROLANGUN

Materi Praktik Arduino Uno dan NodeMcu

Diunggah oleh

aanefendi32
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/ 67

MODUL ARDUINO UNO DAN NodeMCU

ESP82866

IOT SMK NEGERI 7 SAROLANGUN


By.Aan Tohir Efendi, S.Kom

Smk Negeri 7 Sarolangun


1.1. Mikrokontroler
mikrokontroller adalah komputer yang berukuran mikro dalam satu chip IC (integrated
circuit) yang terdiri dari processor, memory, dan antarmuka yang bisa diprogram. Jadi disebut
komputer mikro karena dalam IC atau chip mikrokontroller terdiri dari CPU, memory, dan
I/O yang bisa kita kontrol dengan memprogramnya. I/O juga sering disebut dengan GPIO
(General Purpose Input Output Pins) yang berarti : pin yang bisa kita program sebagai input
atau output sesuai kebutuhan
2.1. Arduino UNO
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14
pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM
dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan
tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya
menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau
listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.
Setiap 14 pin digital pada arduino uno dapat digunakan sebagai input dan output,
menggunakan fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut
beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu arus
maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara default) 20-50
kOhm.

Gambar 1.1 Board Arduino Uno


Board Arduino terdiri dari hardware / modul mikrokontroller yang siap pakai dan software
IDE yang digunakan untuk memprogram sehingga kita bisa belajar dengan mudah.
Kelebihan dari Arduino yaitu kita tidak direpotkan dengan rangkaian minimum sistem dan
programmer karena sudah built in dalam satu board. Bahasa yang digunakan Arduino
adalah bahasa C++.
1

Created by: Aan Tohir Efendi, S.Kom


Gambar 1.2 Skematik Arduino Uno
3.1.IoT (Internet of Things)
Menurut analisa Alexandre Ménard dari McKinsey Global Institute, internet of things
adalah sebuah teknologi yang memungkinkan kita untuk menghubungkan mesin, peralatan, dan
benda fisik lainnya dengan sensor jaringan dan aktuator untuk memperoleh data dan mengelola
kinerjanya sendiri, sehingga memungkinkan mesin untuk berkolaborasi dan bahkan bertindak
berdasarkan informasi baru yang diperoleh secara independen (Ménard, 2017).
IoT merupakan sebuah konsep komputasi yang menggambarkan masa depan dimana setiap
objek fisik dapat terhubung dengan internet dan dapat mengidentifikasi dengan sendirinya antar
perangkat yang lain (Thangavel, 2014).
Secara umum konsep IoT adalah sebuah kemampuan untuk menghubungkan dan atau
menanamkan suatu perangkat keras kedalam berbagai macam benda nyata sehingga benda
tersebut dapat berinteraksi dengan objek lain, lingkungan maupun dengan peralatan komputasi
cerdas lainnya melalui jaringan internet merupakan pengertian dan konsep dasar dari Internet
of Things atau yang sering disebut dengan IoT.
Sebagai implementasi IoT, berbagai macam perangkat Embedded System digunakan
dalam mengendalikan alat elektronik dengan ditambahkannya bahasa pemrograman C untuk
membuat alur pemrograman yang ditanamkan pada mikrokontroler sehingga alat yang kita buat
dapat berjalan seperti yang diinginkan.
Cara kerja Internet of Things cukup sederhana, setiap objek/benda harus memiliki sebuah
IP address. IP address adalah sebuah identitas dalam sebuah jaringan yang dapat membuat
benda/objek tersebut dapat diperintah oleh benda/objek lain didalam sebuah jaringan yang
sama. IP address pada benda/objek tersebut kemudian dihubungkan menuju jaringan internet

Created by: Aan Tohir Efendi, S.Kom


4.1.NodeMCU ESP8266 V.3

NodeMCU pada dasarnya adalah pengembangan dari ESP 8266 dengan firmware berbasis e-
Lua. Pada NodeMcu dilengkapi dengan micro usb port yang berfungsi untuk pemorgaman
maupun power supply. Selain itu juga pada NodeMCU di lengkapi dengan tombol push button
yaitu tombol reset dan flash. NodeMCU menggunakan bahasa pemorgamanan Lua yang
merupakan package dari esp8266. Bahasa Lua memiliki logika dan susunan pemorgaman yang
sama dengan c hanya berbeda syntax. Jika menggunakan bahasa Lua maka dapat menggunakan
tool Lua loader maupun Lua uploder.

Selain dengan bahasa Lua NodeMCU juga support dengan sofware Arduino IDE dengan
melakukan sedikit perubahan board manager pada Arduino IDE.

Sebelum digunakan Board ini harus di Flash terlebih dahulu agar support terhadap tool yang
akan digunakan. Jika menggunakan Arduino IDE menggunakan firmware yang cocok yaitu
firmware keluaran dari Ai-Thinker yang support AT Command. Untuk penggunaan tool loader
Firmware yang di gunakan adalah firmware NodeMCU.

Gambar 2.1. ESP 8266 NODEMCU V3


Dibawah ini spesifikasi dari NodeMCU V3 :
SPESIFIKASI NODEMCU V3
Mikrokontroller ESP8266
Ukuran Board 57 mmx 30 mm
Tegangan Input 3.3 ~ 5V
GPIO 13 PIN
Kanal PWM 10 Kanal
10 bit ADC Pin 1 Pin

Created by: Aan Tohir Efendi, S.Kom


Flash Memory 4 MB
Clock Speed 40/26/24 MHz
WiFi IEEE 802.11 b/g/n
Frekuensi 2.4 GHz – 22.5 Ghz
USB Port Micro USB
Card Reader Tidak Ada
USB to Serial Converter CH340G

Tabel 2.1. Spesifikasi NODEMCU V3

Gambar 2.2. Skematik posisi Pin NodeMcu Dev Kit v3

Dalam Modul IOT ini kita akan menggunakan board Arduino Uno dan NodeMcu v3
(Gambar 1.2 dan Gambar 2.1). Board Arduino dan NodeMcu v3 terdiri dari hardware / modul
mikrokontroller yang siap pakai dan software IDE yang digunakan untuk memprogram sehingga
kita bisa belajar dengan mudah. Kelebihan dari Arduino yaitu kita tidak direpotkan dengan
rangkaian minimum sistem dan programmer karena sudah built in dalam satu board. Oleh sebab
itu kita bisa fokus ke pengembangan sistem.

Created by: Aan Tohir Efendi, S.Kom


Gambar 2.3 Project board dan Kabel Jumper

Untuk praktek, kita akan menggunakan project board (ada yang menyebutnya dengan istilah bread
board) dan beberapa kabel jumper untuk menghubungkan antara komponen dan Arduino (Gambar
2.3). Dengan project board kita tidak perlu menyolder rangkaian sehingga relatif mudah dan cepat
dalam merangkai. Project board memungkinkan kita untuk membangun dan membongkar
rangkaian dengan cepat 3 sehingga sangat cocok untuk eksperimen. Tapi jika kita ingin membuat
rangkaian yang permanen, maka kita harus menggunakan PCB.

Gambar 2.4. Peta jalur pada project board

Yang terpenting adalah, kita harus memahami jalur-jalur pada project board. Project board terdiri
dari jalur vertikal dan jalur horisontal. Jalur vertikal ada di bagian tengah yang terdiri dari 2 x 64
jalur. Masing-masing jalur terdiri dari 5 titik vertikal, misal jalur 1A-1B-1C-1D-1E dan jalur 1F-
1G-1H-1I-1J yang kedua tidak saling tersambung. Jalur horisontal sebanyak 8 jalur, 4 jalur ada di
bagian atas dan 4 jalur lagi di bagian bawah. Jalur ini bisa digunakan untuk power supply (VCC

Created by: Aan Tohir Efendi, S.Kom


dan GND) untuk rangkaian. Untuk lebih jelasnya, silakan perhatikan Gambar 2.4. Garis Merah
menunjukkan bahwa lubang tersebut terhubung secara fisik.

Created by: Aan Tohir Efendi, S.Kom


A. ARDUINO IDE
Arduino IDE adalah software yang digunakan untuk membuat sketch pemrogaman atau
dengan kata lain arduino IDE sebagai media untuk pemrogaman pada board yang ingin
diprogram. Arduino IDE ini berguna untuk mengedit, membuat, meng-upload ke board
yang ditentukan, dan meng-coding program tertentu. Arduino IDE dibuat dari bahasa
pemrogaman JAVA, yang dilengkapi dengan library C/C++(wiring), yang membuat
operasi input/output lebih mudah.

PRKATIK
A. Instalasi Arduino IDE
1. Menuju website arduino untuk mendownload File Software Arduino IDE untuk
Windows https://www.arduino.cc/en/Main/Software

Gambar. Download Arduino IDE


2. Setelah selesai download silahkan buka dengan klik kiri dua kali atau klik kanan open
kemudian akan muncul License Agreement atau Persetujuan Instalasi, klik tombol I Agree
untuk memulai install software Arduino IDE.
3. Setelah selesai download silahkan buka dengan klik kiri dua kali atau klik kanan open
kemudian akan muncul License Agreement atau Persetujuan Instalasi, klik tombol I
Agree untuk memulai install software Arduino IDE.
4. Untuk Installation Option pilih semua option dan klik tombol Next.
5. Installation Folder atau Pilihan Folder untuk memilih folder tempat menyimpan program
arduino dan klik tombol install untuk memulai proses instalasi software.
6. Proses instalasi di mulai,program di extract ke Windows.

Created by: Aan Tohir Efendi, S.Kom


7. Saat proses instalasi sedang berlangsung akan muncul pilihan untuk install driver, pilih
tombol instal,proses ini untuk mengenali dan melakukan komunikasi dengan board arduino
melalui port USB.
8. Setelah selesai silahkan klik close.
9. Proses instalasi Software Arduino sudah selesai terinstal di windows.Cek di Desktop
Windows atau Start Menu untuk menjalankan Software IDE Arduino.Double Klik icon
Arduino di desktop atau klik di Start Menu.

Gambar. Start Software IDE Arduino.

Created by: Aan Tohir Efendi, S.Kom


10. Jendela Awal Software IDE Arduino

Gambar. Jendela Awal Software IDE Arduino.

Arduino IDE berhasil di install dan dijalankan pada Windows 10.


Untuk dapat mengunggah kode ke papan NodeMCU membutuhkan add-on ESP8266, cara install
nya adalah sebagai berikut:
B. Install ESP8266 Add-on di Arduino IDE
1. Pada Arduino IDE, Menuju menu File > Preferences (atau tekan CTRL+comma)

Created by: Aan Tohir Efendi, S.Kom


2. Pada Jendela Preferences,
masukan http://arduino.esp8266.com/stable/package_esp8266com_index.json
pada “Additional Boards Manager URLs” seperti pada gambar dibawah ini

3. Buka Boards Manager, Tools > Board > Boards Manager

10

Created by: Aan Tohir Efendi, S.Kom


4. Cari ESP8266 pada kotak pencarian, klik tombol intall pada esp8266 by ESP8266 by
Community

5. pastikan koneksi internet tersedia karena untuk mendownload dan install paket yang
dibutuhkan, jika sudah maka akan muncul tulisan Installed pada esp8266

11

Created by: Aan Tohir Efendi, S.Kom


C. Uji Coba setelah instalasi
1. Siapkan papan NodeMCU dan Kabel USB
2. Hubungkan NodeMCU dengan Laptop menggunakan Kabel USB
3. Buka Arduino IDE
4. Buka File > Examples > 01.Basics > Blink , untuk membuka contoh projek blink
sederhana.

5. Buka Tools > Board, pilih NodeMCU 1.0 (ESP-12E Module)

12

Created by: Aan Tohir Efendi, S.Kom


6. Buka Tools > Port , pilih port serial yang tersedia

7. Setelah itu lakukan klik tombol upload

8. Jika berhasil maka akan muncul tulisan Done Uploading dan papan NodeMCU akan
berkedip tiap detik sesuai kode example blink

13

Created by: Aan Tohir Efendi, S.Kom


Gambar. Interface Arduino IDE
Interface Arduino IDE tampak seperti gambar 1.2. bagian-bagian IDE Arduino terdiri dari:

 Verify : pada versi sebelumnya dikenal dengan istilah Compile. Sebelum aplikasi diupload
ke board Arduino, biasakan untuk memverifikasi terlebih dahulu sketch yang dibuat. Jika
ada kesalahan pada sketch, nanti akan muncul error. Proses Verify / Compile mengubah
sketch ke binary code untuk diupload ke mikrokontroller.
 Upload : tombol ini berfungsi untuk mengupload sketch ke board Arduino. Walaupun kita
tidak mengklik tombol verify, maka sketch akan di-compile, kemudian langsung diupload
ke board. Berbeda dengan tombol verify yang hanya berfungsi untuk memverifikasi source
code saja.
 New Sketch : Membuka window dan membuat sketch baru.
 Open Sketch : Membuka sketch yang sudah pernah dibuat. Sketch yang dibuat dengan IDE
Arduino akan disimpan dengan ekstensi file .ino
 Save Sketch : menyimpan sketch, tapi tidak disertai mengcompile.
 Serial Monitor : Membuka interface untuk komunikasi serial.

14

Created by: Aan Tohir Efendi, S.Kom


 Keterangan Aplikasi : pesan-pesan yang dilakukan aplikasi akan muncul di sini, misal
"Compiling" dan "Done Uploading" ketika mengcompile dan mengupload sketch ke board
Arduino.
 Konsol : Pesan-pesan yang dikerjakan aplikasi dan pesan-pesan tentang sketch akan
muncul pada bagian ini. Misal, ketika aplikasi mengcompile atau ketika ada kesalahan pada
sketch yang kita buat, maka informasi error dan baris akan diinformasikan di bagian ini.
 Baris Sketch : bagian ini akan menunjukkan posisi baris kursor yang sedang aktif pada
sketch.
 Informasi Port : bagian ini menginformasikan port yang dipakah oleh

board Arduino.

15

Created by: Aan Tohir Efendi, S.Kom


B. PEMROGRAMAN PADA ARDUINO
Arduino memiliki bahasa pemrograman yang baku untuk menjalankan fungsi
sederhana menggunakan bahasa pemrograman C. Yaitu bahasa tingkat tinggi yang sangat
populer dan banyak digunakan para programmer profesional. Untuk beberapa aplikasi
pemrograman, biasanya menyebut hasil kodingan dengan istilah script, listing, atau
program. Nah, untuk Arduino IDE sendiri sebutannya bukan itu, melainkan “sketch”, yang
apabila diterjemahkan ke bahasa Indonesia berarti “sketsa”.

Secara umum, ada tiga tahapan yang harus kamu lakukan hingga program atau sketch-mu
bisa dijalankan di Arduino. Tahapan tersebut antara lain:

 Menulis program
 Meng-compile program
 Meng-upload program

Singkatnya, suatu program bisa dijalankan pada papan sirkuit Arduino ketika telah selesai
ditulis, di-compile, dan di-upload ke papan Arduino dengan menggunakan software
Arduino IDE.

A. Struktur Dasar Program Arduino

Karakteristik penulisan kode program Arduino sangatlah sederhana. Hanya terdiri atas dua fungsi
utama, yaitu void setup() dan void loop(). Perlu kamu ketahui bahwa fungsi void pada Arduino itu
untuk mendeklarasikan.

Struktur program Arduino yang benar yaitu:

void setup( )
{
pernyataan;
}

void loop( )
{
pernyataan;
}

16

Created by: Aan Tohir Efendi, S.Kom


Kedua fungsi tersebut memiliki keterkaitan satu sama lain. Apabila salah satu fungsi tak terdapat
di sketch, maka kemungkinan besar sketch-mu akan error.

Jadi, pastikan untuk menulis kedua fungsi tersebut meskipun salah satunya tak digunakan atau
tak memiliki pernyataan di dalamnya. Mari kita bahas lebih dalam tentang perbedaan fungsi void
setup() dan void loop() pada pemrograman Arduino.

1. Void Setup()
Fungsi void setup pada Arduino adalah sebagai bentuk inisialisasi atau pengenalan dalam program
Arduino dan hanya dieksekusi sekali sejak program dijalankan. Umumnya fungsi ini digunakan
untuk pendefinisian mode pin atau memulai komunikasi serial. Perhatikan contoh fungsi void
setup di bawah ini:

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

Keterangan :

Dalam perintah tersebut terdapat pernyataan atau statement yang berisi penginisialisasian pin 12
sebagai pin output atau keluaran

2. Void Loop()
Setelah void setup() dijalankan, selanjutnya program akan menjalankan fungsi void loop().

Fungsi ini akan dieksekusi terus-menerus secara berurutan hingga program berhenti dijalankan.
Silahkan lihat contoh fungsi void loop() di bawah ini:

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

Untuk beberapa kasus pemrograman yang kompleks, terkadang programmer juga menambahkan
void baru untuk mempermudah pemrograman.
Jadi void baru ini nantinya bisa diletakkan setelah atau sebelum void loop().

17

Created by: Aan Tohir Efendi, S.Kom


Secara sederhana, struktur dasar dari pemrograman Arduino bisa digambarkan dengan ilustrasi
berikut.
void setup() {

void loop() {

void Tambahan() {

B. Syntax Arduino
Secara umum, syntax atau sintaks dikenal sebagai seperangkat aturan tata bahasa pada kata
atau klausa dalam membentuk kalimat.Sedangkan dalam bahasa pemrograman, sintaks diartikan
sebagai suatu aturan dalam penulisan kode program agar kode tersebut bisa dimengerti komputer.
Sintaks dalam Arduino bisa juga disebut sebagai aturan karakteristik penulisan kode program
Arduino.

Beberapa sintaks dasar pemrograman Arduino Uno antara lain:

1. Titik Koma (Semicolon)


Tanda titik koma adalah syntax wajib dalam pemrograman Arduino. Biasanya sintaks ini
ditempatkan pada akhir pernyataan. Contohnya seperti berikut ini:
int x = 13;
2. Kurung Kurawal (Curly Braces)
Kurung kurawal berfungsi untuk mendefinisikan awal dan akhir dari sebuah blok fungsi.
Contohnya bisa kamu lihat di bawah ini:
void loop()
{
isi program
}

18

Created by: Aan Tohir Efendi, S.Kom


3. #define
Fungsi define pada Arduino yaitu memungkinkan programmer dalam memberi nama untuk
nilai konstan sebelum program dapat dikompilasi.

Untuk mendeklarasikan nomor pin yang digunakan bisa ditulis dengan format sebagai
berikut:
#define ledPin 3
Keterangan:
ledPin = variabel yang digunakan
3 = nilai(value) atau pin yang sedang digunakan
4. #include
Fungsi include pada Arduino yaitu untuk memasukkan library ke dalam sketch. Dimana
fungsi library Arduino sendiri adalah memudahkan pengguna dalam melakukan
pengodingan.
Cara penggunaan sintaks sangat mudah. Kamu hanya perlu menambahkan nama library
yang ingin di-import ke program di belakang sintaks tersebut. Contohnya seperti di bawah
ini:
#include <OneWire.h>
5. Komentar
Apabila kamu bertanya bagaimana cara untuk memberikan catatan pada program yang kita
buat di Arduino IDE? Maka jawabannya, kamu bisa menggunakan sintaks komentar.
Sintaks komentar pada program Arduino adalah sintaks yang berfungsi menambah
keterangan pada program yang dibuat. Sehingga kata atau kalimat yang diberi sintaks
komentar tak akan terbaca oleh compiler. Setidaknya ada dua macam sintaks komentar
yang perlu kamu tahu, yaitu:
a. Sintaks komentar satu baris
Untuk membuat komentar yang hanya menggunakan satu baris saja, kamu bisa
menggunakan sintaks garis miring dua kali “//”. Contoh penggunaan sintaksnya seperti
ini.
// isi komentar

b. Sintaks komentar lebih dari satu baris

19

Created by: Aan Tohir Efendi, S.Kom


Untuk membuat komentar yang jumlahnya barisnya lebih dari satu, kamu harus
menggunakan sintaks dua garis miring dan bintang.
Dimana komentar yang ingin dimasukkan berada di tengah. Berikut contoh
penggunaannya:
/* isi komentar */
C. Tipe Data Bahasa C Arduino

Berikut ini adalah tabel jenis tipe data pada Arduino yang sering digunakan.

Tipe Data Lebar Data Jangkauan


char 1 byte -128 s/d 127
unsigned char 1 byte 0 s/d 255
byte 1 byte 0 s/d 255
word 2 byte 1 s/d 65535
int 2 byte -32768 s/d 32767
unsigned int 2 byte 0 s/d 65535
long 4 byte -2147438648 s/d 2147438647
unsigned long 4 byte 0 s/d 4294967295
float 4byte -3.4028235E+38s/d3.4028235E+38
Untuk format penulisan tipe data Arduino dalam program sangatlah mudah. Kamu hanya perlu
menempatkannya di depan variabel yang ingin kamu deklarasikan dengan diantarai satu spasi.

Misalkan kamu ingin mendeklarasikan suatu variabel bernama “cobaCoba” dengan tipe data
integer dan menggunakan pin 5. Maka penulisan perintahnya seperti ini:

int Smkiot = 5;
Jadi, fungsi int pada Arduino IDE yang letaknya di awal variabel adalah untuk mendeklarasikan
bahwa variabel tersebut bertipe data integer.

D. Variabel Arduino
Variabel dalam bahasa program Arduino bisa didefinisikan sebagai suatu wadah untuk
menyimpan atau menampung data.Kita dibebaskan memilih nama variabel yang diinginkan,
asalkan sesuai dengan ketentuan berikut:
 Tidak menggunakan spasi
 Maksimal 32 karakter
20

Created by: Aan Tohir Efendi, S.Kom


 Tidak menggunakan istilah baku dalam bahasa C Arduino

Sebagai contoh, misalkan kamu ingin mendefinisikan nilai pin 2 dengan variabel “ganteng” dan
menggunakan tipe data integer. Maka contoh penulisannya yaitu:

int Tkj = 2;

E. Nilai Konstan Dalam Pemrograman Arduino


Pada dasarnya, Arduino telah memiliki beberapa variabel yang telah memiliki nilai yang
disebut sebagai konstan. Karena nilainya sudah ditentukan, jadi tak perlu lagi didefinisikan di
awal. Berikut ini adalah macam-macam nilai konstan yang perlu kamu tahu:
1. TRUE/FALSE
TRUE dan FALSE adalah konstanta boolean yang digunakan untuk mendefinisikan level
logika. Apakah ia bernilai benar (TRUE) atau salah (FALSE).
TRUE didefinisikan sebagai 1 dan FALSE sebagai 0. Lihat contoh format penulisannya
berikut ini :
If(c==TRUE);
{
perintah;
}

2. HIGH/LOW
Variabel konstan HIGH dan LOW umumnya digunakan untuk menentukan kondisi pin saat
membaca dan menulis data di pin digital.
Bila ada yang bertanya tentang pengertian HIGH dan LOW pada Arduino? Kira-kira
penjelasan seperti ini:
HIGH didefinisikan sebagai 1, ON, 5 volt, atau menyala. Sedangkan LOW
didefinisikan sebagai 0, OFF, 0 volt, atau padam.
Sehingga dapat dikatakan bahwa perintah untuk menyalakan/memberikan sinyal ON pada
program Arduino adalah HIGH.
Sedangkan perintah untuk memberikan sinyal OFF pada program Arduino adalah FALSE.
Contoh penulisannya seperti ini :

21

Created by: Aan Tohir Efendi, S.Kom


digitalWrite(13, HIGH);
digitalWrite(13, LOW);

3. INPUT/OUTPUT
Variabel konstan ini sering digunakan pada fungsi pinMode() untuk mendefinisikan pin
digital. Apakah ia berperan sebagai INPUT atau OUTPUT. Contoh penggunaannya
seperti pada perintah di bawah ini.
pinMode(13, OUTPUT);

F. Perintah Pin Digital I/O Arduino


Setidaknya, ada tiga macam perintah yang biasa digunakan untuk mengatur pin digital
input/output dalam pemrograman Arduino, yaitu terdiri atas.
1. pinMode(pin, mode
Apa itu pinMode()? Yaitu suatu perintah yang biasa ditemukan pada block void setup().
Fungsi pinMode() pada Arduino adalah untuk memperjelas apakah suatu pin digunakan
sebagai INPUT atau OUTPUT. Contoh penulisannya seperti ini.
pinMode(3, INPUT);
Keterangan:
3 = nomor pin yang ingin dikonfigurasi
INPUT = mode yang digunakan
2. digitalRead(pin)
Penggunaan perintah ini bertujuan untuk membaca nilai pin digital yang dikehendaki
lalu menyimpannya dalam suatu variabel. Berikut contoh penulisannya.
Baca
= digitalRead(8);
Keterangan:
Baca = nama variabel yang menyimpan data hasil pembacaan
8 = nomor pin digital yang digunakan
3. digitalWrite(pin, value)
Apa itu digitalWrite pada Arduino? yaitu suatu perintah untuk menuliskan suatu nilai
pada pin digital.

22

Created by: Aan Tohir Efendi, S.Kom


Lengkapnya, fungsi digitalWrite() pada Arduino adalah untuk menentukan nilai logika
awal pada suatu pin. Apakah ia LOW atau HIGH. Lihat contoh penulisannya di bawah
ini.
digitalWrite(9,HIGH);
Keterangan:
9 = nomor pin digital yang digunakan
HIGH = kondisi yang diinginkan
G. Perintah Pin Analog I/O Arduino
Berbeda dengan pin digital, pin analog hanya memiliki dua jenis perintah yang sering
digunakan. Ini karena pin analog tak membutuhkan perintah penginisialisasian dengan
pinMode().
Berikut ini adalah dua macam perintah pada pin analog yang sering digunakan.
1. AnalogRead()
Fungsi analogRead() pada Arduino yaitu untuk membaca data dari pin analog
kemudian disimpan dalam suatu variabel. Dimana data hasil pembacaan tersebut
berupa nilai integer dengan kisaran 0 sampai 1023. Berikut contoh penulisannya.
Baca = analogRead(A0);
Keterangan:
Baca = nama variabel tempat menampung data hasil pembacaan
A0 = nama pin analog yang digunakan (A0 sampai A6)
2. AnalogWrite(pin, value)
Perintah ini berfungsi untuk mengirimkan nilai analog dengan metode PWM (Pulse
Width Modulation) pada pin khusus yang berlabel PWM, yaitu pin 3, 5, 6, 9, 10, dan
11. Pin PWM biasanya ditandai dengan adanya tanda tilde (~) di depan atau di atas
nama pin.
Adapun untuk nilai yang biasa digunakan dalam PWM, yaitu mulai dari 0 sampai 255.
Jadi, kamu bisa mengatur frekuensi PWM dari nilai tersebut. Contoh penulisan
analogWrite() yang benar seperti pada contoh di bawah ini.
analogWrite(5,100);
Keterangan:

23

Created by: Aan Tohir Efendi, S.Kom


5 = nama pin analog yang digunakan
100 = nilai PWM yang digunakan

Dari dua perintah tersebut, tentu kamu sudah bisa mengidentifikasi perbedaan analogRead() dan
analogWrite() dari segi fungsi. Perintah analogread() untuk membaca data analog Arduino,
sedangkan perintah analogWrite() untuk menuliskan data analog pada pin Arduino.Terkadang ada
juga yang bingung tentang perbedaan analogWrite() dan digitalWrite(). Jadi, analogWrite itu untuk
menulis data analog, sedangkan digitalWrite() untuk menulis data digital. Iya, sesimpel itu

Pengujian Kondisi dalam Percabangan Program Arduino

Agar tak salah dalam mengeksekusi perintah, program Arduino butuh yang namanya pengujian
kondisi. Ini sangat penting ketika program berada dalam kondisi percabangan yang
mengharuskannya memilih salah satu diantara beberapa pilihan.Pengujian kondisi merupakan
perintah yang berfungsi memilih satu pernyataan yang paling benar dari beberapa pilihan
pernyataan berdasarkan kriteria penilaian tertentu.Beberapa pengujian kondisi yang umumnya
sering digunakan antara lain :

1. if
Perintah ini digunakan apabila hanya ada satu pernyataan yang ingin dieksekusi. Jadi
apabila kondisinya memenuhi maka pernyataan akan dieksekusi.
Dan jika tak memenuhi maka pernyataan tak dieksekusi. Format penulisan perintahnya
sebagai berikut:
if(kondisi){
pernyataan/perintah;
}
Contohnya seperti ini:
if(x==6) {
a=a+5;
}
2. if ... else
Berbeda dengan if, perintah if ... else digunakan apabila ada dua pilihan pernyataan yang
ingin dieksekusi.

24

Created by: Aan Tohir Efendi, S.Kom


Apabila kondisinya terpenuhi, maka perintah yang ada di dalam if akan dieksekusi. Dan
jika tidak, maka pernyataan di dalam else-lah yang akan dieksekusi. Bentuk format
penulisannya yaitu:
if(kondisi){
pernyataan / perintah 1
}
else {
pernyataan / perintah 2
}
Contoh program if else Arduino bisa kamu lihat di bawah ini:
if(x==1) {
a=1;
}
else {
a=0;
}
3. if ... else if
Perbedaan perintah if ... else if dengan perintah if lainnya yaitu dapat melakukan pengujian
lebih dari satu kondisi.
Itulah alasan mengapa perintah ini sering kali disebut dengan perintah if bertingkat
Arduino. Contoh format penulisannya yaitu seperti di bawah ini:
if(kondisi1){
pernyataan / perintah 1
}
else if(kondisi2){
pernyataan / perintah 2
}
else if(kondisi ke-n){
pernyataan / perintah ke-n
}
Contohnya seperti ini:

25

Created by: Aan Tohir Efendi, S.Kom


if(x==1) {
a=1;
}
else if(x==2){
a=2;
}
else if(x==3){
a=3;
}
4. switch case
Perintah ini digunakan untuk memilih pernyataan yang benar berdasarkan kondisi yang
ada. Berbeda dengan perintah if, perintah switch case menggunakan nilai variabel untuk
pengujiannya. Apabila nilai variabel memenuhi syarat salah satu dari case, maka ia akan
mengeksekusi pernyataan di dalam case tersebut. Dan apabila tak ada nilai variabel yang
cocok dari salah satu case, maka secara otomatis yang dieksekusi adalah
pernyataan/perintah default.
Struktur penulisan switch case pada Arduino IDE yaitu sebagai berikut:
switch(variabel){
case 1 : pernyataan/perintah 1
break;
case 2 : pernyataan/perintah 2
break;
case n : pernyataan/perintah n
break;
default : pernyataan/perintah default
}
Contoh program switch case Arduino bisa kamu lihat di bawah ini:
switch(a){
case 1 : digitalWrite(pin1,HIGH)
break;
case 2 : digitalWrite(pin2,HIGH)
break;

26

Created by: Aan Tohir Efendi, S.Kom


case 3 : digitalWrite(pin3,HIGH)
break;
default : digitalWrite(pin4,LOW)
}

H. Perulangan dalam Pemrograman Arduino

Dalam program Arduino juga sering dikenal ada istilah perulangan. Yaitu suatu perintah yang
memungkinkan kita untuk mengeksekusi suatu pernyataan berdasarkan acuan nilai yang
mengalami perulangan.

Beberapa contoh perintah coding pengulangan Arduino yang biasa digunakan antara lain:

1. while()
Fungsi while pada Arduino yakni memungkinkan terjadinya perulangan tak terbatas selama
kondisi di dalamnya terpenuhi. Format penulisannya seperti ini:
while(kondisi){
//pernyataan/perintah
}
Contohnya seperti ini:
while(a<100){
a++;
}
Keterangan:
Program akan terus melakukan perulangan hingga nilai a mencapai angka 100.
2. do ... while()
Perintah ini berfungsi untuk mengeksekusi suatu pernyataan atau perintah lalu melihat
kondisi di dalam while. Apabila kondisinya sesuai maka pernyataan akan dieksekusi
kembali. Dan jika tidak maka pernyataan tak akan dieksekusi. Format penulisannya yaitu:
do{
pernyataan/perintah
}
while(kondisi);
Contoh program do while Arduino seperti ini:
27

Created by: Aan Tohir Efendi, S.Kom


do{
a++;
}
while(a<100);
Keterangan:
Perulangan pertambahan nilai a dengan 1 akan terus berlangsung hingga nilai a mencapai
angka 100
3. for()
Fungsi for pada Arduino yaitu untuk melakukan perulangan yang sifatnya terbatas. Dalam
perintah for wajib disertakan nilai awal, kondisi, dan penambahan (increment) atau
pengurangan (decrement).
Untuk pengulangan yang merubah nilai awal ke angka yang lebih besar, menggunakan
operator ++. Sedangkan untuk mengubah nilainya ke angka yang lebih kecil, maka
menggunakan operator --. Penggunaan format for yang benar pada Arduino adalah sebagai
berikut:
for(nilai awal; kondisi; penambahan/pengurangan){
pernyataan/perintah;
}
Contohnya seperti ini :
for(a=0;a<=100;a++){
Serial.println(a);
}
Keterangan:
Hasil program tersebut akan menampilkan nilai a dari 0 sampai 100
4. goto
Perintah ini biasanya digunakan untuk melompat secara langsung atau menuju perintah
yang telah diberi label. Format penulisan perintah yang telah dilabeli seperti ini.
Nama label: perintah/pernyataan
Dan untuk memanggil atau menjalankan perintah di label menggunakan perintah ini.
goto nama label;
Misalkan saya ingin membuat perintah menyalakan lampu di pin 1 dengan nama label
“nyala”, maka kamu harus mengetikkan perintah ini.
28

Created by: Aan Tohir Efendi, S.Kom


nyala: digitalWrite(pin 1, HIGH);
Sedangkan untuk pemanggilannya menggunakan perintah ini.
goto nyala;
5. return
Fungsi return pada Arduino adalah untuk memberikan nilai balik dari suatu fungsi. Lihat
contoh fungsi return Arduino di bawah ini:
int data(){
if(analogRead(A0)>100){
return 1;
else
return 0;
}
}
6. continue
Perintah continue umumnya digunakan untuk melewati perulangan yang tersisa dari
struktur looping. Baik itu do, for, maupun while.
Berikut ini adalah contoh penggunaan perintah continue pada perulangan for.
for(nilai awal; kondisi; penambahan/pengurangan){
pernyataan/perintah 1
if(kondisi 2){
continue;
}
pernyataan/perintah 2
}
Contoh program bahasa C Arduino tentang continue bisa kamu lihat di bawah ini:
for(b=1,; b<=10; b++){
digitalWrite(pin 1, HIGH);
if(b==5){
continue;
}
digitalWrite(pin 2, HIGH);

29

Created by: Aan Tohir Efendi, S.Kom


delay(100);
}
Keterangan:
Pada saat program dijalankan, maka nilai b yang awalnya 1 akan terus bertambah hingga
mencapai angka 10. Tetapi pada saat nilai b mencapai 5, maka kode program yang ada di
bawah continue; akan dilewati dan akhirnya berlanjut ke perulangan 6. Begitu seterusnya
7. break
Sederhananya, fungsi break pada Arduino adalah memaksa sebuah perulangan berhenti
sebelum waktunya. Baik itu dalam perulangan for, while, maupun do ... while.
Sehingga dapat dikatakan bahwa penggunaan perintah break adalah salah satu cara
menghentikan looping Arduino. Berikut contoh format penulisan perintah break benar.
for(nilai awal; kondisi; penambahan/pengurangan){
pernyataan/perintah
if(kondisi 2){
break;
}
}
Contoh programnya seperti ini:
for(c=1,; c<=10; c++){
digitalWrite(pin 1, HIGH);
if(c==8){
break;
}
}
Keterangan:
Saat program di atas dijalankan, maka nilai c yang awalnya 1 akan terus bertambah hingga
mencapai angka 10.Tetapi pada saat nilai c mencapai 8, program akan berhenti secara
otomatis.Jadi kalau ada yang bertanya bagaimana cara stop program Arduino? maka inilah
caranya. Yaitu menggunakan perintah break.
I. Format Ekspresi Bilangan Arduino
Dalam pemrograman Arduino, suatu bilangan dapat diekspresikan dalam beberapa format,
yaitu sebagai berikut:

30

Created by: Aan Tohir Efendi, S.Kom


1. Biner
Biasanya ditulis dengan awalan huruf ‘0b’. Contoh: 0b11110010
2. Desimal
Biasa ditulis tanpa awalan. Contoh: 435
3. Oktal
Umumnya ditulis dengan awalan ‘0’. Contoh: 0753
4. Heksadesimal
Biasanya diawali dengan ‘0x’. Contoh: 0x5A
J. Pengaturan Waktu (Time) Arduino

Ada tiga perintah yang biasa digunakan dalam pemrograman Arduino untuk mengatur waktu,
yaitu

1. millis()
Fungsi milis pada Arduino yaitu menghasilkan nilai waktu dalam satuan milidetik sejak
program Arduino dijalankan. Namun setelah 50 hari dijalankan, nilainya akan kembali lagi
ke nol.
Tipe data yang sering digunakan untuk perintah ini adalah unsigned long.
Jadi, pastikan kamu mendefinisikan variabel yang ingin kamu gunakan sebagai penampung
nilai milis() dengan tipe data unsigned long. Format penulisannya seperti berikut ini:
variabel = millis();
Contoh program milis Arduino seperti ini.
unsigned long waktu;
void setup(){
Serial.print(“Milidetik: “);
waktu = millis();
Serial.println(waktu);
}
2. micros()
Perintah ini berfungsi untuk menghasilkan nilai waktu dalam satuan mikrodetik sejak
program mulai dijalankan. Nilai akan kembali lagi ke nol apabila telah mencapai 70 menit.
Format penulisannya seperti di bawah ini:
variabel = micros();

31

Created by: Aan Tohir Efendi, S.Kom


Contoh program Arduino sederhana tentang penggunaan perintah micros() yaitu sebagai
berikut:
unsigned long waktu;
void setup(){
Serial.print(“Mikrodetik : “);
waktu = micros();
Serial.println(waktu);
}
3. delay()
Apa fungsi delay pada Arduino IDE? Yaitu untuk memberikan tambahan waktu atau
penundaan dalam satuan milidetik sebelum mengeksekusi program pada baris selanjutnya.
Adapun untuk waktu penundaannya menyesuaikan dengan nilai yang dimasukkan ke
perintah. Contohnya seperti ini:
delay(1000);
Keterangan:
Perintah tersebut berfungsi untuk memberikan jeda pada program selama 1000 milidetik
atau setara dengan 1 detik
4. delayMicroseconds()
Sama seperti poin sebelumnya, perintah ini juga berfungsi untuk memberikan jeda waktu.
Hanya saja, jeda yang diberikan dalam satuan mikrodetik.
Dimana 1 juta mikrodetik setara dengan 1 detik. Jadi, sangat tidak disarankan
menggunakan perintah ini bila ingin berpatokan pada satuan detik. Berikut contoh
penulisan perintah yang benar.
delayMicrosecond(300);
Keterangan:
Perintah tersebut berfungsi untuk menjeda program selama 300 mikrodetik atau setara
dengan 0,0003 detik
K. Operator Aritmetika Arduino

Bagi orang yang masih pemula, kadang kesulitan untuk memasukkan rumus ke dalam
program Arduino.Padahal memasukkan rumus tak sesulit yang dibayangkan. Karena
operator yang digunakan hampir sama dengan operator yang sering kita gunakan pada

32

Created by: Aan Tohir Efendi, S.Kom


rumus matematika pada umumnya. Berikut ini adalah tabel tentang jenis operator yang
sering digunakan dalam penulisan rumus pada program Arduino.

Operator Keterangan
= Pemberian nilai
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa Bagian
Dalam pemrograman Arduino, suatu rumus yang dituliskan harus mempunyai variabel
penampung. Gunanya untuk menampung nilai hasil perhitungan rumus tadi. Cara
penulisannya yaitu:

Variabel penampung = rumus dan variabel bernilai/nilai konstan;


Misalkan kamu ingin menuliskan rumus luas persegi panjang di program Arduino, maka
bentuk perintahnya sebagai berikut:

luasPersegiPanjang = panjang*lebar;
Keterangan:
luasPersegiPanjang = nama variabel penampung
panjang = variabel yang memiliki nilai panjang
luas = variabel yang memiliki nilai luas

L. Operator Perbandingan Arduino

Dalam pemrograman Arduino juga terdapat operator perbandingan. Yaitu operator yang
fungsinya membandingkan dua variabel dan akan bernilai 1 atau TRUE jika kondisinya
terpenuhi.
Beberapa operator perbandingan yang biasa digunakan antara lain:

Operator Keterangan
== Persamaan. Jike kedua nilai yang dibandingkan sama maka
hasilnya TRUE

33

Created by: Aan Tohir Efendi, S.Kom


!= Pertidaksamaan. Jika kedua nilai yang dibandingkan tidak sama
maka hasilnya FALSE
> Lebih Besar
< Lebih Kecil
>= Lebih Besar atau Sama Dengan
<= Lebih Kecil atau Sama Dengan

M. Operator Boolean di Arduino

Untuk kamu yang belum paham apa itu boolean, jadi boolean itu adalah sejenis tipe data yang
hanya memiliki dua nilai. Yaitu benar atau salah, 1 atau 0, serta TRUE atau FALSE.Tergantung
jenis nilai mana yang digunakan. Namun kadang juga operator boolean ini digunakan untuk
membandingkan atau memanipulasi nilai dalam suatu variabel. Beberapa
operator boolean yang sering digunakan yaitu:

Operator Keterangan
&& AND
|| OR
! NOT

N. Komunikasi Serial Arduino

Pada dasarnya, komunikasi serial adalah komunikasi dua arah yang


melibatkan transmitter dan receiver.

Pada Arduino sendiri, transmitter dan receiver-nya sudah tersedia di pin Rx dan Tx maupun
pada USB. Umumnya, komunikasi serial digunakan untuk menampilkan data hasil
perhitungan Arduino di serial monitor. Apa itu serial monitor pada Arduino IDE? Yaitu suatu
fasilitas untuk mengontrol dan memonitoring apa yang sedang terjadi di papan Arduino
melalui komputer.
Beberapa contoh perintah Arduino yang sering digunakan dalam komunikasi serial antara lain:

1. Serial.begin()
Mungkin kamu pernah mendengar pertanyaan apa itu serial begin 9600?

34

Created by: Aan Tohir Efendi, S.Kom


Sebenarnya ini adalah suatu perintah untuk mengaktifkan komunikasi serial dengan nilai
baudrate atau kecepatan transmisi sebesar 9600 bps .Untuk penulisan perintahnya seperti
ini:
Serial.begin(9600);

2. Serial.print()
Apa itu Serial.print? yaitu suatu perintah yang berfungsi untuk menampilkan data di serial
monitor untuk satu baris saja.
Jadi, data akan terus bermunculan hanya pada satu baris di serial monitor. Berikut ini
contoh penulisan Serial.print() yang benar dalam program:

Serial.print(Tampil);
Keterangan:
Tampil adalah variabel penampung nilai yang ingin ditampilkan pada serial monitor.

3. Serial.println()
Perintah ini kira-kira fungsinya hampir sama dengan Serial.print(). Hanya saja, data yang
ditampilkan akan terus bermunculan ke bawah. Jadi data yang muncul tak berada dalam
satu baris saja. Ini karena setiap selesai menampilkan data, secara otomatis program akan
memberi perintah enter atau pindah ke baris berikutnya. Contoh penulisannya seperti
berikut ini:
Serial.print(Muncul);
Keterangan:
Muncul adalah variabel penampung yang didalamnya terdapat nilai yang ingin ditampilkan
di serial monitor.
O. Nilai Maksimum dan Minimum Pada Arduino
1. min(x, y)

Fungsi perintah ini adalah untuk membandingkan dua variabel dan akan mengembalikan
nilai yang paling kecil lalu menyimpannya dalam suatu variabel. Format penulisannya
yaitu:

baca = min(x, y);

35

Created by: Aan Tohir Efendi, S.Kom


Keterangan:
baca = variabel penampung
x = variabel 1
y = variabel 2

2. max(x, y)
Perintah ini berfungsi untuk membandingkan dua nilai variabel lalu mengembalikan nilai
terbesar. Bisa dikatakan bahwa perintah ini adalah kebalikan dari perintah min(x, y).
Format penulisannya yaitu:
baca = max(x, y);
Keterangan:
baca = variabel penampung
x = variabel 1
y = variabel 2

36

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 1
Menyalakan LED Menggunakan Arduino UNO
LED (Light Emitting Diode) merupakan salah satu komponen elektronika yang mengubah
energi listrik menjadi energi cahaya. Komponen ini termasuk golongan keluarga dioda dikarenan
bahan dasarnya terbuat dari bahan semikonduktor.
Warna cahaya yang dipancarkan oleh LED bervariasi warnanya tergantung dari jenis bahan
semikonduktor yang dipergunakan dapat pembuatan. Dipasaran ada dijual warna merah, hijau,
kuning, dan lain – lain.

 Polaritas LED

Gambar membedakan polaritas


Cara untuk mengetahui perbedaan antara polaritas terminal Anoda (+) dan Katoda (-), dapat dilihat
secara fisik (dapat lihat seperti gambar diatas).

 Logika LED
Ada 2 cara yang dapat digunakan untuk mengakses yaitu dengan “active high” dan “active low“.
Kondisi active high adalah kondisi led akan menyala jika pada pin output arduino jika diberikan
logika 1 atau high.
Alat dan Bahan :
1. Arduino Uno
2. LED 5mm merah
3. Resistor 220 ohm
4. Breadboard
5. Kabel Jumper
6. Komputer + Software IDE Arduino

37

Created by: Aan Tohir Efendi, S.Kom


Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Keterangan
 Pin GND Arduino (Warna Hitam) ke GND LED (Warna Hitam)
 Pin 4 (Warna Merah) ke Resistor (Warna Merah)
 Sisi lain dari Resistor di hubungkan ke Positif LED
Sketch Program :
//membuat berkedip dengan jeda waktu 1 detik (on-off)
void setup() {
pinMode(4, OUTPUT); //Deklarasi PIN 4menjadi output
}

void loop() {
digitalWrite(4, HIGH);
delay(1000); //tunda 1 detik
digitalWrite(4, LOW);
delay(1000);
}

Memahami sketch koding diatas yaitu


 tanda “//” merupakan komentar, yang dimana menunjukan keterangan untuk pembuat
sketch atau orang lain yang membaca.
 pinMode(PIN13, OUTPUT); : mendeklarasikan pin 13 sebagai output digital
 delay (1000); : menyatakan waktu tunda dalam satuan milidetik yang berati 1000ms = 1
detik
 digitalWrite(PIN13, HIGH); : memberikan nilai HIGH atau 1 pada PIN13
 digitalWrite(PIN13, LOW); : memberikan nilai LOW atau 0 pada PIN13

38

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 2
Pembuatan Rambu lalu lintas Menggunakan Arduino UNO
Pada tutorial kedua ini dikembangkan untuk mengakses 3 LED sekaligus dan penggunaan
timer delay dengan memanfaatkan pin I/O digital yang dideklarasikan sebagai output.
Alat dan Bahan :
1. Arduino Uno
2. LED 5mm / 3mm (merah, kuning, hijau)
3. Resistor 220 ohm 3 pcs
4. Breadboard
5. Kabel Jumper secukupnya
6. Komputer + Software IDE Arduino
Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Sketch Program :
void setup() {
pinMode(13, OUTPUT); //Deklarasi PIN 13 menjadi output
pinMode(12, OUTPUT); //Deklarasi PIN 12 menjadi output
pinMode(11, OUTPUT); //Deklarasi PIN 11 menjadi output
}

void loop() {
39

Created by: Aan Tohir Efendi, S.Kom


//Warna merah menyala 5 detik
digitalWrite(13, HIGH);
delay(5000); //tunda 5 detik
digitalWrite(13, LOW);
delay(100);

//Warna kuning menyala 1 detik


digitalWrite(12, HIGH);
delay(1000); //tunda 1 detik
digitalWrite(12, LOW);
delay(100);

//Warna hijau menyala 5 detik


digitalWrite(11, HIGH);
delay(5000); //tunda 5 detik
digitalWrite(11, LOW);
delay(100);

40

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 3
Menyalakan LED dengan Push Button Menggunakan Arduino UNO
Switch atau saklar merupakan komponen elektronika yang dimana dapat mengalirkan
atau memutuskan arus yang mengalir dalam suatu rangkaian dengan prinsip mengalihkan satu
konduktor ke konduktor lainnya. Mekanismenya yaitu dioperasikan secara langsung oleh operator
untuk mengendalikan sirkuit misalnya saklar lampu tidur atau tombol keyboard pada personal
Computer, dapat juga dioperasikan oleh beberapa sensor antara lain sensor tekanan, suhu dan lain
sebagainya. Meskipun saklar termasuk kedalam golongan komponen yang sederhana, namun
memiliki fungsi yang paling vital di antara komponen listrik yang lainnya.

Jenis – jenis saklar atau switch dibedakan menjadi 6 macam antara lain :

1. Toggle switch : saklar yang sering digunakan pada rangkaian elektronika yang dimana
digunakan sebagai saklar on – off catu daya utama.
2. Push Button terdapt 3 jenis tipe yaitu
 NO (Normally Open) : nama lainnya yaitu tombol start dikarenakan kondisi kontak
akan tersambung jika button ditekan dan akan terbuka kembali jika dilepaskan.
Kondisi waktu button ditekan maka terjadi pergeseran kontak yang akan mengenai
kontak tetap yang berakibat aliran arus listrik dalam rangkaian akan mengalir.
 NC (Normally Close) : merupakan kebalikan dari NO atau juga disebut dengan
tombol emergency dikarenakan sifat kontak yang akan membuka pada saat ditekan
dan setelah itu akan kembali tertutup pada saat dilepaskan.
 Penggabungan antara NO dan NC : pada model tipe ini mempunayi empat buah
terminal kontak, sehingga kondisi waktu button tidak ditekan menyebabkan
sepasang kontak dalam kondisi NC sedangkan 2 kontak lainnya dalam kondisi NO.
Pada saat button ditekan maka akan terjadi sebaliknya dari kondisi awal.
3. SPST merupakan saklar sederhana jenis on dan off, yang biasanya dipakai untuk sakelar
penerangan atau baybuses rumit yang memerlukan sakelar on off. Sakelar jenis ini hanya
memungkinkan untuk mengubah sirkuit antara terbuka dan tertutup.
4. SPDT merupakan jenis switch yang memungkinkan untuk merubah antara dua jenis sirkuit
tertutup dan sirkuit terbuka. Contoh pemakaian switch ini adalah swicth pada kipas angin
yang membutuhkan perbedaan kecepatan.
41

Created by: Aan Tohir Efendi, S.Kom


5. DPST merupakan switch yang berguna jika dibutuhkan satu gerakan tertutup switch yang
menyambungkan beberapa item sekaligus.
6. DPDT merupakan switch yang memiliki enam buah terminal dan memungkinkan untuk
merubah dua arah yang berbeda. Bisa dipakai dalam baybuses tegangan ganda serta
mengubah tegangan di sirkuit yang rumit.
Alat dan Bahan :
1. Arduino UNO (1 buah)
2. Resistor 100 Ohm atau 220 Ohm (1 buah)
3. Kabel Jumper (5 buah)
4. Breadboard (1 buah)
5. LED 5 mm atau 3 mm, warna bebas (1 buah)
6. Push Button (1 buah)
Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Mengendalikan nyala LED dengan penekanan switch push button. Apabila ditekan LED akan
menyala dan apabila dilepas LED akan mati.
Sketch Program :
// Menyalakan LED dengan Push Button

int pinLed = 3;
int pinBtn = 4;

void setup() {
pinMode(pinLed, OUTPUT);
pinMode(pinBtn, INPUT_PULLUP);
}

void loop() {

42

Created by: Aan Tohir Efendi, S.Kom


int statusBtn = digitalRead(pinBtn);

if(statusBtn == HIGH)
{
digitalWrite(pinLed, LOW);
} else {
digitalWrite(pinLed, HIGH);
}
}
Memahami Sketch program Yaitu :
1. int kondisiPB = digitalRead(PIN_1); > merupakan pembacaan kondisi push button yang
dimana dipasang sebagai pull up (cek disini resistor), apabila ditekan akan aktif berlogika
HIGH atau 1, sedangkan kondisi normal berlogika LOW atau o
2. Pernyataan kondisi “if” yang menentukan output ke LED
if (kondisiPB == HIGH)
digitalWrite(PIN_13, HIGH);
else
digitalWrite(PIN_13, LOW);
Yang artinya apabila kondisiPB berlogika HIGH maka output di PIN_13 berlogika HIGH
juga yang dimana akan ditandai dengan nyalanya LED, sedangkan jika berlogika LOW
maka output di PIN_13 juga berlogika LOW juga

43

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 4
Komunikasi Serial Arduino
Komunikasi serial adalah komunikasi yang pengiriman datanya per-bit secara berurutan dan
bergantian. Komunikasi ini mempunyai suatu kelebihan yaitu hanya membutuhkan satu jalur dan
kabel yang sedikit dibandingkan dengan komunikasi parallel.
Fungsi-fungsi yg tersedia untuk komunikasi serial Arduino
 if (Serial) : Untuk mengecek apakah Port sudah siap
 Serial.available() : Untuk mengecek apakah data sudah ada di buffer penerima
 Serial.begin() : untuk mengeset kecepatan transmisi data
 serial.end() : Untuk menon-aktifkan pin rx dan tx sbg fungsi serial dan kembali sbg pin
I/O
 Serial.find() : mencari string dlm buffer data
 Serial.findUntil(): mencari buffer data sampai data dgn panjang/terminator nya yg
diberikan ditemukan
 Serial.flush(): menunggu data terkirim semua
 Serial.parseFloat(): mengambil data float pertama dari data di buffer serial.
 serial.parseInt(): mengambil data integer pertama dari data di buffer serial.
 Serial.peek(): mengambil data berikutnya di bufer penerima
 Serial.print() : mengirim data ASCII
 Serial.println() : mengirimdata ASCII + CR,LF (kode enter)
 Serial.read(): membaca data yg diterima
 Serial.readBytes(): membaca data byte yg diterima
 Serial.readBytesUntil()
 Serial.setTimeout(): mengeset batas maksimum waktu tunggu(timeout) transmisi data.
 Serial.write() : mengirim data byte (numerik)
 Serial.serialEvent(): fungsi ini akan dipanggil jika data datang/diterima.berlaku spt
interupsi serial.

44

Created by: Aan Tohir Efendi, S.Kom


Alat dan Bahan :
1. Arduino Uno
2. LED 5mm Hijau
3. Resistor 220 ohm
4. Breadboard
5. Kabel Jumper
6. Komputer + Software IDE Arduino

Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Sketch Program :
int led = 4; // Posisi pin led di pin 4
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
Serial.flush();
}
void loop()
{
String input = "";
while (Serial.available() > 0)
{
input += (char) Serial.read();
delay(5); // ini buat jedanya gan satuannya millisecond
}
if (input == "on")
{
digitalWrite(led, HIGH); // menghidupkan led, ini pake aktif high
Serial.println("led 1 nyala");
45

Created by: Aan Tohir Efendi, S.Kom


}
else if (input == "off")
{
digitalWrite(led, LOW); // mematikan led
Serial.println("led 1 mati");
}
}

Sesudah terupload, buka serial monitor Tools>Serial Monitor atau melalui shortcut Ctrl+Shift+M
atau bisa juga dengan klik icon di samping kanan.

Akan muncul jendela sebagai berikut :

Jika diketik "on" lalu send, maka led akan nyala


Jika diketik "off" lalu send, maka led akan mati

46

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 5
Mengakses Sensor DHT11 Menggunakan Arduino
Sensor DHT11 adalah module sensor yang berfungsi untuk mensensing objek suhu dan
kelembaban yang memiliki output tegangan analog yang dapat diolah lebih lanjut menggunakan
mikrokontroler. Module sensor ini tergolong kedalam elemen resistif seperti perangkat pengukur
suhu seperti contohnya yaitu NTC.
Kelebihan dari module sensor ini dibanding module sensor lainnya yaitu dari segi kualitas
pembacaan data sensing yang lebih responsif yang memliki kecepatan dalam hal sensing objek
suhu dan kelembaban, dan data yang terbaca tidak mudah terinterverensi. Sensor DHT11 pada
umumya memiliki fitur kalibrasi nilai pembacaan suhu dan kelembaban yang cukup akurat.
Penyimpanan data kalibrasi tersebut terdapat pada memori program OTP yang disebut juga dengan
nama koefisien kalibrasi.
Sensor ini memiliki 4 kaki pin, dan terdapat juga sensor DHT11 dengan breakout PCB
yang terdapat hanya memilik 3 kaki pin seperti gambar dibawah ini

Bentuk Fisik DHT11


Spesifikasi :
 Tegangan masukan : 5 Vdc
 Rentang temperatur :0-50 ° C kesalahan ± 2 ° C
 Kelembaban :20-90% RH ± 5% RH error

Alat dan Bahan :


 Arduino Uno
 Komputer + Software IDE Arduino
47

Created by: Aan Tohir Efendi, S.Kom


 Sensor DHT11
 Resistor 4.7 KΩ
 Breadboard
 Kabel Jumper
Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Hal yang perlu diperhatikan yaitu dikarenakan pada software IDE arduino tidak ada library
DHT11 maka perlu ditambahkan dahulu untuk memudahkan dalam pemrogramannya.
Langkah – langkah untuk installing library DHT11 dengan catatan terhubung internet :
1. Buka Software arduino uno IDE
2. Arahkan cursor pada menu sketch -> include libraries -> manage libraries
3. Ketikan “DHT11“
4. Pilih “DHT Sensor Library by Adafruit“
5. Klik install dan closed

48

Created by: Aan Tohir Efendi, S.Kom


Sketch Program :
#include "DHT.h" //library sensor yang telah diimportkan
#define DHTPIN 2 //Pin apa yang digunakan
#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600); //baud komunikasi serial
Serial.println("Pengujian DHT11!"); //penulisan di serial monitor
dht.begin(); //prosedur memulai pembacaan module sensor
}

void loop() {
delay(2000); //menunggu beberapa detik untuk pembacaan

//pembacaan sensor membutuhkan waktu 250ms

//Pembacaan untuk data kelembaban


float humidity_1 = dht.readHumidity();
//Pembacaan dalam format celcius (c)
float celcius_1 = dht.readTemperature();
//pembacaan dalam format Fahrenheit
float fahrenheit_1 = dht.readTemperature(true);

//mengecek pembacaan apakah terjadi kegagalan atau tidak


49

Created by: Aan Tohir Efendi, S.Kom


if (isnan(humidity_1) || isnan(celcius_1) || isnan(fahrenheit_1)) {
Serial.println("Pembacaan data dari module sensor gagal!");
return;
}

float htof = dht.computeHeatIndex(fahrenheit_1, humidity_1);


//Prosedur pembacaaan data indeks panas dalam bentuk fahreheit
float htoc = dht.computeHeatIndex(celcius_1, humidity_1, false);
//Prosedur pembacaaan data indeks panas dalam bentuk celcius

//pembacaan nilai pembacaan data kelembaban


Serial.print("Kelembaban: ");
Serial.print(humidity_1);
Serial.print(" %\t");

//pembacaan nilai pembacaan data suhu


Serial.print("Suhu : ");
Serial.print(celcius_1); //format derajat celcius
Serial.print("°"); //simbol derajat
Serial.print("C / ");
Serial.print(fahrenheit_1); //format derajat fahrenheit
Serial.print("°");
Serial.print("F\t");

Serial.print("Indeks Panas: ");


Serial.print(htof);
Serial.print("°");
Serial.print("F / ");
Serial.print(htoc);
Serial.print("°");
Serial.println("C ");

Hasil pembacaan dapat diamati pada serial monitor.

50

Created by: Aan Tohir Efendi, S.Kom


51

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 6
Menampilkan Text di LCD 16x2 dengan Arduino

LCD 16×2 (Liquid Crystal Display) merupakan modul penampil data yang mepergunakan kristal
cair sebagai bahan untuk penampil data yang berupa tulisan maupun gambar. Pengaplikasian pada
kehidupan sehari – hari yang mudah dijumpai antara lain pada kalkulator, gamebot, televisi, atau
pun layar komputer.
Jenis dari perangkat ini ada yang dan pada postingan ini akan dibahas tentang Tutorial Arduino
mengakses LCD 16×2 dengan mudah, dimana mudah didapatkan ditoko elektronik terdekat.
Spesifikasi dari LCD 16×2
Adapun fitur – fitur yang tersedia antara lain
 Terdiri dari 16 kolom dan 2 baris
 Dilengkapi dengan back light
 Mempunyai 192 karakter tersimpan
 Dapat dialamati dengan mode 4-bit dan 8-bit
 Terdapat karakter generator terprogram

Pin – pin LCD 16×2 dan keterangannya

Keterangan :
52

Created by: Aan Tohir Efendi, S.Kom


1. GND : catu daya 0Vdc
2. VCC : catu daya positif
3. Constrate : untuk kontras tulisan pada LCD
4. RS atau Register Select :
 High : untuk mengirim data
 Low : untuk mengirim instruksi
5. R/W atau Read/Write
 High : mengirim data
 Low : mengirim instruksi
 Disambungkan dengan LOW untuk pengiriman data ke layar
6. E (enable) : untuk mengontrol ke LCD ketika bernilai LOW, LCD tidak dapat diakses
7. D0 – D7 = Data Bus 0 – 7
8. Backlight + : disambungkan ke VCC untuk menyalakan lampu latar
9. Backlight – : disambungkan ke GND untuk menyalakan lampu latar
Alat dan Bahan :
Bahan yang perlu dipersiapkan untuk Tutorial Arduino akses LCD 16×2 antara lain :
 Arduino Uno
 Komputer + Software IDE Arduino
 LCD 16×2
 Potensiometer
 Kabel Jumper

Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

53

Created by: Aan Tohir Efendi, S.Kom


ALOKASI PIN ARDUINO

Pin LCD Pin Arduino

Pin 1 (GND) GND

Pin 2 (VCC) +5V

Pin 3 (VSS) Pengaturan Contras

Pin 4 (RS) Pin 12

Pin 5 (R/W) GND

Pin 6 (E) Pin 11

Pin 7 -

Pin 8 -

Pin 9 -

Pin 10 -

Pin 11 (D4) Pin 5

Pin 12 (D5) Pin 4

54

Created by: Aan Tohir Efendi, S.Kom


Pin 13 (D6) Pin 3

Pin 14 (D7) Pin 2

Pin 15 (LED +) +5V

Pin 16 (LED -) GND

Sketch Program :
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2);
}

void loop() {
lcd.setCursor(0,0);
lcd.print(" SMK NEGERI 7 ");
lcd.setCursor(0, 1);
lcd.print(" TKJ XI ");
}

Catatan Program:
 #include <LiquidCrystal.h> menambahkan library LCD pada program arduino, dengan
library ini pemrograman LCD pada arduino menjadi lebih sederhana dan mudah dipahami.
 iquidCrystal lcd(12, 11, 5, 4, 3, 2); serangkaian pin yang digunakan pada arduino yang
dihubungkan dengan LCD, cukup banyak kan dibandingkan dengan menambahkan i2c
yang hanya pin SCL dan SDA aja.
 lcd.begin(16, 2); angka 16 dan 2 mengatur bahwa lcd yang kita gunakan adalah ukuran
16×2, jika kamu menggunakan LCD 16×4, kamu tinggal ubah angka 2 nya menjadi angka
4.
 lcd.setCursor(0,0); jika ingin menampilkan kata pada baris pertama gunakan kode ini, lalu
selanjutnya gunakanlah lcd.print untuk menampilkan kata pada baris pertama.
 lcd.print(” Test LCD Tanpa I2C”); untuk menampilkan kata atau kalimat pada lcd.

55

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 7
Deteksi Kebocoran Gas dengan Arduino
Sensor gas merupakan jenis sensor yang bertujuan untuk mengukur kandungan senyawa
gas polutan tertentu yang berada pada udara bebas, seperti karbon-dioksida (CO2), karbon-
monosikda (CO), hidrokarbon (LPG, LNG) , dan lain-lain. Sudah semakin banyak dipasaran telah
beredar sensor pengindra gas semikonduktor dalam bentuk modul yang terpackage dengan PCB.
Semakin beragam tipe – tipe sensor gas yang ada dipasaran, yang dimana tentunya ini dibedakan
oleh jenis objektivitas gas yang akan disensing di udara bebas.
Prinsip Kerja Sensor Gas secara Umum
Pada sensor gas terdapat heater yang berfungsi untuk memicu sensor dapat bekerja
mendeteksi objektivas tipe gas yang akan disensing. Pada sensor juga terdapat nilai resistansi yang
berubah – ubah sesuai dengan nilai kepekatan gas yang akan disensing. Semakin tinggi nilai
kepekatan gas yang tersensing di udara bebas, semakin rendah nilai resistansi. Dan apabila
semakin rendah nilai kepekatan gas yang tersensing di udara bebas, semakin tinggi nilai resistansi.
Berikut adalah contoh sensor tipe MQ-2 yaitu sensor yang berfungsi untuk mendeteksi gas asap
rokok dan gas yang mudah terbakar.

Bagian – bagian Module sensor MQ-2


Karakteristik sensor MQ-2
 Dapat mendeteksi gas LPG, i-butana, propana, metana, alkohol, hidrogen dan asap
 Memiliki dual signal output (analog output, and TTL level output)
 Range tegangan analog keluaran antara 0~5Vdc
 mempunyai kestabilan pembacaan yang bagus dan stabil
56

Created by: Aan Tohir Efendi, S.Kom


 Respon cepat dan sensitivitas tinggi
 Output dari sensor berupa Analog dan Digital
 Trigger Level configuration
 Terdapat Potentiometer
 Dimensi module 32 x 20 mm
Keterangan:
Modul MQ-2 Gas Sensor berguna untuk mensensing kebocoran gas yang diaplikasikan pada
rumah maupun industri.
Modul sensor ini sensitif untuk berbagai gas dan dapat digunakan pada ruangan dengan suhu
kamar.
Output dari modul ini adalah sinyal analog dan dapat dibaca dengan input analog (ADC) Arduino
dan Data out yang memiliki keluaran logika 1 dan 0.
Alat dan Bahan :
 Arduino Uno
 Komputer + Software IDE Arduino
 Modul Sensor Gas MQ-2
 Kabel Jumper
Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Wiring diagram rangkaian diatas


Module sensor MQ-2 Arduino Uno
VCC 5V
GND GND

57

Created by: Aan Tohir Efendi, S.Kom


A0 A0

Sketch Program :

/* --- www.smkn7sarolangun.mysch.id/--- */

#include <MQ2.h>

int pinAout = A0;


int lpg_gas, co_gas, smoke_gas;

MQ2 mq2(pinAout);

void setup(){
//Set serial monitor pada baut 9600
Serial.begin(9600);
mq2.begin();
}

void loop(){

/*Pembacaan ketiga gas sekaligus dalam satuan PPM


* No.1 = Gas LPG
* no.2 = Gas CO
* n0.3 = Gas SMOKE
*/

float* values= mq2.read(true); //jika diset "false" tidak akan dimunculkan di serial monitor

lpg_gas = mq2.readLPG();
co_gas = mq2.readCO();
smoke_gas = mq2.readSmoke();

delay(1000);
}

Latihan :
Modifikasi Sensor Gas Ketika terkena gas lampu led menyala atau pun buzzer menyala.

58

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 8
Arduino mengakses Sensor Ultrasonic HC-SR04 /(Sensor Jarak)
Sensor ultrasonic adalah sensor yang berfungsi untuk merubah besaran fisis (suara) menjadi
besaran listrik maupun sebaliknya yang dikonversi menjadi jarak.

Konsep dasar dari sensor ini yaitu memanfaatkan prinsip pemantulan gelombang suara
yang dapat diaplikasikan untuk menghitung jarak benda dengan frekuensi yang ditentukan sesuai
dengan sumber oscilator. Disebut sebagai sensor ultrasonic dikarenakan sensor ini
mengaplikasikan gelombang ultrasonik sebagai trandusernya. Gelombang ultrasonic merupakan
gelombang suara yang memiliki frekuensi tinggi yaitu pada kisaran 20 kHz. Bunyi ini tidak bisa
di dengar dengan telinga normal manusia, hanya bisa didengar oleh sistem pendengaran pada
kelelawar, anjing, lumba-lumba, dan kucing. Dan sifat dari gelombang ini yaitu hanya bisa
merambat melalui zat cair, padat, dan gas. Reflektivitas gelombang ultrasonik pada permukaan
benda padat hampir sama dengan reflektivitas suara ultrasonik dengan permukan benda cair.
Meskipun begitu pada gelombang bunyi ultrasonik akan mudah diserap oleh bahan – bahan
tertentu seperti bahan dari busa maupun tekstil .
Cara Kerja
Sensor ini dimulai dari gelombang ultrasonik dengan frekuensi tertentu yang dibangkitkan
melewati alat yang disebut juga dengan nama piezoelektrik sebagai transmitter.Alat ini akan
menghasilkan gelombang ultrasonik yang berfrekuensi 40kHz (sesuai dengan osilator yang
terpasang pada sensor). Biasanya alat ini akan memancarkan gelombang pada suatu target dan jika
sudah mengenai permukaan target, maka gelombang tersebut akan terpantulkan kembali.Pantulan
gelombang tersebut akan diterima oleh piezoelektrik (receiver) dan kemudian sensor akan
mengkalkulasi perbedaan antara waktu pengiriman dan waktu gelombang pantul yang diterima.

59

Created by: Aan Tohir Efendi, S.Kom


ilustrasi prinsip kerja sensor ultrasonic

Keterangan :
Pemancar ultrasonik akan memancarkan gelombang dengan frekuensi 40kHz dengan jeda waktu
tertentu. Kecepatan rambat gelombang bunyi yaitu kisaran 340 m/s. Sesudah gelombang pantulan
mengenai alat penerima, gelombang tersebut akan diolah untuk dihitung jarak benda tersebut.
Rumus jarak benda dapat dihitung dengan rumus sebagai berikut :

S = 340.t/2
S = Jarak
t = Selisih waktu dipancarkan dan waktu diterima gelombang

Alat dan Bahan :


 Arduino UNO (1 buah)
 Modul Sensor Ultrasonik HC-SR04 (1 buah)
 Resistor 100 Ohm atau 220 Ohm (1 buah)
 Kabel Jumper secukupnya
 Breadboard (1 buah)
 LED 5 mm atau 3 mm, warna bebas (1 buah)

60

Created by: Aan Tohir Efendi, S.Kom


Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

Keterangan:

 Kabel jumper warna merah terhubung ke pin VCC sensor ultrasonik dan pin 5V Arduino
 Kabel jumper warna hitam terhubung ke pin GND sensor ultrasonik dan Arduino
 Kabel jumper warna kuning terhubung ke pin Echo sensor ultrasonik dan pin digital 11
Arduino
 Kabel jumper warna hijau terhubung ke pin Trigger sesnor ultrasonik dan pin digital 12
Arduino

Sketch Program :
// Mengukur jarak dengan Sensor Ultrasonik HC-SR04
/* www.smkn7sarolangun.mysch.id/ */

#define echoPin 11 //Membuat variabel Echo ke-pin 11


#define trigPin 12 //Membuat variabel Trig ke-pin 12
long duration, distance; //Membuat variabel untuk durasi dan jarak

void setup() {
Serial.begin (9600); //Berfungsi untuk komunikasi serial dengan komputer
pinMode(trigPin, OUTPUT); //Set varibel trigPin sebagai output
pinMode(echoPin, INPUT); //Set variabel echoPin sebagai input
}

61

Created by: Aan Tohir Efendi, S.Kom


void loop() {

//Program agar Trig mengirim sinyal ultrasonik


digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);

duration = pulseIn(echoPin, HIGH); //Echo menerima sinyal ultrasonik


distance = (duration/2)/29.1; //Rumus mengubah durasi menjadi jarak (cm)

Serial.println(distance); //Menampilkan jarak pada serial monitor


}

Keterangan
 Fungsi void setup() di dalam program Arduino adalah sebuah program yang dibaca sekali
saja
 Fungsi void loop() di dalam program Arduino adalah sebuah program yang dibaca berulang
kali
 Serial.begin() pada program di atas digunakan untuk komunikasi Arduino dengan
komputer
 Fungsi digitalWrite() di dalam program Arduino adalah sebuah program untuk memberi
perintah 1 atau 0 (TRUE or FALSE)
 Serial.print() di dalam program Arduino adalah sebuah program untuk menampilkan data
di serial monitor tanpa enter
 Serial.println() di dalam program Arduino adalah sebuah program untuk menampilkan data
di serial monitor tanpa dengan enter

Latihan :
Modifikasi sensor ultrasonic dengan led sebagai indicator atau menggunakan buzzer !

62

Created by: Aan Tohir Efendi, S.Kom


PRAKTIK 9
Menyalakan Lampu menggunakan ESP 8266 dengan Web Server
Secara umum Web Server yaitu perangkat untuk menyimpan, memproses, dan
mengirimkan halaman web ke web client (Browser yang ada di komputer dan smartphone).

Cara kerja dari Web Server pun cukup sederhana, komunikasi antara server dan client
menggunakan protokol khusus yang disebut Hypertext Transfer Protocol (HTTP). Client
menggunakan URL / Link untuk melakukan request halaman tertentu menggunakan HTTP dan
kemudian server memberikan response berupa konten halaman web atau pesan bila halaman web
tidak tersedia (Seperti pesan 404). Halaman yang dikirim oleh server sebagian besar adalah
dokumen HTML.

NodeMCU sebagai Web Server. Selain harganya yang murah, pengaplikasian ke arah IoT
pun cukup mudah sehingga bagi yang baru pertama kali terjun ke dunia IoT sangat disarankan
untuk menggunakan NodeMCU yang berbasis ESP8266. Pada gambar di atas NodeMCU
63

Created by: Aan Tohir Efendi, S.Kom


dihubungkan ke jaringan WiFi yang ada (Dibuat oleh router nirkabel yang user miliki atau yang
umum kita sebut Hotspot WiFi) disebut Station (STA). Dalam mode STA, NodeMCU
mendapatkan IP dari router nirkabel yang terhubung. Dengan alamat IP ini, ia dapat mengatur
server web dan mengirimkan halaman web ke semua perangkat yang terhubung di bawah jaringan
WiFi yang ada.
Alat dan Bahan :
 NodeMCU ESP 8266
 USB Micro Uploader (bisa pake kabel data Android)
 LED 5 mm x1
 Resistor 330 Ohm x1
 Projectboard
 Jumper x1 (Male to Male)

Skematik yang dapat dirangkaikan seperti gambar dibawah ini :

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

64

Created by: Aan Tohir Efendi, S.Kom


// Ganti dengan password Jaringan WiFi yang user miliki
const char* ssid = "";
const char* password = "";

ESP8266WebServer server(80); //Inisialisasi server pada port 80

String page = "";


int LEDPin = D0; //Pin yang digunakan untuk mengendalikan LED
void setup(void){
//the HTML of the web page
page = "<h1>Kontrol Lampu Smk </h1><p><a
href=\"LEDOn\"><button>ON</button></a>&nbsp;<a
href=\"LEDOff\"><button>OFF</button></a></p>";
//Inisialisasi pin D4 padam ketika NodeMCU pertama kali menyala
pinMode(LEDPin, OUTPUT);
digitalWrite(LEDPin, LOW);

delay(1000);
Serial.begin(115200);
WiFi.begin(ssid, password); //begin WiFi connection
Serial.println("");

// Wait for connection


while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());

server.on("/", [](){
server.send(200, "text/html", page);
});
server.on("/LEDOn", [](){
server.send(200, "text/html", page);
digitalWrite(LEDPin, HIGH);
delay(1000);
});
server.on("/LEDOff", [](){
server.send(200, "text/html", page);
digitalWrite(LEDPin, LOW);
delay(1000);
});
server.begin();
Serial.println("Web server started!");
65

Created by: Aan Tohir Efendi, S.Kom


}

void loop(void){
server.handleClient();
}

Hasil Percobaan
Setelah program berhasil kita upload, selanjutnya kita check keberhasilannya pada serial monitor.

66

Created by: Aan Tohir Efendi, S.Kom

Anda mungkin juga menyukai