SlideShare a Scribd company logo
Smk Negeri 7 Sarolangun
MODUL ARDUINO UNO DAN NodeMCU
ESP82866
IOT SMK NEGERI 7 SAROLANGUN
By.Aan Tohir Efendi, S.Kom
1
Created by: Aan Tohir Efendi, S.Kom
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++.
2
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
3
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
4
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.
5
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
6
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.
7
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.
8
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.
9
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)
10
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
11
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
12
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)
13
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
14
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.
15
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.
16
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;
}
17
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().
18
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
}
19
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
20
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
21
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 :
22
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.
23
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:
24
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.
25
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:
26
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;
27
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:
28
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.
29
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);
30
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:
31
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();
32
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
33
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
34
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?
35
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);
36
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
37
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
38
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
39
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() {
40
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);
41
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.
42
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() {
43
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
44
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.
45
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");
46
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
47
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
48
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
49
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
50
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("Ft");
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.
51
Created by: Aan Tohir Efendi, S.Kom
52
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 :
53
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 :
54
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
55
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.
56
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
57
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
58
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.
59
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.
60
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)
61
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
}
62
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 !
63
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
64
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>
65
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!");
66
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.

More Related Content

PDF
Installasi NodeMCU
PDF
Tugas akhir silalahi afrina c
PDF
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
DOCX
Makalah tentang ARDUINO dan cara penggunaannya.
PDF
Mikrokontroler (arduino) 2019
PPTX
ARIN CANTIKA MUSI-1901082027.pptxppppppppp
PPT
Arduino adalah pengendali mikro single-board yang bersifat open-source.ppt
PDF
Pengendali lampu berbasis iot dengan remote xy untuk menyalakan lampu
Installasi NodeMCU
Tugas akhir silalahi afrina c
MODUL WORKSHOP MIKROKONTROLLER MANTINGAN.pdf
Makalah tentang ARDUINO dan cara penggunaannya.
Mikrokontroler (arduino) 2019
ARIN CANTIKA MUSI-1901082027.pptxppppppppp
Arduino adalah pengendali mikro single-board yang bersifat open-source.ppt
Pengendali lampu berbasis iot dengan remote xy untuk menyalakan lampu

Similar to MODUL ARDUINO UNO SMK NEGERI 7 SAROLANGUN (20)

PPT
Ardiuno Staterkit perangkat elektronik yang bersifat open source .ppt
PPTX
Training Mikrokontroler Basic dengan Arduino
PPT
Modul praktikum Pertemuan 3 Pendahuluan Arduino.ppt
PDF
Pertemuan 6 Mikroprosessor dan Mikrokontroler
PPT
Arduino.ppt
PPTX
Arduino Uno Teori Dasar dan bagian - bagian arduino.pptx
PPTX
dasar Arduino_pptx.pptx
PDF
Microcontroller
PDF
Arduino pengenalan
PDF
Arduino pengenalan
PPTX
Arduino_pptx.pptx
PPT
Arduino Uno adalah salah satu mikrokontroler yang paling banyak digunakan.
PPTX
Arduino_pptx.pptx
PDF
Arduino pengenalan
PDF
arduino
DOCX
Makalah Arduino
DOCX
Robot Sumo
PPTX
INFORMATIKA SMANSA ARDUINO PROGRAMMING Eko Sefriyanto Adhi, S.Pd.
DOCX
RPP VEDC
PPT
Arduino.ppt
Ardiuno Staterkit perangkat elektronik yang bersifat open source .ppt
Training Mikrokontroler Basic dengan Arduino
Modul praktikum Pertemuan 3 Pendahuluan Arduino.ppt
Pertemuan 6 Mikroprosessor dan Mikrokontroler
Arduino.ppt
Arduino Uno Teori Dasar dan bagian - bagian arduino.pptx
dasar Arduino_pptx.pptx
Microcontroller
Arduino pengenalan
Arduino pengenalan
Arduino_pptx.pptx
Arduino Uno adalah salah satu mikrokontroler yang paling banyak digunakan.
Arduino_pptx.pptx
Arduino pengenalan
arduino
Makalah Arduino
Robot Sumo
INFORMATIKA SMANSA ARDUINO PROGRAMMING Eko Sefriyanto Adhi, S.Pd.
RPP VEDC
Arduino.ppt
Ad

Recently uploaded (9)

DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPTX
Implementasi Microservices pada Manufaktur
PPTX
Materi asdsa asd asd sad sa dsa dsa d sa
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
PDF
Modul_Pemula_Merakit_Komputer untuk smppdf
PDF
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
Materi_Array_Karakter_String untuk kelas XI sma.pptx
pengantar-sistem-informasi manajemen.ppt
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Implementasi Microservices pada Manufaktur
Materi asdsa asd asd sad sa dsa dsa d sa
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Modul_Pemula_Merakit_Komputer untuk smppdf
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
Ad

MODUL ARDUINO UNO SMK NEGERI 7 SAROLANGUN

  • 1. Smk Negeri 7 Sarolangun MODUL ARDUINO UNO DAN NodeMCU ESP82866 IOT SMK NEGERI 7 SAROLANGUN By.Aan Tohir Efendi, S.Kom
  • 2. 1 Created by: Aan Tohir Efendi, S.Kom 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++.
  • 3. 2 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
  • 4. 3 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
  • 5. 4 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.
  • 6. 5 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
  • 7. 6 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.
  • 8. 7 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.
  • 9. 8 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.
  • 10. 9 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)
  • 11. 10 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
  • 12. 11 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
  • 13. 12 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)
  • 14. 13 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
  • 15. 14 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.
  • 16. 15 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.
  • 17. 16 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; }
  • 18. 17 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().
  • 19. 18 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 }
  • 20. 19 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
  • 21. 20 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
  • 22. 21 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 :
  • 23. 22 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.
  • 24. 23 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:
  • 25. 24 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.
  • 26. 25 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:
  • 27. 26 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;
  • 28. 27 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:
  • 29. 28 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.
  • 30. 29 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);
  • 31. 30 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:
  • 32. 31 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();
  • 33. 32 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
  • 34. 33 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
  • 35. 34 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?
  • 36. 35 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);
  • 37. 36 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
  • 38. 37 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
  • 39. 38 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
  • 40. 39 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() {
  • 41. 40 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);
  • 42. 41 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.
  • 43. 42 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() {
  • 44. 43 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
  • 45. 44 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.
  • 46. 45 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");
  • 47. 46 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
  • 48. 47 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
  • 49. 48 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
  • 50. 49 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
  • 51. 50 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("Ft"); 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.
  • 52. 51 Created by: Aan Tohir Efendi, S.Kom
  • 53. 52 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 :
  • 54. 53 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 :
  • 55. 54 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
  • 56. 55 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.
  • 57. 56 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
  • 58. 57 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
  • 59. 58 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.
  • 60. 59 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.
  • 61. 60 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)
  • 62. 61 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 }
  • 63. 62 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 !
  • 64. 63 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
  • 65. 64 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>
  • 66. 65 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!");
  • 67. 66 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.