0% menganggap dokumen ini bermanfaat (0 suara)
46 tayangan76 halaman

MODUL Mikrokontroller (Arduino)

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

MODUL Mikrokontroller (Arduino)

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

Apa itu microcontroller?

Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol


rangkaian elektronik dan umunya dapat menyimpan program.
Mikrokontroller umumnya terdiri dari CPU (Central Processing Unit), memori
/ RAM, I/O (input/output) tertentu dan unit pendukung seperti Analog-to-
Digital Converter (ADC) yang sudah terintegrasi di dalamnya.

Apa itu Arduino?

Arduino adalah sebuah rangkaian yang memakai IC microcontroller sebagai


pengendali utama rangkaian. Arduino bersifat open-source (tanpa hak cipta)
yang dirancang untuk memudahkan pengguna dalam belajar pemrograman
untuk diaplikasikan dalam berbagai bidang. Arduino menggunakan IC /
Integrated Circuit keluaran Atmel AVR sebagai otak / processornya dan
menggunakan Arduino IDE sebagai software pemrogramannya.

Arduino juga merupakan platform hardware terbuka yang ditujukan kepada


siapa saja yang ingin membuat purwarupa / prototype peralatan elektronik
interaktif. Arduino terkenal dengan hardware dan softwarenya yang fleksibel
dan mudah digunakan.

Mikrokontroler pada board arduino dapat diprogram menggunakan software


Arduino IDE dengan bahasa pemrograman yang memiliki kemiripan syntax
dengan bahasa pemrograman C.

1
Board Arduino Uno

Jenis yang ini adalah yang paling


banyak digunakan. Terutama untuk
pemula sangat disarankan untuk
menggunakan Arduino Uno.
Mengingat banyaknya referensi
yang membahas Arduino Uno.
Arduino uno menggunakan IC AVR
tipe ATMEGA328 sebagai
Microcontrollernya, memiliki 14 pin
I/O digital dan 6 pin input analog.
Untuk menghubungkan Arduino
uno ke komputer cukup menggunakan koneksi kabel USB type A to type B
(sama seperti yang digunakan pada USB printer)

Spesifikasi Arduino Uno

Microcontroller ATmega328P
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14
PWM Digital I/O Pins 6
Analog Input Pins 6
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328P) of which 0.5 KB
used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
LED_BUILTIN 13
Length 68.6 mm
Width 53.4 mm
Weight 25 g

2
Arduino Mega

Mirip dengan Arduino Uno, sama-


sama menggunakan USB type A
to B untuk koneksi ke komputer.
Perbedaan Arduino uno dan
arduino mega yang mendasar
adalah pada IC Microcontroller
yang digunakan. Arduino Mega
menggunakan Chip ATMEGA2560
yang memiliki ukuran memori
dan jumlah pin yang lebih
banyak.

Spesifikasi Arduino Mega2560

Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 54
Analog Input Pins 16
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 256 KB of which 8 KB used by bootloader
SRAM 8 KB
EEPROM 4 KB
Clock Speed 16 MHz
LED_BUILTIN 13
Length 101.52 mm
Width 53.3 mm
Weight 37 g

3
Arduino Nano

Sepertinya namanya, “Nano”.


Arduino nano ini memiliki ukuran
yang kecil dan sangat sederhana,
secara spesifikasi Arduino Nano ini
memiliki spesifikasi teknis hampir
sama dengan Arduino Uno. Arduino
Nano menggunakan kabel Micro USB
untuk koneksi ke komputer. Arduino
nano mempunyai 8 Pin input Analog (lebih banyak dari Uno). Di pasaran
jenis arduno nano ini dijual dengan beberapa versi. Versi menggunakan IC
Microcontroller atmega168 dan atmega328

Spesifikasi Arduino Nano (Atmega328)

Microcontroller ATmega328
Operating Voltage 5V
Flash Memory 32 KB of which 2 KB used by bootloader
SRAM 2 KB
Clock Speed 16 MHz
Analog IN Pins 8
EEPROM 1 KB
DC Current per I/O Pins 40 mA (I/O Pins)
Input Voltage 7-12 V
Digital I/O Pins 22 (6 of which are PWM)
PWM Output 6
Power Consumption 19 mA
PCB Size 18 x 45 mm
Weight 7g

4
Arduino Pro Mini

Arduino Pro Mini memiliki spesifikasi yang


sama dengan yang dimiliki Arduino Nano.
Hanya saja Arduino Pro Mini tidak dilengkapi
dengan Port USB untuk pemograman secara
langsung, Hal ini dimaksutkan agar ukuran
Arduino Pro Mini bisa lebih kecil daripada
Arduino Nano

Spesifikasi Arduino Pro Mini (Atmega328)

Microcontroller ATmega328
3.35 -12 V (3.3V model) or 5 - 12 V (5V
Board Power Supply
model)
Circuit Operating Voltage 3.3V or 5V (tergantung model)
Digital I/O Pins 14
PWM Pins 6
UART 1
SPI 1
I2C 1
Analog Input Pins 6
External Interrupts 2
DC Current per I/O Pin 40 mA
Flash Memory 32KB of which 2 KB used by bootloader
SRAM 2 KB *
EEPROM 1 KB *
8 MHz (3.3V versions) or 16 MHz (5V
Clock Speed
versions)

Catatan : masih ada beberapa jenis lain dari Arduino


Board, namun 4 jenis Arduino yang barusan kita
bahas adalah jenis yang sering dipakai dan mudah
didapatkan di pasaran.

5
Dimana saya dapat mendapatkan Board Arduino?

Untuk dapat mendapatkan arduino kita dapat membelinya secara resmi


(original) di website resmi arduino https://store.arduino.cc/. Namun karena
sifat dari arduino ini open source, tentu banyak pabrikan yang
memproduksinya sehingga kita dapat dengan mudah mendapatkatnya, salah
satunya adalah dengan membeli di toko online indonesia seperti tokopedia,
bukalapak, shopee dan lain lain.

Sebelum membeli perlu diketahui bahwa yang kebanyakan dijual adalah


versi clone / tiruan, sehingga harganya jauh lebih murah daripada versi
originalnya, namun hal tersebut tidak menjadi masalah karena meskipun
versi tiruan tetap bisa diandalkan kualitasnya, cukup sebagai gambaran
bahwa kebanyakan pengguna arduino juga menggunakan arduino versi
tiruan, namun jika memiliki uang lebih maka tidak ada salahnya sesekali
membeli yang versi origial untuk membantu pengembang arduino.

Dipasaran ada beberapa pilihan arduino, sebagai contoh untuk arduino uno,
ada yang menjual dengan chip programmer atmega16u2 dan CH340,
biasanya untuk board arduino yang menggunakan chip programmer ch340
harganya lebih murah

Chip CH340 Chip atmega16u2


Apa itu chip programmer? Chip programmer adalah sebuah chip yang
berfungsi menghubungkan microcontroller utama dari baord arduino dengan
kamputer

Kenapa versi CH340 lebih murah? Karena kecepatan komunikasinya lebih


lambat (meskipun tidak signifikan), sehingga ketika meng upload program
dari komputer ke board arduino jumlah waktu yang diperlukan lebih lama
dari pada yang menggunakan chip programmer atmega16u2

Selain itu jika kita membeli yang versi CH340 maka saat instalasi software
arduino IDE kita perlu menginstall secara terpisah driver CH340 itu sendiri.

6
Apa itu software Arduino IDE?

Arduino IDE (Integrated Development Environment) adalah sebuah software


yang dapat kita gunakan untuk berkomunikasi dengan board arduino seperti
menuliskan kode program, mengirim data serial, menerima data serial dan
lain lain.

Cara Install Arduino IDE

1. Download Software Arduino IDE di link berikut:


https://www.arduino.cc/download_handler.php?f=/arduino-1.8.9-
windows.exe

2. Buka File “arduino-1.8.9-windows.exe”

7
3. Centang semua opsi dan klik Next

4. Pilih lokasi instalasi lalu klik next

5. Tunggu Proses Instalasi selesai

8
Catatan : Jika menggunakan board arduino yang
menggunakan chip programmer CH340 maka
memerlukan pemasangan driver CH340, sedangkan
untuk board yang menggunakan chip programmer
atmega16u2 driver sudah terinstall secara otomatis
saat instalasi software arduino IDE.

Berikut ini adalah langkah – langkah menginstal driver ch340


1. Download driver ch340 di
https://sparks.gogo.co.nz/assets/_site_/downloads/CH34x_Install_Wind
ows_v3_4.zip

2. Extrak file hasil download menggunakan winrar lalu jalankan


“setup.exe”

3. Setelah setup.exe terbuka langsung saja klik “install”

4. Selesai

9
Memeriksa Port / Memastikan Driver telah Terinstall dengan Baik

1. Hubungkan Board Arduino ke Slot USB PC


2. Buka Device Manager dengan mengetik Device Manager di Search
Program and Files

3. Buka bagian Ports (COM & LPT)


Berikut ini adalah contoh jika driver arduino yang menggunakan chip
programmer atmega16u2 sudah terinstall dengan baik, pada gambar
berikut COM18 adalah alamat com arduino (kadang dapat berubah)

10
Berikut ini adalah contoh jika driver arduino yang menggunakan chip
programmer ch340 sudah terinstall dengan baik, pada gambar berikut
COM19 adalah alamat com arduino (kadang dapat berubah)

Pada beberapa kasus driver arduino uno yang menggunakan atmega16u2


tidak terinstall secara otomatis saat installasi software Arduino IDE, untuk
itu kita perlu menginstallnya secara manual, berikut adalah langkah –
langkahnya

1. Device Manager dengan mengetik Device Manager di Search Program


and Files
2. Setelah Device Manager terbuka, silahkan cari “Unknown Device” yang
berada di Other Device.

3. Klik kanan pada Unknown device, pilih Update Driver Software.

11
4. Pilih Browse my computer for driver software

5. Lalu cari Folder Instalan Software Arduino IDE, biasanya di C:\Program


Files\arduino-1.6.7-windows dengan meng-klik Browse

6. lalu kilik Next, dan Windowspun akan mencari dan menginstal driver
yang berada pada Folder tersebut.

12
7. Setelah muncul peringatan seperti, centang always trust software from
“Arduino LLC” lalu klik Install

8. Jika menunjukan gambar seperti berikut maka Arduino UNO sudah


terinstall

13
Menulis Program

Untuk dapat menjalankan / mengontrol microcrontoller arduino, kita perlu


memasukan program ke dalam IC Microcontroller tersebut. Sayangnya
bahasa yang dapat dimengerti IC microcontroller arduino adalah bahasa
mesin seperti 0101001001101011010. Oleh sebab itu kita perlu memiliki
penerjemah dari bahasa manusia ke bahasa mesin.

Sketch adalah sebutan untuk program yang ditulis menggunakan Software


Arduino IDE berupa perintah / syntax yang nantinya akan diterjemahkan ke
bahasa mesin. Sketch ini ditulis dalam text editor dan disimpan dengan
ekstensi file “.ino”

Berikut ini adalah antar muka software arduino IDE berserta perintah –
perintahnya yang nantinya akan digunakan untuk memprogram arduino

14
1. File
1) New
Membuat file Sketch
2) Open
Membuka file Skecth
3) Open Recent
Membuka file Sketch yang dibuka sebelumnya
4) Sketchbook
Menunjukkan Sketch saat ini dalam struktur folder Sketch
5) Example
Contoh Sketch yang diberikan oleh Software Arduino IDE
6) Keluar
Menutup Editor File Sketch
7) Save
Menyimpan sketch sesuai dengan nama dan lokasi sebelumnya
8) Save As
Menyimpan sketch dengan nama / lokasi file yang berbeda dari
sebbelumnya
9) Page Setup
Membuka pengaturan halaman untuk dicetak
10) Mencetak
Mencetak Sketch sesuai dengan ppengaturan di Page Setup
11) Preferensi
Membuka jendela Preferensi / tempat beberapa pengaturan Arduino
IDE yang dapat dikustomisasi
12) Quit
Menutup semua Sketch / Menutup Software Arduino IDE

2. Edit
1) Undo / Redo
Kembali (undo) / maju (redo) satu langkah atau lebih saat menulis
program
2) Cut
Hapus teks yang dipilih dari editor dan meletakkannya di clipboard.
3) Copy
Menggandakan teks yang dipilih di editor dan letakkan di clipboard.
4) Copy for Forum
Menyalin Sketch ke clipboard dalam bentuk yang sesuai untuk
posting ke forum Arduino, lengkap dengan pewarnaan Sketch
5) Salin sebagai HTML
Menyalin Sketchke clipboard sebagai HTML (cocok untuk disematkan
di halaman web)
6) Paste
Menempelkan konten di clipboard ke posisi kursor di editor

15
7) Select All
Memilih dan menyoroti seluruh konten di text editor
8) Comment / Uncomment
Sematkan atau hapus tanda “//” komentar di awal setiap baris yang
dipilih
9) Increase / Decrease Indent
Menambah / mengurangi tab pada text editor
10) Search
Membuka jendela pencarian
11) Search Next
Menuju baris karakter pencarian selanjutnya
12) Search Previous
Menuju baris karakter pencarian sebelumnya

3. Sketsa
1) Verify / Compile
Memeriksa kesalahan yang ada pada sketch
2) Upload
Mengkompilasi dan mengunggah file biner ke Arduino
3) Upload using Programmer
Mengkompilasi dan mengunggah file biner ke IC mikrokontroller
menggunakan external programmer seperti USBASP / FT232 atau
yang lain
4) Export compiled Binery
Menyimpan file .hex yang dapat disimpan sebagai arsip atau
diunggah ke Board Arduino menggunakan alat lain.
5) Show Skecth Folder
Membuka Lokasi Folder sketch yang dibuka.
6) Include Library
Menambahkan Library ke dalam Skecth. Selain itu, dari item menu
ini dapat diakses Library Manager dan mengimpor Library baru dari
file .zip.
7) Add File..
Menambahkan file Sketch. File baru akan ditampilkan di tab. File
dapat dihapus dari Sketch menggunakan menu tab yang dapat
diakses dengan mengklik ikon segitiga
4. Tools
1) Auto Format
Memformat kode pada Sketch dengan baik, Seperti menambahkan
Tab secara otomatis pada karakter didalam kurung kurawal agar
lebih menjorok kedepan.
2) Archive Sketch
Mengarsipkan salinan Sketch saat ini dalam format “.zip”. Arsip akan
ditempatkan di direktori yang sama dengan Sletch saat ini.

16
3) Fix Encoding & Reload
Memperbaiki kemungkinan ketidaksesuaian antara char map
encoding dan char maps sistem operasi lainnya.
4) Serial Monitor
Membuka jendela serial monitor untuk melakukan pertukaran data
dengan board arduino yang tersambung di Port yang saat ini dipilih.
Ini biasanya me-reset papan.
5) Board
Memilih jenis Board Arduino yang digunakan
6) Port
Memilih port yang terhubung dengan board arduino
7) Programmer
Memilih jenis Programmer jika akan memburning bootloader
menggunakan external programmer
8) Burn Bootloader
Melalukan burning bootloader ke IC Mikrokontroller

5. Help
Menemukan akses mudah ke sejumlah dokumen pembantu yang ada
didalam software Arduino IDE seperti akses ke Getting Started,
Reference, dan dokumen lain yang dapat diakses secara offline tanpa
koneksi internet

6. Compile / Verify
Memeriksa Program dari adanya kesalahan / error

7. Upload
Mengcompile program dan mengunggahnya ke Board Arduino

8. New
Membuat Skecth baru

9. Open
Membuka File Sketch

10. Save
Menyimpan File Sketch

11. Serial Monitor


Membuka Serial Monitor
12. Text Editor
Tempat menulis program
13. Message Area
Menampilkan pesan / umpan balik hasil dari compiling / uploading
14. Console Display
Menampilkan rincian pesan hasil dari compiling

17
Setelah kita belajar tentang software arduino IDE, sekarang saatnya kita
pelajari penggunaan software tersebut secara langsung

Latihan 1. Meng-Compile Sketch Arduino

Langkah
1. Buka Software Arduino IDE
2. Buat File Baru (File > New)
3. Copy dan Paste coding berikut ke text editor

void setup()
{
// put your setup code here, to run once:
}

void loop()
{
// put your main code here, to run repeatedly:
}

4. Klik Compile / Verify

5. Tunggu beberapa saat maka akan muncul pada


bagian message area yang menunjukan coding berhasil di compile

Penjelasan
Pada Latihan ini kita belajar tentang cara meng-compile sketch Arduino.

Latihan 2. Meng-Compile Sketch Arduino Bagian 2

Langkah
1. Buka Software Arduino IDE

18
2. Buat File Baru (File > New)
3. Copy dan Paste coding pada percobaan 1 dan ganti text void setup()
dengan Void setup() (kata “void” dengan huruf “v” kecil dan huruf “v”
besar) sehingga coding secara keseluruhan menjadi seperti ini

Void setup()
{
// taruh kode disini untuk dijalankan satu kali
}

void loop() {
// taruh kode di sini untuk dijalankan terus menerus
}

4. Klik Compile / Verify


5. Tunggu beberapa saat maka akan muncul Error yang menandakan
coding GAGAL di compile

6. Kembalikan text Void setup() kembali menjadi void setup()

7. Klik Compile /
Verify

6. maka akan muncul pada bagian message area yang


menandakan coding berhasil di compile
8. Selesai

Penjelasan
Pada latihan kali ini kita belajar bahwa pada pemrograman arduino ini ada
istilah yang namanya “case sensitive”, dimana saat kita salah menuliskan
program baik itu salah besar kecilnya huruf seperti yang seharusnya “void”
salah menulis “Void” seperti kasus diatas, kurang titik koma, kurang titik
atau bahkan kelebihan spasi maka akan mengakibatkan kode / program
yang kita tulis tidak bisa di compile.

Latihan 3. Meng-upload Program / Sketch ke Arduino


Bahan
1. Arduino Uno

Langkah
1. Hubungkan Arduino ke Port USB Laptop
2. Pilih Board (Tools > Board) “Arduino / Genuino Uno”
19
3. Pilih Port tempat arduino berada
4. Tulis Program berikut ini di text editor

void setup()
{
// put your setup code here, to run once:
}

void loop()
{
// put your main code here, to run repeatedly:
}

5. Klik Upload untuk memasukan program ke Arduino


6. Tunggu beberapa saat

7. Maka message area akan menunjukan yang berarti


program yang kita buat sudah masuk ke board arduino
8. Selesai

Penjelasan
Pada latihan kali ini kita belajar cara meng-upload program ke board arduino

Latihan 4. Memberikan Komentar pada Baris Program

Bahan
1. Arduino Uno Board

20
Langkah
1. Compile program berikut ini

void setup() {
// taruh kode disini untuk dijalankan sekali
}

void loop() {
//taruh kode disini untuk dijalankan berulang
}

2. Jika kalian tidak mendapati mendapati Error saat compiling program


maka selamat! Anda berhasil 

Penjelasan
Pada latihan kali ini kita belajar tentang cara memberikan komentar pada
program arduino, komentar ini berguna untuk memberi catatan pada
program yang kita buat. pada penulisan program arduino ada dua cara,
yaitu dengan cara memberikan 2 “//”garis miring didepan komentar seperti
contoh program diatas atau dengan memberikan tanda “/*” didepan
komentar dan tanda “*/”dibelakang komentar, apa bedanya? Bedanya
adalah penggunaan “//” terbatas hanya untuk 1 baris dan “/* - */” bisa lebih
dari satu baris, contoh penulisanya untuk yang lebih dari satu baris adalah
sebagai berikut:

void setup() {
/* taruh kode disini
Atau disini
Atau disini
untuk dijalankan sekali */
}

void loop() {
/* Atau taruh kode disini
Atau disini
Atau disini
untuk dijalankan berulang */
}

Latihan 5. Mengirim data dari arduino ke laptop (komunikasi serial)

Bahan
1. Arduino Uno Board

21
Langkah
1. Upload program berikut ini ke Arduino

void setup() {
Serial.begin(9600); //baudrate
Serial.println("joss");
}

void loop() {
Serial.println("gass");
delay(1000);
}

2. Buka Serial Monitor dengan cara menekan button serial monitor

3. Setelah Serial Monitor terbuka, sesuaikan baudrate pada bagian seperti


yang tertunjuk pada gambar berikut sesuai dengan baudrate pada
program

4. Jika serial monitor menunjukan seperti gambar berikut maka selamat!


kalian telah berhasil mengirim data dari arduino ke laptop

22
Penejelasan
Pada latihan kali ini kita belajar tentang cara mengirim data serial dari
arduino ke laptop atau yang lebih sering disebut komunikasi serial,
komunikasi serial sendiri sebenarnya tidak hanya sebatas dari arduino ke
laptop, bisa juga laptop ke arduino atau bahkan dari arduino ke device lain
(contoh : modul bluetooth, modul gsm, dll)

Selain belajar tentang cara mengirim data serial, Pada program diatas ada
beberapa pelajaran yang dapat kita ambil
1. Ketika membuka serial monitor maka akan tampil karakter “joss” sekali
dan karakter “gass” berulangkali, karakter “joss” tampil akibat dari
adanya baris kode

Serial.println("joss");

Dan karakter “gass” tampil akibat dari adanya baris kode

Serial.println("gass");

Perintah yang digunakan sama yaitu Serial.println() tapi kenapa


hasilnya bisa berbeda? yang ”joss” ditampilkan satu kali dan yang “gass”
berulang kali? Jawabanya adalah karena Serial.println("joss")
ditempatkan di dalam

void setup() {

23
dimana semua kode yang ditempatkan didalam void setup() hanya akan
dijalankan satu kali selama arduino hidup, sedangkan karakter “gass”
ditampilkan berulang kali karena Serial.println("gass") ada di dalam

void loop() {

dimana semua kode yang ditempatkan didalam void loop() akan


dijalankan secara terus menerus selama arduino hidup

2. Saat karakter “gass” tampil, ada jeda selama beberapa saat sebelum
tampil karakter “gass” berikutnya, jeda tersebut akibat dari adanya baris
program

delay(1000);

Susuai artinya delay() berfungsi untuk memberi jeda, angka 1000


berarti 1000 miliseconds (1 detik), adapun baris program lain untuk
memberikan jeda adalah delayMicroseconds(), delayMicroseconds()
memiliki jeda yang lebih presisi karena menggunakan satuan micro
second, contoh penulisannya adalah sebagai berikut:

delayMicroseconds(1000000);

Contoh diatas adalah baris program untuk memberikan jeda selama 1


detik ( 1 detik = 1.000.000 micro seconds)

3. Untuk menampilkan karakter di serial monitor kita dapat menggunakan


baris Serial.println() atau dapat juga menggunakan Serial.print(), apa
bedanya? Silahkan dicoba sendiri  dengan mencoba program berikut:

void setup() {
Serial.begin(9600);
Serial.print("joss");
}

void loop() {
Serial.print("gass");
delay(1000);
}

24
Sudah tau bedanya? Nah, untuk mengakses komunikasi serial kita perlu
mengatur kecepatan / baudratenya di dalam baris program
Serial.begin(), semakin besar nilainya maka semakin cepat
komunikasinya, sebagai contoh kalian dapat membedakannya dengan
membandingkan dua program berikut ini (tanpa delay), bedakan hasil
dari program ini

void setup() {
Serial.begin(300);
Serial.print("joss");
}

void loop() {
Serial.print("gass");
}

Dengan ini

void setup() {
Serial.begin(2000000);
Serial.print("joss");
}

void loop() {
Serial.print("gass");
}

Pastikan baudrate di serial monitor juga disesuaikan ya, biar frekuensi


antara arduino dan laptop sama

25
Latihan 6. Menyalakan LED (tanpa progam)

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω

Langkah
1. Buat rangkaian seperti gambar dibawah ini (posisi arduino off)

2. Sambungkan kaki LED ( + ) (kaki lebih panjang) dengan resistor 330Ω


dan Power 5V
3. Sambungkan kaki LED ( - ) (kaki lebih pendek) dengan Ground
4. Nyalakan arduino dengan menghubungkannya dengan USB laptop
5. Jika rangkaian benar maka LED akan menyala

Penjelasan
Pada latihan kali ini ada beberapa pelajaran yang dapat diambil, yaitu :
1. Kita belajar untuk menyalakan LED menggunakan pin 5V dan GND dari
Aduino
2. Kita belajar menggunakan breadboard, di dalam breadboard sendiri ada
metal konduktor yang berfungsi untuk menghubungkan tiap lubang
dengan jalur seperti gambar di bawah ini:

26
3. Kita belajar tentang penggunaan resistor pada rangkaian. Penggunaan
resistor ditujukan untuk membatasi arus yang melewati rangkian,
karena maksimal arus yang digunakan untuk menyalakan LED adalah
100mA, maka digunakan R sebesar 330Ω, dengan perhitungan sebagai
berikut:

Jadi pada rangkaian diatas arus yang menglir pada rangkaian LED adalah
15mA (Aman untuk LED)

Latihan 7. Menyalakan dan Mematikan LED menggunakan program

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω
Langkah
1. Buat rangkaian seperti gambar berikut ini

2. Sambungkan kaki LED ( + ) (kaki lebih panjang) dengan resistor 330Ω


dan pin Digital 13 (D13)
3. Sambungkan kaki LED ( - ) (kaki lebih pendek) dengan Ground
4. Pastikan tidak ada program yang bekerja di arduino dengan cara
mengupload program berikut ini

void setup() {
}

void loop() {
}

5. Lihat yang terjadi pada LED, LED mati? Benar ! karena tidak ada
program yang sedang bekerja di Arduino
6. Selanjutnya Upload Program berikut ini

/*
Program menyalakan LED menggunakan program
*/

void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(13, OUTPUT);
}

void loop() {
// memberikan sinyal HIGH pada pin D13
digitalWrite(13, HIGH);

28
}

7. Jika LED di Breadboard menyala maka Selamat! Anda berhasil!

Penjelasan
Pada latihan kali ini kita belajar tentang cara menyalakan sebuah LED
menggunakan program di Arduino, pada latihan kali ini kita belajar
menyalakan LED dengan perintah digital, apa itu perintah digital?

Perintah digital dalam latihan ini adalah perintah yang dimana hanya ada 2
kondisi yaitu LOW dan HIGH atau 0 dan 1, LOW berarti pin yang kita
perintah bertegangan 0 volt dan HIGH yang berarti pin yang kita perintah
bertengangan 5 Volt, perintah digital pada pemrograman arduino dapat
dijalankan dengan menuliskan baris program digitalW
digitalWrite(pin,logika). Sebagai contoh untuk mematikan LED pada pin
digital 13 silahkan upload program berikut (masih dengan rangkaian yang
sama)

/*
Program menyalakan LED menggunakan program
*/

void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(13, OUTPUT);
}

void loop() {
// memberikan sinyal / logika LOW pada pin D13
digitalWrite(13, LOW);
}

Atau juga bisa dengan menggunakan program berikut

/*
Program menyalakan LED menggunakan program
*/
void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(13, OUTPUT);
}

void loop() {
// memberikan sinyal / logika LOW pada pin D13

29
digitalWrite(13, 0);
}

Sebelum menggunakan perintah digital kita harus terlebih dahulu


mendefinisikan pin yang akan diperintah dengan menuliskan baris program
pinMode(pin, mode), karena kita akan menyalakan LED yang berati pin
arduino kita perintah untuk mengeluarkan sinyal maka mode yang kita pilih
adalah mode output, makanya pada program diatas ada baris program
pinMode(13, OUTPUT);

Perintah digitalWrite() dapat kita jalankan di semua pin I/O (input output)
pada board arduino, termasuk juga pada pin Analog, untuk membuktikannya
kalian bisa mencoba program berikut

/*
Program menyalakan LED menggunakan program
*/

void setup() {
//memfungsikan pin Analog 0 sebagai output
pinMode(A0, OUTPUT);
}

void loop() {
// memberikan sinyal / logika HIGH pada pin A0
digitalWrite(A0, 1);
}

Dengan rangkaian seperti pada gambar berikut

30
Latihan 8. Memberi nama pada Pin

Pada beberapa percobaan diatas, ketika kita ingin mengganti pin yang ingin
digunakan maka kita harus mengganti pin yang digunakan pada beberapa
baris code, bayangkan jika nantinya program kita sangat panjang, tentu
tidak efisisien jika kita harus mencari dan mengganti satu persatu, untuk itu
kita perlu memberikan nama untuk setiap pinnya sehingga kita dapat
dengan mudah menghafal pin yang kita gunakan dan mudah ketika nantinya
ingin merubah pin yang akan digunakan, untuk memberikan nama pada
sebuah pin kita bisa menggunakan baris code #define [spasi] nama pin
[spasi] nomor pin. Untuk lebih jelasnya silahkan coba program berikut
menggunakan wiring seperti latihan sebelumnya

/*
Memberikan nama pada pin
*/
#define pinLampu A0 //mendefinisikan pin A0 dengan nama pinLampu

void setup() {
//memfungsikan pin Analog 0 sebagai output
pinMode(pinLampu, OUTPUT);
}

void loop() {
// memberikan sinyal / logika HIGH pada pin A0
digitalWrite(pinLampu, HIGH);
}

31
Latihan 9. Membuat LED berkedip (Flip-Flop)

Setelah kita berhasil menyalakan dan mematikan LED pada latihan


sebelumnya, pada latihan kali ini kita akan membuat led berkedip / hidup
mati / flip flop / LED Blinking dengan jeda 1 detik

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω

Langkah
1. Buat rangkaian seperti gambar dibawah ini

2. Sambungkan kaki LED ( + ) (kaki lebih panjang) dengan resistor 330Ω


dan pin Digital 13 (D13)
3. Sambungkan kaki LED ( - ) (kaki lebih pendek) dengan Ground
4. Upload program berikut

/*
Program LED berkedip
*/

#define LED 13

void setup() {
//memfungsikan pin digital 13 sebagai output
pinMode(LED, OUTPUT);
}

32
void loop() {
// memberikan sinyal HIGH pada pin D13
digitalWrite(LED, HIGH);
// memberikan jeda 1 detik
delay(1000);
//memberikan sinyal LOW pada pin D13
digitalWrite(LED, LOW);
// memberikan jeda 1 detik
delay(1000);
}

5. Jika LED di Breadboard berkedip dengan jeda 1 detik maka Selamat!


Anda berhasil!

Latihan 10. Membaca Sinyal digital dari Push Button

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. Resistor 330Ω

Langkah
1. Buatlah rangkaian seperti gambar dibawah ini

2. Upload Program berikut ini

/*
Program membaca sinyal digital dari Push Button
*/

33
#define PB 2
void setup() {
// mengatur baudrate
Serial.begin(9600);
// mendefinikasi pin 2 sebagai input
pinMode(PB, INPUT);
}

void loop() {
// menampilkan hasil pembacaan digital dari pin 2
Serial.println(digitalRead(PB));
delay(1);
}

3. Buka Serial Monitor


4. Perhatikan pebedaan tampilan di serial monitor ketika push button
ditekan dan push button dilepas
5. Jika serial monitor menampilkan angka 1 ketika push button dilepas dan
angka 0 ketika push button ditekan maka selamat ! Anda berhasil

Penjelasan
Pada latihan ini kita belajar untuk membaca nilai digital dari pin 2 arduino
dan menampilkannya di serial monitor, ada beberapa pelajaran yang dapat
kita ambil pada latihan ini, salah satunya adalah penggunaan pull up
resistor, pada rangkaian diatas kita menggunakan resistor yang berfungsi
sebagai resistor pull up, resistor pull up berfungsi agar arduino tidak bingung
ketika membaca nilai dari pin 2, karena ketika tidak memakai resistor pull
up maka saat push button tidak ditekan maka pin 2 tidak terhubung ke GND
dan juga tidak terhubung ke 5V, sehingga akan terjadi floating
(mengambang)

Oleh sebab itu digunakanlah resistor pull up agar ketika push button tidak
ditekan maka pin 2 akan terhubung dengan 5V melalui resistor sehingga pin
2 akan bernilai HIGH dan ketika push button ditekan maka pin 2 akan
terhubung ke GND secara langsung (tanpa hambatan) dan pin 2 akan
bernilai LOW, selain rangkaian yang menggunakan resistor pull up ada juga
rangkaian yang menggunakan pull down, rangkaian yang menggunakan
resistor pull down adalah seperti gambar berikut

34
Istimewanya, di chip Mikrokontroller AVR pada arduino sendiri sudah
tertanam internal pull up resistor, sehingga kita tidak perlu menambahkan
resistor pada rangkaian, internal pull up resistor tersebut dapat dicoba
menggunakan rangkaian dan program berikut

/*
Program membaca sinyal digital dari Push Button
*/
#define PB 2

void setup() {
// mengatur baudrate
Serial.begin(9600);
// mendefinikasi pin 2 sebagai input dan mengaktifkan internal pull up resistor
pinMode(PB, INPUT_PULLUP);
}

void loop() {

35
// menampilkan hasil pembacaan digital dari pin 2
Serial.println(digitalRead(PB));
delay(1);
}

Latihan 11. Kontrol Led menggunakan Push Button

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. LED
6. Resistor 330Ω

Langkah
1. Buatlah rangkaian seperti gambar dibawah ini

2. Upload Program berikut ini

/*
Kontrol LED dengan push button
*/
//mendefinisikan pin 3 bernama LED
#define LED 3
//mendefinisikan pin 4 bernama pb
#define pb 4
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);

36
// matikan LED
digitalWrite(LED, LOW);
}

void loop() {
if (digitalRead(pb) == LOW) //jika pin pb LOW (push button ditekan)
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}

if (digitalRead(pb) == HIGH) //jika pin pb HIGH (push button tidak ditekan)


{
digitalWrite(LED,LOW); //matikan LED
}
}

3. Tekan push button, maka LED akan hidup dan jika push button dilepas
maka LED akan mati

Penjelasan
Pada latihan kali ini kita coba menggabungkan beberapa progam yang sudah
pelajari sebelumnya, pada latihan ini juga ada pelajaran baru yaitu
penggunaan “IF Statement Conditions” dan Operator matematika.
Apa itu IF Statement Conditions? Adalah sebuah logika pemrograman “JIKA
– MAKA”, seperti pada program diatas kita menginginkan logika

“JIKA push button ditekan (LOW), MAKA led hidup (HIGH)


“JIKA push button dilepas (HIGH), MAKA led mati (LOW)”

Adapun pada program diatas hanya terdapat 1 kondisi, namun logika JIKA –
MAKA ini dapat kita tambah kondisinya menjadi beberapa kondisi dengan
penulisan logika IF ELSE, ELSE IF, ELSE dengan contoh penulisan sebagai
berikut:

IF ELSE

// jika kondisi 1 terpenuhi


if (Condition 1)
{ //maka
statement 1 // kerjakan ini
}
// jika kondisi 1 tidak terpenuhi
else
{ // maka
statement 2 // kerjakan ini
}

37
IF - ELSE IF – ELSE

// jika kondisi 1 terpenuhi


if (Condition 1)
{ //maka
statement 1 // kerjakan ini
}
// jika kondisi 1 tidak terpenuhi, tapi kondisi 2 terpenuhi
else if (Condition 2)
{ //maka
statement 2 // kerjakan ini
}
else // jika kondisi 1 dan 2 tidak terpenuhi
{ // maka
statement 3 // kerjakan ini
}

IF - ELSE IF - ELSE IF – ELSE

// jika kondisi 1 terpenuhi


if (Condition 1)
{ //maka
statement 1 // kerjakan ini
}

// jika kondisi 1 tidak terpenuhi, tapi kondisi 2 terpenuhi


else if (Condition 2)
{ //maka
statement 2 // kerjakan ini
}

// jika kondisi 1 dan 2 tidak terpenuhi, tapi kondisi 3 terpenuhi


else if ( Condition 3)
{ // maka
statement 3 // kerjakan ini
}

else //jika kondisi 1 2 dan 3 tidak terpebuhi


{ // maka
statement 4 // kerjakan ini
}

Berdasarkan pemahaman diatas maka program kontrol led yang sudah


dibuat sebelumnya dapat kita jadikan lebih efisien menjadi program berikut:

/*
Kontrol LED dengan push button
*/

//mendefinisikan pin 3 bernama LED


#define LED 3
//mendefiniasikan pin 4 bernama pb

38
#define pb 4
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
// matikan LED
digitalWrite(LED, LOW);
}

void loop() {
//jika pin pb LOW (push button ditekan
if (digitalRead(pb == LOW))
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
// jika kondisi if tidak terpenuhi
else
{ // maka
digitalWrite(LED,LOW); //matikan LED
}
}

Pada program diatas dibagian if (digitalRead(pb == LOW)) juga terdapat bagain


yang perlu dipelajari yaitu operator berupa simbol “==”

Dalam bahasa pemrograman masih banyak lagi operator yang perlu


diketahui seperti pada tabel berikut:

Operator Arti
== Sama dengan
!= Tidak sama dengan
> Lebih dari
< Kurang dari
>= Lebih dari
<= Kurang dari
&& Dan
|| Atau
% Sisa hasil pembagian,
Contoh :
5%5 = 0
5%4 = 1
5%3 =2
5%2 = 1
5%1 = 0
+ Tambah
- Kurang

39
/ Bagi
* Kali
= Assignment, memberi nilai pada sesuatu
Contoh : x = 2;
++ Menaikan nilai bilangan
-- Menurunkan nilai bilangan

Latihan 12. Kontrol LED menggunakan push button (logika and)

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. 2 Push Button
5. LED
6. Resistor 330Ω

Langkah
1. Buatlah rangkaian seperti gambar dibawah ini

Hubungkan pin digital 3 dengan pin resitor yang terhubung dengan pin
positif LED, hubungkan pin digital 4 dan 5 dengan salah satu pin push
button dan hubungkan pin push button yang lain dengan ground pin
arduino
2. Upload program berikut ke papan arduino

/*
Kontrol LED dengan push button

40
*/

//mendefinisikan pin 3 bernama LED


#define LED 3
//mendefiniasikan pin 4 bernama pb1
#define pb1 4
//mendefiniasikan pin 5 bernama pb2
#define pb2 5
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb1, INPUT_PULLUP);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb2, INPUT_PULLUP);
// matikan LED
digitalWrite(LED, LOW);
}

void loop() {
//jika pin pb1 dan pb2 LOW (semua push button ditekan)
if (digitalRead(pb1 == LOW) && digitalRead(pb2 == LOW))
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
// jika kondisi if tidak terpenuhi
else
{ // maka
digitalWrite(LED,LOW); //matikan LED
}
}

3. Tekan salah satu push button, lihat nyala LED


4. Tekan semua push button, lihat nyala LED

5. Jika rangkaian dan program benar, Saat salah satu push button ditekan
maka led tidak akan hidup, baru setelah kedua push button ditekan
maka led akan hidup

Penjelasan
Pada latihan ini ada pelajaran yang bisa diambil yaitu penggunaan logika &&
(and), dimana logika and ini digunakan sebagai prasyarat dari if condition.

Pada if condition tersebut di tuliskan “JIKA push button 1 LOW (ditekan)


dan push button 2 LOW (ditekan), MAKA nyalakan LED”

41
Latihan 13. Kontrol LED menggunakan push button (logika or)

Masih dengan rangkaian yang sama, pada latihan ini coba upload program
berikut

/*
Kontrol LED dengan push button
*/

//mendefinisikan pin 3 bernama LED


#define LED 3
//mendefiniasikan pin 4 bernama pb1
#define pb1 4
//mendefiniasikan pin 5 bernama pb2
#define pb2 5
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb1, INPUT_PULLUP);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb2, INPUT_PULLUP);
// matikan LED
digitalWrite(LED, LOW);
}

void loop() {
//jika pin pb1 atau pb2 LOW (semua push button ditekan)
if (digitalRead(pb1 == LOW) || digitalRead(pb2 == LOW))
{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
// jika kondisi if tidak terpenuhi
else
{ // maka
digitalWrite(LED,LOW); //matikan LED
}
}

Tekan salah satu push button dan lihat nyala LED, pada program diatas
terdapat logika or (atau) pada if condition dengan logika “JIKA push button
1 LOW (ditekan) atau push button 2 LOW (ditekan), MAKA nyalakan LED”

Latihan 14. Mengatur LED terang nyala LED

Bahan
1. Arduino Uno
2. Breadboard

42
3. Kabel Jumper
4. LED
5. Resistor 330Ω

Langkah
1. Buatlah rangkaian seperti gambar berikut ini

Hubungkan pin digital 3 arduino ke resistor yang terhubung ke pin positif


LED, hubungkan pin GND arduino ke pin negatif LED
2. Upload program berikut ini dan lihat seberapa terang nyala LED

/*
Program Nyala LED dengan PWM
*/

#define LED 3

void setup() {
// mendefinikasi pin 2 sebagai output
pinMode(LED, OUTPUT);
}

void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 255);
}

3. Upload program berikut ini dan lihat seberapa terang nyala LED

43
/*
Program Nyala LED dengan PWM
*/

void setup() {
// mendefinikasi pin 2 sebagai output
pinMode(3, OUTPUT);
}

void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 160);
}

4. Upload program berikut ini dan lihat seberapa terang nyala LED

/*
Program Nyala LED dengan PWM
*/

#define LED 3

void setup() {
// mendefinikasi pin 2 sebagai output
pinMode(LED, OUTPUT);
}

void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 80);
}

5. Upload program berikut ini dan lihat seberapa terang nyala LED

/*
Program Nyala LED dengan PWM
*/

#define LED 3

void setup() {

44
// mendefinikasi pin 2 sebagai output
pinMode(LED, OUTPUT);
}

void loop() {
// memberikan sinyal PWM pin 3
analogWrite(LED, 0);
}

Penjelasan
Pada latihan ini kita coba belajar mengendalikan nyala terang sebuh LED
menggunakan perintah analogWrite();, pada percobaan sebelumnya sudah
kita pelajari tentang perintah digitalWrite();, yang berarti mengendalikan pin
pada arduino secara digital. Pada perintah digital hanya terdapat 2 kondisi,
kalau tidak HIGH (1) yaitu LOW (0). HIGH atau 1 berarti pin mengerluarkan
tegangan 5 volt dan LOW atau 0 berarti pin arduino mengeluarkan tegangan
0 volt.

Pada perintah analogWrite() kita tidak hanya memiliki 2 kondisi LOW dan
HIGH, namun kita bisa mengatur keluaran tegangan pada pin arduino
seolah-olah bervariasi dari 0 – 5volt, mengapa seolah – olah? Karena
sebenarnya tegangan yang dikeluarkan oleh pin arduino adalah 5 volt.

kenapa LED bisa nyala terang / redup? Karena ada pengaturan frekuensi
pada tegangan tersebut, untuk mempermudah pemahaman silahkan cermati
analogi berikut

1. ketika ada 100 sinyal dalam 1 detik, dan 100 sinyal tersebut berupa
perintah digitalWrite(x,HIGH), apa yang akan terjadi dengan nyala
lampu? Tentu nyala lampu akan terang (5Volt)
2. ketika ada 100 sinyal dalam 1 detik, dan 100 sinyal tersebut terbagi
menjadi perintah digitalWrite(x,HIGH) dan digitalWrite(x,LOW), apa
yang terjadi dengan nyala lampu? Tentu nyala lampu menjadi redup,
seolah olah mendapatkan tengan 2.5volt
3. ketika ada 100 sinyal dalam 1 detik, dan 100 sinyal tersebut terbagi
menjadi perintah digitalWrite(x,HIGH), digitalWrite(x,LOW), dan
digitalWrite(x,LOW), apa yang terjadi dengan nyala lampu? Tentu nyala
lampu menjadi redup dari pada analogi nomor 2, seolah olah
mendapatkan tengan 1.6volt

Itulah yang disebut PWM (pulse with modulation), pada analogi nomor 1
nilai logika HIGH / 1 pada PWM adalah 100% dari jumlah total sinyal PWM,
artinya tegangan seolah – olah 5volt x 100% = 5volt

45
pada analogi nomor 2 nilai logika HIGH / 1 pada PWM adalah 1/2 dari
jumlah total sinyal PWM, artinya tegangan seolah – olah 5volt x 1/2 =
2.5volt

pada analogi nomor 3 nilai logika HIGH / 1 pada PWM adalah 1/3 dari
jumlah total sinyal PWM, artinya tegangan seolah – olah 5volt x 1/3 =
1.6volt

Jika pada analogi diatas arduino dapat memberi sinyal 100x setap satu
detik, namun sesungguhnya arduino dapat memberikan sinyal sebanyak
980x (Arduino Uno pin 5 & 6) atau untuk lebih jelasnya dapat dilihat pada
tabel berikut

NAMA BOARD PWM PINS PWM FREQUENCY


490 Hz (pin 5 dan 6: 980
Uno, Nano, Mini 3, 5, 6, 9, 10, 11
Hz)
490 Hz (pin 4 dan 13: 980
Mega 2 - 13, 44 - 46
Hz)
Leonardo, Micro, 490 Hz (pin 3 dan 11: 980
3, 5, 6, 9, 10, 11, 13
Yún Hz)
Uno WiFi Rev.2 3, 5, 6, 9, 10 976 Hz
0 - 8, 10, A3 (18), A4
MKR boards * 732 Hz
(19)
0 - 8, 10, 11, A3 (18),
MKR1000 WiFi * 732 Hz
A4 (19)
3 - 13, A0 (14), A1
Zero * 732 Hz
(15)
Due ** 2-13 1000 Hz
pin 3 dan 9: 490 Hz, pin 5
101 3, 5, 6, 9
dan 6: 980 Hz

Pada papan arduino kita dapat menggunakan perintah PWM pada pin yang
mempunyai simbol (~), contoh pada arduino uno adalah pin 3, 5, 6, 9, 10,
11, untuk penulisan programnya sendiri adalah

analogWrite(pin,nilai)

Contoh:

analogWrite(5,255) ;

nilai 255 berarti PWM 100% dan 0 berarti pwm 0%

46
Latihan 15. animasi LED dengan PWM (for loop)

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω

Langkah

1. Buatlah rangkaian seperti gambar berikut ini

47
Hubungkan pin digital 3 arduino ke resistor yang terhubung ke pin positif
LED, hubungkan pin GND arduino ke pin negatif LED

2. Upload program berikut ini dan lihat nyala LED

/*
Program Animasi LED dengan PWM
*/

#define LED 3

void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT);
}

void loop() {
for ( byte value = 0; value < 255; value++)
{
analogWrite(LED,value);
delay(10);
}

for ( byte value = 255; value > 0; value--)


{
analogWrite(LED,value);
delay(10);
}
}

Penjelasan
Pada latihan ini kita akan mendapati bahwa led pada pin 3 menyala dari
redup ke terang dan kembali lagi ke redup. Pada program diatas ada
beberapa pelajaran yang dapat kita ambil, yaitu :

1. Kita belajar tentang perintah for loop ( perulangan for), pada perulanga
for loop, semua program di dalam kurung kurawal for loop akan terus
dieksekusi selama prasyaratnya masih terpenuhi, baru setelah
prasyaratnya tidak terpenuhi akan dilanjutkan ke baris perintah
slnjutnya

Untuk aturan dalam penulisan for loop adalah sebagai berikut

for (initialization; condition; increment) {


// statement(s);
}

Inilatization : berisi variable yang digunakan untuk kondisi

48
Condition : kondisi / prasyarat berjalannya for loop
Increament : berisi logika penambahan (++) atau pengurangan (--)

2. Kita belajar tentang penggunaan variable. Cermati pada baris for ( byte
value = 0; value < 255; value++), ada bagian byte value = 0, apa itu
byte value? Byte merupakan tipe data sedangkan value adalah nama
dari tipe data tersebut, ada beberapa tipe data pada bahasa
pemrograman arduino seperti yang dijelaskan berikut

Bool / boolean
bool berfungsi menampung 2 nilai yaitu 0 dan 1 / true / dan false. Tipe
data bool / boolean akan menggunakan 1byte memori pada arduino
Contoh:
boolean val = false; // deklarasi variabel dengan tipe boolean dengan
nilai false / 0
boolean val = true; // deklarasi variabel dengan tipe boolean dengan
nilai true / 1

Char
Char berfungsi untuk menyimpan karakter huruf seperti ‘a’,’b’,’c’,’d’ dan
seterusnya. Tipe data ini menggunakan satu byte memori pada arduino.
Meskipun berfungsi untuk menampung karakter huruf, tipe data char
dapat digunakan dengan operator matematika karena setiap karakter
huruf mempunyai nomor urut tersendiri

Contoh :
karakter huruf “A” mempunyai nomor urut 65, dan karakter “a”
mempunyai nomor urut 97, untuk lebih jelasnya dapat dilihat pada tabel
ASCII char berikut ini

DEC Symbol DEC Symbol DEC Symbol DEC Symbol


32 Spasi 56 8 80 P 104 h
33 ! 57 9 81 Q 105 i
34 " 58 : 82 R 106 j
35 # 59 ; 83 S 107 k
36 $ 60 < 84 T 108 l
37 % 61 = 85 U 109 m
38 & 62 > 86 V 110 n
39 ' 63 ? 87 W 111 o
40 ( 64 @ 88 X 112 p
41 ) 65 A 89 Y 113 q

49
DEC Symbol DEC Symbol DEC Symbol DEC Symbol
42 * 66 B 90 Z 114 r
43 + 67 C 91 [ 115 s
44 , 68 D 92 \ 116 t
45 - 69 E 93 ] 117 u
46 . 70 F 94 ^ 118 v
47 / 71 G 95 _ 119 w
48 0 72 H 96 ` 120 x
49 1 73 I 97 a 121 y
50 2 74 J 98 b 122 z
51 3 75 K 99 c 123 {
52 4 76 L 100 d 124 |
53 5 77 M 101 e 125 }
54 6 78 N 102 f 126 ~
55 7 79 O 103 g 127 Delete

Unsigned char
Hampir sama dengan data char, hanya saja unsigned char berisi nomor
urut dari karakter yang ditulis
Contoh:
Unsigned char = ‘a’ maka nilai yang tersimpan adalah angka 97

byte
Char berfungsi untuk menyimpan angka dari 0 – 255 (8-bit)
Contoh
byte m = 25 (deklarasi variabel bernama m dengan tipe data byte yang
bernilai 25)

int
int / Integer berfungsi untuk menyimpan angka dari -32.768 sampai
32.767, tipe data ini memerlukan memori penyimpanan 2 byte, Namun
untuk jenis board arduino due, tipe data int dapat menyimpan data
sebesar 4byte ( -2.147.483.648 hingga 2.147.483).
Contoh:
int counter = 32 (deklarasi variabel bernama counter dengan tipe int
bernilai 32)

unsigned int
untuk tipe data unsigned int hampir sama dengan int, hanya saja untuk
nilai negatif tidak ada dan diganti dengan nilai positif semua sehingga
rentang nilai yang dapat disimpan adalah 0 - 4.294.967.295

50
Contoh:
Unsigned int x = 1000 (deklarasi variabel bernama x dengan tipe
unsigned int bernilai 1000)

Long
long berfungsi untuk menyimpan angka dari -2.147.483.648 sampai
2.147.483.647, tipe data ini memerlukan memori penyimpanan 4 byte
Contoh:
Long velocity = 102346 (deklarasi variabel bernama velocity dengan tipe
long bernilai 102346)

Unsigned long
Tipe data unsigned long hampir sama dengan long, hanya saja nilai yang
dapat disimpan adalah dari 0 sampai 4.294.967.295
Contoh:
Unsigned Long velocity = 101006 (deklarasi variabel bernama velocity
dengan tipe long int bernilai 101006)

float
long berfungsi untuk menyimpan angka pecahan desimal dari -
3.4028235 x 10 38 - 3.4028235 x 10 38, tipe data ini memerlukan memori
penyimpanan 4 byte
Contoh:
float num 100.67 = (deklarasi variabel bernama num dengan tipe float
bernilai 100.67)

String
String berfungsi untuk menyimpan data berupa text / kumpulan char
Contoh:
String text = “ini text saya” (deklarasi variabel bernama text dengan
tipe string dengan isi text “ini text saya”)

51
Latihan 16. animasi led (while loop)

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED
5. Resistor 330Ω

Langkah

1. Buatlah rangkaian seperti gambar berikut ini

Hubungkan pin digital 3 arduino ke resistor yang terhubung ke pin positif


LED, hubungkan pin GND arduino ke pin negatif LED

2. Upload program berikut ini

/*
Program Animasi LED dengan while
*/

#define LED 3
void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT);
Serial.begin(9600);
}

int x = 0;

void loop() {
x++; // naikan nilai x Serial.println(x);
digitalWrite(LED,HIGH) ;//nyalakan LED

52
delay(200); // jeda 100 milisecods
digitalWrite(LED,LOW); //matikan LED
delay(200); // jeda 100 milisecods

while(x > 10) // jika x = 10, ulang terus menerus


{
digitalWrite(LED,HIGH) ;//nyalakan LED
Serial.print("masuk while loop, x = ");
Serial.println(x);
delay(200);
}
}

3. Buka serial monitor serta lihat nyala LED

Penjelasan
Pada latihan kali ini led akan berkedip selama 200 miliseconds sebanyak 10
kali lalu akan menyala terus menerus (berhenti berkedip), pada latihan kali
ini ada beberapa pelajaran yang dapat kita ambil yaitu:

1. Penggunaan operator ++ untuk menaikan nilai suatu variable, pada


latihan kali ini adalah variable x yang kita naikan nilainya
2. Penggunaan while loop, perulangan while / while loop hampir mirip
dengan perukangan for namun lebih sederhana, berikut aturan dalam
penulisan perulangan while

while(condition) {
// statement;
}

Hampir sama dengan for loop, pada perulangan while loop, jika prasyarat
while loop terpenuhi maka semua baris kode tidak akan dijalankan kecuali
yang berada di dalam while loop, atau dalam kata lain looping /
pengulangan hanya akan berjalan pda baris kode di dalam while loop, baru
setelah prasyaratnya tidak terpenuhi maka baris kode diluar while loop akan
di jalankan

Latihan 17. Membaca tegangan pada pin analog

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Variable Resistor

53
Langkah
1. Buatlah rangkaian seperti gambar berikut ini

2. Upload program berikut ini

/*
Membaca tegangan pada pin analog
*/

#define pin A0 void


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

void loop() {
int nilai = analogRead(pin);
float tegangan = nilai * (5.0 / 1023.0);

Serial.print("nilai = ");
Serial.print(nilai);
Serial.print("voltase = ");
Serial.println(tegangan);
delay(1000);
}

3. Buka serial monitor


4. Putar trimpot dan lihat perubahan pada serial monitor
5. Jika rangkaian dan prorgam benar maka serial monitor akan
menampilkan angka – angka hasil pembacaan dari variable resistor

54
Penjelasan
Pada latihan ini kita akan mendapati nilai sensor akan berubah ubah ketika
trimpot diputar, Pada program diatas ada beberapa pelajaran yang dapat
kita ambil, yaitu :

1. Hasil dari pembacaan analogRead adalah 0 – 1023 ( 0 berarti 0volt dan


1023 berarti 5volt)
2. Contoh operasi matematika yang kita pakai dalam mengkonvesi nilai
pembacaan analog ke dalam voltase

Latihan 18. Kontrol Led input tegangan 1

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. 5 LED
5. 5 Resistor 330Ω
6. Variable Resistor

Langkah
1. Buatlah rangkaian seperti gambar berikut

Hubungkan pin 10 arduino ke risistor yang terhubung ke pin positif LED,


hubungkan pin negatif led dan pin terluar variable resistor ke Gnd
arduino, hubungkan pin terluar variabel resistor pada sisi yang lain ke
pin 5V Arduino dan pin tengah variabel resistor ke pin A0 Arduino
2. Upload program berikut

55
/*
Kontrol led input tegangan
*/

#define pin A0
#define LED 10

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

void loop() {
int nilai = analogRead(pin);
float tegangan = nilai * (5.0 / 1023.0);

Serial.print("nilai = ");
Serial.print(nilai);
Serial.print("volatse = ");
Serial.println(tegangan);
delay(200);

if (tegangan < 4 ) //jika tegangan kurang dari 4 volt


{ //makai
digitalWrite(LED,LOW); //matikan LED
}
else //jika prasyarat if tidak terpenuhi (lebih besar dari 4 volt)
{ //maka
digitalWrite(LED,HIGH); // hidupkan LED
}
}

3. Buka serial monitor


4. Putar variable resistor dan perhatikan nyala LED

Penjelasan
Pada latihan kali ini kita belajar menggunakan data tegangan yang terbaca
untuk mengatur nyala (digital) dari Led yang ada. Dalam mengatur nyala
dari led kita menggunakan logika IF dan salah satu operator yaitu kurang
dari.

Latihan 19. Kontrol Led input tegangan 2

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. 5 LED
5. 5 Resistor 330Ω
6. Variable Resistor

56
Langkah
1. Buatlah rangkaian seperti gambar berikut

Hubungkan pin positif LED masing masing ke pin digital 8, 9, 10, 11 dan
12 arduino, dan masing masing pin negatif led ke resistor yang
terhubung ke GND breadboard, hubungkan GND arduino ke GND
breadboard. Hubungkan pin terluar veriable resistor ke pin 5v arduino,
pin tengah variable resistor ke A0 dan pin terluar variable resistor pada
sisi yang lain ke Gnd breadboard

2. Upload program berikut

/*
Kontrol led input tegangan
*/

#define pin A0
#define LED1 8
#define LED2 9
#define LED3 10
#define LED4 11
#define LED5 12

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

void loop() {
int nilai = analogRead(pin);
float tegangan = nilai * (5.0 / 1023.0);
Serial.print("nilai = ");
Serial.print(nilai);
Serial.print("volatse = ");
Serial.println(tegangan);
delay(200);

if (tegangan > 0 && tegangan < 1)


{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
}
else if (tegangan > 1 && tegangan < 2)
{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,LOW);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
}
else if (tegangan > 2 && tegangan < 3)
{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,LOW);
digitalWrite(LED5,LOW);
}
else if (tegangan > 3 && tegangan < 4)
{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,LOW);
}
else if (tegangan > 4 && tegangan < 5)
{
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
digitalWrite(LED4,HIGH);
digitalWrite(LED5,HIGH);
}
}

3. Buka serial monitor


4. Putar variable resistor dan perhatikan nyala LED

58
Penjelasan
Pada latihan kali ini kita belajar menggunakan data tegangan yang terbaca
untuk mengatur nyala (digital) dari 5 Led yang ada. Dalam mengatur nyala
dari 5 led kita menggunakan logika IF dan beberapa operator seperti kurang
dari dan lebih dari.

Latihan 20. Mengatur nyala LED

Bahan
1. Arduino Uno
2. LED
3. Variabel resistor
4. Resistor 330Ω
5. Kabel jumper
6. Breadboard

Langkah

1. Buatlah rangkaian seperti gambar berikut

2. Upload program berikut

/*
Program mengatur nyala led
*/

#define pin A0
#define LED 10 void
setup() {
pinMode(LED,OUTPUT);
}

int value = 0;

59
byte pwm = 0;

void loop() {
value = analogRead(pin);
pwm = map(value,0,1023,0,255);
analogWrite(LED,pwm);
}

3. Putar trimpot dan lihat nyala LED

Penjelasan
Pada bagian ini kita coba mengatur nyala (terang gelap) sebuah LED dengan
menggabungkan perintah analogRead() dan analogWrite(), pada latihan kali
ini ada pelajaran yang dapat diambil yaitu:

Penggunaan perintah map pada baris

pwm = map(nilai,0,1023,0,255);

Perintah map digunakan untuk mengkonversi suatu rentang nilai ke rentang


nilai yang lain, pada contoh diatas kita merubah rentang nilai dari 0 – 1023
menjadi retang nilai 0 – 255

Latihan 21. Kontrol LED lewat serial monitor (serial.read())

Bahan
1. Arduino Uno
2. LED
3. Resistor 330Ω
4. Kabel jumper
5. Breadboard

Langkah

1. Buatlah rangkaian seperti gambar berikut ini

60
Hubungkan pin digital 3 arduino ke resistor yang terhubung ke pin positif
LED, hubungkan pin GND arduino ke pin negatif LED

2. Upload program berikut ini

/*
Kontrol LED dengan serial monitor
*/

#define LED 3 // definisikan pin 3 bernama LED


void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT); //atur pin LED sebagai OUTPUT
Serial.begin(9600); // atur baudrate / kecepatan komunikasi
}

char x;

void loop() {
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.read(); // isi variable char x dengan karakter dari serial monitor
}
if ( x == 'a') // jika x = a
{ // maka
digitalWrite(LED, HIGH ); // nyalakan LED
}
else if ( x == 'b') // jika x = b
{ // maka
digitalWrite(LED, LOW); // matikan LED
}
}

3. Buka serial monitor, ketik karakter “a” lalu send, ketik karakter “b” lalu
send, amati nyala LED

61
Penjelasan
Jika pada beberapa latihan sebelumnya kita telah sering mencoba mengirim
data dari arduino ke kemputer (serial monitor) dengan perintah serial.print()
maupun serial.println(), maka pada latihan kali ini kita coba melakukan
komunikasi dari komputer ke arduino dengan perintah serial.read()

Selain menggunakan logika IF – ELSE, kita juga bisa menggunakan logika


Switch Case. Seperti halnya IF-ELSE, Switch Case JUGA bekerja dengan
membandingkan nilai pada variable tertentu sebagai prasyarat
dijalankannya sebuah program. Aturan penulisan logika pada Switch Case
adalah sebagai berikut

switch (variable) {
case nilai prayarat 1:
// dijalankan ketika nilai variable sama dengan nilai prayarat 1
break;
case nilai prayarat 2:
// dijalankan ketika nilai variable sama dengan nilai prayarat 2
break;
default:
// dijalankan pada kondisi awal (default)
break;
}

Baris program break; digunakan untuk keluar dari logika switch case, untuk
lebih jelasnya bisa dicoba program berikut dengan rangkain yang sama pada
latihan sebelunya

62
/*
Kontrol LED dengan serial monitor (switch case)
*/

#define LED 3 // definisikan pin 3 bernama LED


void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT); //atur pin LED sebagai OUTPUT
Serial.begin(9600); // atur baudrate / kecepatan komunikasi
}

char x;

void loop() {
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.read(); // isi variable char x dengan karakter dari serial monitor
}

switch (x) {
case 'a':
digitalWrite(LED, HIGH ); // nyalakan LED
break;
case 'b':
digitalWrite(LED, LOW ); // nyalakan LED
break;
default:
// tidak lakukan apa - apa
break;
}
}

Latihan 22. Kontrol LED lewat serial monitor (serial.readString())

Jika serial.read() pada latihan sebelumnya menghasilkan data berupa


karakter char maka ada perintah serial.readString() yang akan
menghasilkan data berupa string, untuk lebih jelasnya bisa dicoba latihan
berikut

Bahan
1. Arduino Uno
2. LED
3. Resistor 330Ω
4. Kabel jumper
5. Breadboard

63
Langkah

1. Masih dengan rangkaian seperti latihan sebelumnya. Upload program


berikut ini

/*
Kontrol LED dengan serial monitor
*/

#define LED 13 // definisikan pin 3 bernama LED


void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT); //atur pin LED sebagai OUTPUT
Serial.begin(9600); // atur baudrate / kecepatan komunikasi
}

String x; // byuat variabel string dengan nama x

void loop() {
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.readString(); // isi variable string x dengan data string serial
monitor
Serial.println(x);
}
if ( x == "on") // jika x = on
{ // maka
digitalWrite(LED, HIGH ); // nyalakan LED
}
else if ( x == "off") // jika x = off
{ // maka
digitalWrite(LED, LOW); // matikan LED
}
}

2. Buka serial monitor, ganti newline dengan no line ending


3. ketik "on" lalu send, ketik "off" lalu send, amati nyala LED

64
Penjelasan
Pada latihan ini kita coba membaca data berupa string dari serial monitor
untuk mengendalikan nyala LED, selain dapat membaca tipe data char dan
string, ada fungsi lain yang dapat kita gunakan dalam komunikasi serial,
antara lain adalah membaca data integer ( data numerik) dari serial
monitor, untuk lebih jelasnya dapat dicoba latihan berikutnya.

Pada latihan kali ini kita juga mengganti pengaturan newline pada latihan
sebelumnya dengan no line ending, apa maksutnya? Pada newline ending
saat kita mengirim data maka data tersebut akan ditambahkan karakter
“newline” atau biasa kita sebut dengan enter (karakter char nomor 10).
Sedangkan saat kita menggunakan no line ending, maka karakter yang
akan dikirim adalah karakter murni yang kita tulis di serial monitor. Adapaun
cariage return adalah menambahkan karakter cariage return ( karakter
char nomor 13) di akhir data dan both NL dan CL adalah menambahkan
karakter cariage return (char no 13) dan karakter newline ( char nomor 10)
di akhir data.

Latihan 23. Kontrol LED lewat serial monitor (serial.parseInt())

Bahan
1. Arduino Uno
2. LED
3. Resistor 330Ω
4. Kabel jumper
5. Breadboard

Langkah

1. Masih dengan rangkaian seperti latihan sebelumnya. Upload program


berikut ini

/*
Kontrol LED dengan serial monitor
*/

#define LED 3 // definisikan pin 3 bernama LED


void setup() {
// mendefinikasi pin LED sebagai output
pinMode(LED, OUTPUT); //atur pin LED sebagai OUTPUT
Serial.begin(9600); // atur baudrate / kecepatan komunikasi
}

int x;

void loop() {

65
if (Serial.available()) // jika ada komunikasi serial masuk
{ // maka
x = Serial.parseInt(); // isi variable x dengan data integer dari serial
monitor
Serial.println(x); // tampilkan data yang masuk
}

digitalWrite(LED, x ); // kontrol LED bedasarkan nilai x

2. Buka serial monitor, ganti newline dengan no line ending


3. ketik "1" lalu send, ketik "0" lalu send, amati nyala LED

Penjelasan
Pada latihan ini kita coba membaca data berupa data numerik integer dari
serial monitor untuk mengendalikan nyala LED.

Komunikasi serial baik itu serial.read(), serial.readString, serial.parseInt()


atau yang lainnya akan sangat kita butuhkan untuk melakukan komunikasi
dari arduino dengan perangkat lain seperti komputer atau modul elektronika
lainnya (modul bluetooth, modul GSM, dll)

66
Latihan 24. Kontrol Led menggunakan Push Button 2

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. LED
6. Resistor 330Ω

Langkah
1. Buatlah rangkaian seperti gambar dibawah ini

Hubungkan pin digital 3 dengan pin resitor yang terhubung dengan pin
positif LED, hubungkan pin digital 4 dengan salah satu pin push button
dan hubungkan pin push button yang lain dengan ground pin arduino
2. Upload Program berikut ini

/*
Kontrol LED dengan push button 2
*/
//mendefinisikan pin 3 bernama LED
#define LED 3
//mendefinisikan pin 4 bernama pb
#define pb 4
void setup() {
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
// matikan LED
Serial.begin(9600);
}

67
bool statusPB;
bool x;
unsigned int counter;

void loop() {

statusPB = digitalRead(pb);

if( statusPB == 0 && x == 0)


{
x = 1;
counter++;
Serial.print("PB ditekan :");
Serial.print(counter);
Serial.println("x");

if ( counter % 2 == 0)
{
digitalWrite(LED,HIGH);
}
else
{
digitalWrite(LED,LOW);
}
delay(300);
}
else if ( statusPB == 1)
{
x = 0;
}
}

3. Buka Serial Monitor


4. Tekan push button dan amati nyala LED

Penjelasan
Jika pada latihan terdahulu LED menyala ketika PB ditekan dan LED mati
ketika PB dilepas, maka pada latihan ini kita coba menambahkan logika baru
agar LED tidak mati ketika PB dilepas, dan LED akan mati jika di tekan lagi
Amati pada baris

if( statusPB == 0 && x == 0)

Pada baris tersebut prasyaratnya dalah jika PB == 0 (ditekan) dan nilai x


== 0, padahal di dalam logika tersebut terdapat pengubahan nilai x (x = 1),
maka logika if(statusPB == 0 && x == 0) tidak akan terpenuhi meskipun
push button ditekan terus menerus, kapan logika tersebut terpenuhi? Logika
tersebut akan terpenuhi kembali saat nilai x = 0, logika yang mengubah x
68
menjadi 0 kembali adalah logika else if ( statusPB == 1) saat push button
dilepas

Saat logika if(statusPB == 0 && x == 0) terpenuhi maka nilai dari valiable


counter akan naik (counter++) dan dibawahnya terdapat perintah
menghidupkan lampu (digitalWrite(LED,HIGH)) dengan syarat nilai counter
habis dibagai 2 (counter % 2 == 0)

Pada program diatas juga terdapat delay (delay(300)), delay tersebut


berfungsi sebagai anti debouncing. Debouncing adalah keadaan dimana
ketika saklar ditekan menghasilkan beberapa kali penekanan akibat kondisi
mekanik saklar yang kurang baik

Latihan 25. Menyimpan data ke dalam memori (EEPROM)

Pada percobaan sebelumnya, ketika kita menekan Push button beberapa kali
maka LED akan menyala, namun setelah LED menyala dan kita mematikan
Arduino (melepas kabel power / USB) kemudian menghidupkannya lagi
maka LED akan dalam keadaan mati. Pada latihan kali ini kita akan coba
menambahkan perintah untuk menyimpan data psuh button ke dalam
memori, untuk lebih jelasnya dapat dicoba pada latihan berikut

Bahan
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. Push Button
5. LED
6. Resistor 330Ω

Langkah
1. Ubahlah program pada latihan diatas dengan program berikut (masih
dengan rangkaian yang sama)

/*
Menyimpan data ke dalam memori EEPROM
*/

#include <EEPROM.h> // memasukan library EEPROM

//mendefinisikan pin 3 bernama LED


#define LED 3
//mendefinisikan pin 4 bernama pb
#define pb 4
void setup() {

69
// set pin LED sebagai pin Output
pinMode(LED,OUTPUT);
// set pin pb sebagai input dengan Pull Up resistor
pinMode(pb, INPUT_PULLUP);
// matikan LED
Serial.begin(9600);
}

bool statusPB;
bool x;
unsigned int counter;

void loop() {

statusPB = digitalRead(pb);

if( statusPB == 0 && x == 0)


{
x = 1;
counter++;
Serial.print("PB ditekan :");
Serial.print(counter);
Serial.println("x");

if ( counter % 2 == 0)
{
EEPROM.write(0,1);
}
else
{
EEPROM.write(0,0);
}
delay(300);
}
else if ( statusPB == 1)
{
x = 0;
}

if (EEPROM.read(0) == 1) // Jika nilai pada EEPROM alamat 0 = 1


{ // maka
digitalWrite(LED,HIGH); // nyalakan LED
}
else // Jika nilai pada EEPROM alamat 0 tidak = 1
{ //maka
digitalWrite(LED,LOW); // matikan LED
}
}

2. Tekan push button sampai LED menyala lalu putuskan arduino dari
sumber tegangan
3. Sambungkan lagi arduino ke sumber tegangan, maka LED akan tetap
menyala (data push button tersimpan ke dalam memori)

70
Penjelasan
Pada latihan kali ini ada beberapa hal baru yang perlu dipelajari antara lain:
1. Penggunaan Library
Pada latihan kali ini kita menggunakan library EEPROM. Apa itu library?
Library merupakan kumpulan kode yang sudah dirangkai menjadi satu
untuk memudahkan pengguna dalam menggunakannya.Sebagai contoh
pada latihan diatas kita coba menulis data ke memory Arduino dengan
perintah EEPROM.write(), perintah yang sangat sederhana, namun
dibalik perintah tersebut (program di dalam library) sangat komplek
yang tidak memungkinkan jika ditulis sendiri dalam program kita (tidak
effisien), oleh karena itu di simpan pada file lain yang disebut dengan
library. Library di arduino ada 2 macam yaitu library bawaan software
Arduino IDE dan library dari luar yang harus kita install sendiri jika
diperlukan (dipelajari pada latihan selanjutnya). Untuk melihat dan
memasukan library bawaan software arduino IDE dapat dibuka di menu
sketch > include library

2. Penggunaan Library EEPROM


EEPROM (Electrically Erasable Programmable Read-Only Memory) adalah
sebutan untuk memory yang akan tetap terimpan saat aliran listrik
putus.
Adapun beberapa perintah / baris program dasar berkaitan dengan
penggunaan library EEPROM pada arduino antara lain
a. EEPROM.write(alamat,nilai)
EEPROM.write(alamat,nilai) berfungai untuk menulis data ke alamat
tertentu. Alamat dari memori EEPROM tergantung dari besarnya

71
memori, contoh untuk arduino uno / nano dengan chip
microcontroller atmega328 besarnya memori adalah 1024 bytes
sehingga untuk menyimpan data dapat menggunakan alamat 0
sampai 1024 sedangkan Arduino Mega adalah 4096 bytes. Data
yang dapat disimpan ke dalam EEPROM adalah data numerik
berkisar antara 0 - 255
b. EEPROM.read(alamat)
EEPROM.read(alamat) berfungsi untuk membaca nilai yang
tersimpan pada alamat tertentu
c. EEPROM.update(alamat, nilai)
Hampir sama dengan EEPROM.write(), fungsi EEPROM.update juga
berfungsi menulis data ke alamat tertentu, namun pada
EEPROM.update() sebelum dilakukan penulisan maka data yang
sudah ada di alamat tujuan akan dilihat terlebih dahulu, jika data di
alamat sama dengan data yang akan ditulis maka tidak dilakukan
penulisan. Penggunaan EEPROM.update() dibanding EEPROM.write()
akan membuat umur dari microcontroller arduino lebih panjang,
karena jika data pada EEPROM diganti secara terus menerus
(maksimal 100.000x) maka memori EEPROM akan rusak, namun
EEPROM.update memerlukan waktu yang lebih lama dibandingkan
dengan EEPROM.write() karena harus melakukan pemeriksaan
sebelum menulis data
d. EEPROM.clear()
EEPROM.clar() berfungsi untuk menghapus data pada semua alamat
EEPROM
e. EEPROM.put(alamat, data float)
EEPROM.put(alamat, data float) berfungsi untuk menulis data float
ke alamat tertentu
f. EEPROM.get(alamat, variabel float)
EEPROM.get(alamat, variabel) berfungsi untuk membaca data float
yang tersimpan pada alamat tertentu kemudian menyimpannya ke
dalam variable (float) tertentu

Latihan 26. Timer (millis)

Bahan
Arduino Uno

Langkah
1. Upload program berikut ke arduino

/*
Timer (millis)

72
*/

unsigned long waktu;

void setup() {
Serial.begin(9600);
}
void loop() {
waktu = millis();
Serial.print("Arduino telah hidup selama: ");
Serial.print(waktu);
Serial.println(" milisecods");
delay(1000);
}

2. Buka Serial monitor

Penjelasan
Pada latihan kali ini kita coba menggunakan perintah millis(), millis()
berisi data waktu terhitung saat arduino terhubung ke sumber arus
dalam satuan miliseconds (1/1000 detik), data pada millis akan kembali
ke 0 saat arduino tidak mendapatkan sumber arus atau jika arduino
hidup secara terus menerus selama 50 hari

Latihan 27. Timer (micros)

Bahan
1. Arduino Uno

Langkah
1. Upload program berikut ke arduino

/*
Timer (micros)
*/

unsigned long waktu;

void setup() {
Serial.begin(9600);
}
void loop() {
waktu = micros();
Serial.print("Arduino telah hidup selama: ");
Serial.print(waktu);
Serial.println(" microseconds");
delay(1000);
}

73
2. Buka Serial monitor

Penjelasan
Pada latihan kali ini kita coba menggunakan perintah micros(), micros()
berisi data waktu terhitung saat arduino terhubung ke sumber arus
dalam satuan microsecods (1 / 1juta detik), data pada millis akan
kembali ke 0 saat arduino tidak mendapatkan sumber arus atau jika
arduino hidup secara terus menerus selama 70 menit

74
Daftar Pustaka

Santoso, Heri. 2015, Panduan Praktis Arduino Untuk Pemula.

Ali, Muhammad dkk. 2013. Modul Proteus Profesional untuk Simulasi


Rangkaian Digital Dan Mikrokontroler. Yogyakarta : Fakultas Teknik UNY

https://www.arduino.cc/en/Guide/Introduction

https://sites.google.com/site/informasiterbarusekali/pengertian-
mikrokontroller

75
76

Anda mungkin juga menyukai