ELEKTRONIKA DIGITAL
“MIKROKONTROLER”
OLEH :
ALWI RIZAL
32119054
KELAS 1C
1
KATA PENGANTAR
Alwi Rizal
ii
DAFTAR ISI
HALAMAN SAMPUL..................................................................................... i
KATA PENGANTAR...................................................................................... ii
DAFTAR GAMBAR........................................................................................ iv
DAFTAR TABEL............................................................................................. vi
BAB 1 PENDAHULUAN................................................................................. 1
BAB II PEMBAHASAN................................................................................... 3
3.1 Kesimpulan..................................................................................... 54
DAFTAR PUSTAKA....................................................................................... 55
iii
DAFTAR GAMBAR
iv
Gambar 2.21 Hasil Rangkaian menyalakan LED menggunakan Arduino UNO.. 43
v
DAFTAR TABEL
vi
BAB I
PENDAHULUAN
1
1. Sistem elektronik akan menjadi lebih ringkas.
2. Tingkat keamanan dan akurasi yang lebih baik.
3. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar
dari sistem adalah perangkat lunak yang mudah dimodifikasi.
4. Kemudahan dalam penggunaannya untuk sistem yang berbasis
mikrokontroler.
5. Pencarian gangguan lebih mudah ditelusuri karena sistemnya yang kompak.
Namun demikian, tidak sepenuhnya mikrokontroler dapat mereduksi
komponen ICTTL dan CMOS karena seringkali masih diperlukan untuk aplikasi
kecepatan tinggi atau menambah jumlah saluran masukan dan keluaran (I/O).
Beberapa periperal yang langsung dapat dimanfaatkan, misalnya port paralel, port
serial, komparator, konversi digital ke analog (DAC), konversi analog ke digital
dan sebagainya hanya menggunakan sistem minimum yang tidak rumit atau
kompleks.
1.2 Rumusan Masalah
a. Bagaimana Sejarah mikrokontroler?
b. Apa yang maksud dengan Mikrokontroler?
c. Apa jenis-jenis dan macam-macam mikrokontroler?
d. Apa itu mikrokontroler Arduino Uno?
e. Apa saja Pengaplikasian dari Arduino Uno?
1.3 Tujuan Penulisan
Penulisan makalah ini untuk melengkapi tugas dari mata kuliah Elektronika
digital sesmster 2 (Dua) jurusan Elektro prodi DIII Teknik Listrik.
2
BAB II
PEMBAHASAN
2.1 SEJARAH MIKROKONTROLER
Mikrokontroller adalah sebuah sistem komputer fungsional dalam sebuah
chip. Di dalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM,
memori program, atau keduanya), dan perlengkapan input output.
Dengan kata lain, mikrokontroller adalah suatu alat elektronika digital yang
mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis
dan dihapus dengan cara khusus, cara kerja mikrokontroller sebenarnya adalah
membaca dan menulis data. Mikrokontroller merupakan komputer didalam chip yang
digunakan untuk mengontrol peralatan elektronik, yang menekankan efisiensi dan
efektifitas biaya. Secara harfiah bisa disebut “pengendali kecil” dimana sebuah sistem
elektronik yang sebelumnya banyak memerlukan komponen-komponen pendukung
seperti IC TTL dan CMOS dapat direduksi atau diperkecil dan akhirnya terpusat serta
dikendalikan oleh mikrokontroller ini. Mikrokontroller digunakan dalam produk dan
alat yang dikendalikan secara otomatis, seperti sistem kontrol mesin, remote control,
mesin kantor, peralatan rumah tangga, alat berat, dan mainan. Dengan mengurangi
ukuran, biaya, dan konsumsi tenaga dibandingkan dengan mendesain menggunakan
mikroprosesor memori, dan alat input output yang terpisah, kehadiran
mikrokontroller membuat kontrol elektrik untuk berbagai proses menjadi lebih
ekonomis. Dengan penggunaan mikrokontroller ini maka :
2. Rancang bangun sistem elektronik akan lebih cepat karena sebagian besar dari
3
Namun demikian tidak sepenuhnya mikrokontroller bisa mereduksi
komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi
kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran 6
(I/O). Dengan kata lain, mikrokontroller adalah versi kecil atau mikro dari sebuah
komputer karena mikrokontroller sudah mengandung beberapa periferal yang
langsung bisa dimanfaatkan, misalnya port paralel, port serial, komparator, konversi
digital ke analog (DAC), konversi analog ke digital (ADC) dan sebagainya hanya
menggunakan sistem minimum yang tidak rumit atau kompleks.
2. Rangkaian reset agar mikrokontroller dapat menjalankan program mulai dari awal.
4
3. Rangkaian clock, yang digunakan untuk memberi detak atau pulsa pada CPU.
5
untuk keperluan sehari-hari, seperti pengendali peralatan rumah tangga jarak jauh
yang menggunakan remote control televisi, radio frekuensi, maupun menggunakan
ponsel, membuat jam digital, termometer digital dan sebagainya
6
tertanam pada suatu produk, sedangkan dedicated system adalah sistem pengendali
yang dimaksudkan hanya untuk suatu fungsi tertentu. Sebagai contoh, printer adalah
suatu embedded system karena di dalamnya terdapat mikrokontroler sebagai
pengendali dan juga dedicated system karena fungsi pengendali tersebut berfungsi
hanya untuk menerima data dan mencetaknya. Hal ini berbeda dengan suatu PC yang
dapat digunakan untuk berbagai macam keperluan, sehingga mikroprosesor pada PC
sering disebut sebagai general purpose microprocessor (mikroprosesor serba guna).
Pada PC berbagai macam software yang disimpan pada media penyimpanan dapat
dijalankan, tidak seperti mikrokontroler hanya terdapat satu software aplikasi.
1. Otomotif : Engine Control Unit, Air Bag, fuel control, Antilock Braking System,
sistem pengaman alarm, transmisi automatik, hiburan, pengkondisi udara,
speedometer dan odometer, navigasi, suspensi aktif.
4. robotika.
Saat ini mikrokontroler 8 bit masih menjadi jenis mikrokontroler yang paling
populer dan paling banyak digunakan. Maksud dari mikrokontroler 8 bit adalah data
yang dapat diproses dalam satu waktu adalah 8 bit, jika data yang diproses lebih besar
dari 8 bit maka akan dibagi menjadi beberapa bagian data yang masing-masing terdiri
dari 8 bit. Masing-masing mikrokontroler mempunyai cara dan bahasa pemrograman
yang berbeda, sehingga program untuk suatu jenis mikrokontroler tidak dapat
dijalankan pada jenis mikrokontroler lain. Untuk memilih jenis mikrokontroler yang
cocok dengan aplikasi yang dibuat terdapat tiga kriteria yaitu:
7
1. Dapat memenuhi kebutuhan secara efektif & efisien. Hal ini menyangkut
kecepatan, kemasan/packaging, konsumsi daya, jumlah RAM dan ROM,
jumlah I/O dan timer, harga per unit.
2. Bahasa pemograman yang tersedia.
3. Kemudahan dalam mendapatkannya.
8
Mikroprosesor baru dapat dikembangkan dan diuji lebih cepat jika salah
satu tujuannya kurang rumit.
Sistem operasi dan pemrogram aplikasi yang menggunakan instruksi
mikroprosesor akan merasa lebih mudah untuk mengembangkan kode
dengan set instruksi yang lebih kecil.
Kesederhanaan RISC memungkinkan lebih banyak kebebasan untuk
memilih bagaimana menggunakan ruang pada mikroprosesor.
Kompiler bahasa tingkat yang lebih tinggi menghasilkan kode yang lebih
efisien daripada sebelumnya karena mereka selalu cenderung
menggunakan set instruksi yang lebih kecil yang dapat ditemukan di
komputer RISC.
Setelah pengenalan RISC, komputer instruksi “set lengkap” dikatakan
menggunakan CISC (Complex Instruction Set Computing) atau
“komputasi set instruksi kompleks”.
Complex instruction-set computing atau Complex Instruction-Set
Computer (CISC) “Kumpulan instruksi komputasi kompleks”) adalah
sebuah arsitektur dari set instruksi dimana setiap instruksi akan menjalankan
beberapa operasi tingkat rendah, seperti pengambilan dari memory, operasi
aritmetika, dan penyimpanan ke dalam memory, semuanya sekaligus hanya di dalam
sebuah instruksi.
Dimana prosesor tersebut memiliki set instruksi yang kompleks dan lengkap.
CISC sendiri adalah salah satu bentuk arsitektur yang menjalani beberapa instruksi
dengan tingkat yang rendah. Misalnya intruksi tingakt rendah tersebut adalah operasi
aritmetika, penyimpanan-pengambilan dari memory dll. CISC memang memiliki
instruksi yang complex dan memang dirasa berpengaruh pada kinerjanya yang lebih
lambat. CISC menawarkan set intruksi yang powerful, kuat, tangguh, maka tak heran
jika CISC memang hanya mengenal bahasa asembly yang sebenarnya ia tujukan bagi
para programmer.
Tujuan utama dari arsitektur CISC adalah melaksanakan suatu perintah cukup
dengan beberapa baris bahasa mesin sedikit mungkin. Hal ini bisa tercapai dengan
cara membuat perangkat keras prosesor mampu memahami dan menjalankan
beberapa rangkaian operasi.
9
Ciri-ciri CISC
1. Jumlah instruksi banyak namun Instruksi berukuran tunggal, ukuran yang
umum adalah 4 byte. Jumlah mode pengalamatan data yang sedikit,
biasanya kurang dari lima buah;
2. Banyak terdapat perintah bahasa mesin;
3. Instruksi lebih kompleks;
4. Tidak terdapat pengalamatan tak langsung;
5. Tidak terdapat operasi yang menggabungkan operasi load/store dengan
operasiaritmetika (misalnya, penambahan dari memori, penambahan ke
memori).
Karakteristik CISC
ü Sarat informasi memberikan keuntungan di mana ukuran program-program
yang dihasilkan akan menjadi relatif lebih kecil, dan penggunaan memory
akan semakin berkurang. Karena CISC inilah biaya pembuatan komputer pada
saat itu (tahun 1960) menjadi jauh lebih hemat
ü Dimaksudkan untuk meminimumkan jumlah perintah yang diperlukan
untuk mengerjakan pekerjaan yang diberikan. (Jumlah perintah sedikit tetapi
rumit) Konsep CISC menjadikan mesin mudah untuk diprogram dalam bahasa
rakitan
1. Mikrokontroler AVR
10
Gambar 2.2 Mikrokontroler AVR
ADC
Flash RAM EEPROM Pin Timer Timer
Seri UART PW M 10- SPI ISP
(kbytes) (bytes) (kybtes) I/O 16-bit 8-bit
Bit
ATMega8 8 1024 0,5 23 1 1 1 3 6/8 1 Ya
ATmega8535 8 512 0,5 32 2 2 1 4 8 1 Ya
ATmega16 16 1024 0,5 32 1 2 1 4 8 1 Ya
ATmega162 16 1024 0,5 35 2 2 2 6 8 1 Ya
ATmega32 32 2048 1 32 1 2 1 4 8 1 Ya
ATmega128 128 4096 4 53 2 2 2 8 8 1 Ya
ATtiny12 1 - 0,0625 6 - 1 - - - - Ya
ATtiny2313 2 128 0,125 18 1 1 1 4 - 1 Ya
ATtiny44 4 256 0,25 12 1 1 - 4 8 1 Ya
ATtiny84 8 512 0,5 12 1 1 - 4 8 1 Ya
Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel dan
digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high
performance. Di Indonesia, mikrokontroler AVR banyak dipakai karena fiturnya
yang cukup lengkap, mudah untuk didapatkan, dan harganya yang relatif
terjangkau.
11
Flashadalah suatu jenis Read Only Memory yang biasanya diisi dengan
program hasil buatan manusia yang harus dijalankan oleh mikrokontroler
RAM (Random Acces Memory) merupakan memori yang membantu CPU
untuk penyimpanan data sementara dan pengolahan data ketika program
sedang running
EEPROM (Electrically Erasable Programmable Read Only Memory) adalah
memori untuk penyimpanan data secara permanen oleh program yang
sedang running
Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil
keluaran ataupun masukan bagi program
Timer adalah modul dalam hardware yang bekerja untuk menghitung
waktu/pulsa
UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi
data khusus secara serial asynchronous
PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi
pulsa
ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima
sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu
nilai digital dalam range tertentu
SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara
serial secara serial synchronous
ISP (In System Programming) adalah kemampuan khusus mikrokontroler
untuk dapat diprogram langsung dalam sistem rangkaiannya dengan
membutuhkan jumlah pin yang minimal
B. Arsitektur Mikrokontroler AVR
Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang
memisahkan memori dan bus untuk data dan program, serta sudah menerapkan
single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan
12
RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat
berlangsung sangat cepat dan efisien. Blok sistem mikrokontroler AVR dapat
13
untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah feature-
feature mikrokontroler seri ATtiny2313.
14
a. VCC
Tegangan masukan digital sebesar 5 Volt.
b. GND
Dihubungkan pada Ground. Referensi nol suplai tegangan digital.
c. PORT A (PA0…PA2)
Pada PORT A hanya terdapat tiga(3) buah pin saja atau 3 bit pin I/O. Dimana
PORT A ini, ketiga pin nya(seluruh pin PORT A) digunakan untuk keperluan
membuat sismin. Yaitu PA.0 dan PA.1 untuk input clock (nama komponen
adalah kristal), dan PA.2 untuk input tombol RESET.
d. PORT B (PB0…PB7)
Pada PORT B terdapat delapan(8) buah pin atau 8 bit pin I/O. Dan juga pada
PORT B ini terdapat port SPI(Serial Peripheral Interface), yaitu pin
komunikasi untuk men-download program secara serial syncronous dari
komputer ke mikrokontroller, pin-pin tersebut adalah MOSI(PORTB.5),
MISO(PORTB.6), SCK(PORTB.7).
e. PORT D (PD0…PD6)
Pada PORT D terdapat delapan(7) buah pin atau 7 bit pin I/O.
f. RESET
Reset berfungsi untuk menyusun ulang routing program dari awal. Biasanya
RESET bersifat Active Low, yaitu aktif saat logika bernilai nol “0”. Sinyal
LOW pada pin ini dengan lebar minimum 1,5 mikrodetik akan membawa
mikrokontroler ke kondisi Reset, meskipun clock tidak running. Sinyal
dengan lebar kurang dari 1,5 mikrodetik tidak menjamin terjadinya kondisi
Reset.
15
g. XTAL 1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal
clock operating circuit.
h. XTAL 2
16
Gambar 2.6 Mikrokontroler AVR ATmega 8535
17
i. AVCC merupakan pin masukan tegangan untuk ADC
j. AREF merupakan pin masukan tegangan referensi ADC.
2. Mikrokontroler MCS-51
Mikrokontroler MCS51 buatan Atmel terdiri dari dua versi, yaitu versi 20
kaki dan versi 40 kaki. Semua mikrokontroler ini dilengkapi dengan Flash
PEROM (Programmable Eraseable Read Only Memory) sebagai media memori-
program, dan susunan kaki IC-IC tersebut sama pada tiap versinya.
18
Tabel 2.2 Perbandingan antar Mikrokontroler MCS51 Atmel
Pewaktu/Timer
Tipe μC Memori Program Memori Data Teknologi
16-bit
AT89C105 CMOS
1KB Flash 64 RAM 1
1
AT89C205 CMOS
2KB Flash 128 RAM 2
1
AT89C405 CMOS
4KB Flash 128 RAM 2
1
AT89C51 4KB Flash 128 RAM 2 CMOS
AT89C52 8KB Flash 256 RAM 3 CMOS
AT89C53 12KB Flash 256 RAM 3 CMOS
AT89C55 20KB Flash 256 RAM 3 CMOS
256 RAM
AT89C825
8KB Flash dan 2KB 3 CMOS
2
EEPROM
19
Mikrokontroler MCS51 Atmel versi mini (20 pin) dan versi 40 pin secara
garis besar memiliki struktur dasar penyusun arsitektur mikrokontroler yang sama.
Bagian-bagian tersebut secara lebih lengkap (detil) ditunjukan dalam diagram blok
berikut.
20
Gambar 2.9 Diagram Blok mikrokontroler MSC51 Atmel
21
Mikrokontroler MCS51 Atmel versi 40 kaki mempunyai 32 kaki
sebagai port paralel dan 8 pin yang lain untuk konfigurasi kerja mikrokontroler.
Satu port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk
4 buah port paralel yang masing-masing dikenal
sebagai port 0, port 1, port 2, port 3. Nomor dari masing-masing jalur (kaki)
dari port paralel mikrokontroler MCS51 Atmel mulai dari 0 sampai 7, jalur (kaki)
pertama dari port 0 disebut sebagai P0.0 dan jalur terakhir untuk port 3 adalah
P3.7. Mikrokontroler MCS51 Atmel versi mini mempunyai 20 kaki, 15 kaki
diantaranya adalah kaki port 1 dan port 3. 5 kaki yang lain untuk konfigurasi kerja
mikrokontroler. Port 1 terdiri dari 8 jalur yaitu P1.0 sampai P1.7 dan port 3 terdiri
dari 7 jalur yaitu P3.0 sampai P3.5 dan P3.7. Susunan kaki mikrokontroler MCS51
atmel versi 40 kaki dapat dilihat pada Gambar 2.10 berikut.
22
a. VCC
b. GND
c. RST
Kaki RST fungsinya sebagai masukan reset. Kondisi “1” selama 2 siklus
mesin pada saat oscillator bekerja akan me-reset mikrokontroler yang
bersangkutan.
d. ALE/
23
e. /VPP
f. XTAL1
g. XTAL2
3. Mikrokontroler PIC
24
oleh Microchip Technology. Awalnya dikembangkan oleh Divisi Mikroelektronik
General Instruments dengan nama PIC1640.
25
Gambar 2.12 Blok Diagram Mikrokontroler PIC 16F84
26
Fitur
Walaupun lebih sederhana dibandingkan dengan seri lainya di PIC tetapi
mikrokontroler PIC 16F84 ini memiliki fitur-fitur yang tidak dimiliki oleh
mikrokontroler keluaran Atmel atau Paralax.
Mikrokontroler PIC 16F84 ini memiliki fitur:
4. Memiliki 68 x 8 SRAM
8. memiliki 4 interup
27
Gambar 2.13 Susunan kaki mikrokontroler PIC 16F84
Keterangan:
1. VDD
Power supply
2. VSS
Ground
3. OSC1/CLKIN
Pin input clock (pin koneksi ke crystal atau resonator)
4. OSC2/CLKOUT
Pin output clock (pin koneksi ke crystal atau resonator)
5. MCLR
Master clear atau Vpp program atau reset aktif rendah (low)
6. Ra0-RA3
Port I/O A bit 0-3
7. RA4/TOCK1
Port I/O A bit ke 4 atau input untuk timer
8. RB0/INT
Port I/O B bit ke 0 atau pin interupsi eksternal
9. RB1-RB7
Port I/O B bit 1-7
4. Mikrokontroler ARM
28
Gambar 2.14 Mikrokontroler ARM
ARM adalah prosesor dengan arsitektur set instruksi 32bit RISC (Reduced
Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM
merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih dikenal
dengan kepanjangan Acorn RISC Machine). Pada awalnya ARM prosesor
dikembangkan untuk PC (Personal Computer) oleh Acorn Computers, sebelum
dominasi Intel x86 prosesor Microsoft di IBM PC kompatibel menyebabkan Acorn
Computers bangkrut.
29
Melalui izin dari seluruh dunia, arsitektur ARM adalah yang
umum dilaksanakan 32-bit set instruksi paling
arsitektur. Arsitektur ARM diimplementasikan pada Windows, Unix, dan
sistem operasi mirip Unix, termasuk
Apple iOS, Android, BSD, Inferno, Solaris, WebOS, Plan
9 dan GNU / Linux. Advanced RISC Machine awalnya dikenal
sebagai Mesin Acorn RISC.
30
Gambar 2.16 Susunan Kaki Mikrokontroler ARM
Fungsi kaki-kaki
1. Port 1 (Pin 1 - pin 8)
Merupakan port 8 bit yang dapat digunakan sebagai port input atau output
dengan pull up internal. Port 1 akan menjadi port input jika dikirim data FFH
dan akan menjadi port output setelah direset. Port 1 bisa diakses sebagai Port
(P1) atau diakses per bit (P1.0-P1.7).
2. RST (Pin 9)
Merupakan pin reset yang akan mereset atau menjalankan program kembali
ke awal, cara mengaktifkannya dengan memeberikan lgika tinggi.
31
3. Port 3 (Pin 10 – pin 17)
Merupakan port 8 bit yang dapat digunakan sebagai port input atau output
dengan pull up internal. Pengaturannya sama seperti port 1. Selain sebagai
port multiguna, P3 juga mempunyai fungsi khusus, perhatikan tabel 2.3
berikut
Tabel 2.3 Fungsi Khusus Port 3 Mikrokontroler ARM
32
8. Port 2 (pin 21 – pin 28)
Merupakan port 8 bit yang dapat digunakan sebagai port input atau output
dengan pull up internal. Pengaturannya sama seperti port 1.
9. PSEN (pin 29)
Program Store Enable merupakan sinyal baca pada saat menjalankan
program dari memory eksternal
10. ALE/PROG (pin 30)
Digunakan untuk mendemultiplex address dan data bus ketika menggunakan
memory eksternal. Bila digunakan EPROM internal pin ni berfungs sebagai
penerima pulsa program selama pemrograman
11. EA/VPP
Jika dihubungkan ke GND, alamat awal program berada di memory eksternal
dan sebaliknya jika dihubungkan ke VCC maka alamat awal program berada
di memory internal.
12. Port 0 (pin 32 – pin 39)
Merupakan port 8 bit yang dapat digunakan sebagai port input atau output
dengan pull up internal. Pengaturannya sama seperti port 1.
33
board USB Arduino, dan sebagai model referensi untuk platform Arduino, untuk
perbandingan dengan versi sebelumnya, lihat indeks board Arduino.
34
Tabel 2.4 Identitas Arduino Uno
Microcontroller ATmega328
Operating Voltage 5V
Input Voltage
7-12V
(recommended)
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Length 68.6 mm
Width 53.4 mm
Weigth 25 g
2.4.2 Power
Arduino Uno dapat disupply langsung ke USB atau power supply tambahan
yang pilihan power secara otomatis berfungsi tanpa saklar. Kabel external (non-USB)
seperti menggunakan adaptor AC ke DC atau baterai dengan konektor plug ukuran
2,1mm polaritas positif di tengah ke jack power di board. Jika menggunak baterai
dapat disematkan pada pin GND dan Vin di bagian Power konektor.
35
Gambar 2.18 Power Supply Arduino Port
Papan Arduino ini dapat disupplai tegangan kerja antara 6 sampai 20 volt, jika
catu daya di bawah tengan standart 5V board akan tidak stabil, jika dipaksakan ke
tegangan regulator 12 Volt mungkin board arduino cepat panas (overheat) dan
merusak board. Sangat direkomendasikan tegangannya 7-12 volt.
Penjelasan Power PIN:
VIN - Input voltase board saat anda menggunakan sumber catu daya luar
(adaptor USB 5 Volt atau adaptor yang lainnya 7-12 volt), Anda bisa
menghubungkannya dengan pin VIN ini atau langsung ke jack power 5V. DC
power jack (7-12V), Kabel konektor USB (5V) atau catu daya lainnya (7-12V).
Menghubungkan secara langsung power supply luar (7-12V) ke pin 5V atau pin
3.3V dapat merusak rangkaian Arduino ini, jangan salahkan saya ya?!
3V3 - Pin tegangan 3.3 volt catu daya umum langsung ke board. Maksimal arus
yang diperbolehkan adalah 50 mA.
GND - Pin Ground.
IOREF - Pin ini penyedia referensi tengangan agar mikrokontrol beroperasi
dengan baik. Memilih sumber daya yang tepat atau mengaktifkan penerjemah
tegangan pada output untuk bekerja dengan 5V atau 3.3V.
2.4.3 Memory
ATmega328 memiliki memory 32 Kb (dengan 0.5 Kb digunakan sebagai
bootloader). Memori 2 KB SRAM dan 1 KB EEPROM (yang dapat baca tulis dengan
libraryEEPROM).Masing-masing dari 14 pin UNO dapat digunakan sebagai input
atau output, menggunakan perintah fungsi pinMode(), digitalWrite(), dan
digitalRead() yang menggunakan tegangan operasi 5 volt. Tiap pin dapat menerima
arus maksimal hingga 40mA dan resistor internal pull-up antara 20-50kohm,
beberapa pin memiliki fungsi kekhususan antara lain:
36
a) VIN. Tegangan input ke Arduino board ketika board sedang menggunakan
sumber suplai eksternal (seperti 5 Volt dari koneksi USB atau sumber tenaga
lainnya yang diatur). Kita dapat menyuplai tegangan melalui pin ini, atau jika
penyuplaian tegangan melalui power jack, aksesnya melalui pin ini.
b) 5V. Pin output ini merupakan tegangan 5 Volt yang diatur dari regulator pada
board. Board dapat disuplai dengan salah satu suplai dari DC power jack (7-
12V), USB connector (5V), atau pin VIN dari board (7-12). Penyuplaian
tegangan melalui pin 5V atau 3,3V membypass regulator, dan dapat
membahayakan board. Hal itu tidak dianjurkan.
c) 3V3. Sebuah suplai 3,3 Volt dihasilkan oleh regulator pada board. Arus
maksimum yang dapat dilalui adalah 50 mA.
d) GND. Pin ground.
2.4.4 Communication
Arduino Uno memiliki fasilitas nomer untuk komunikasi dengan komputer
atau hardware Arduino lainya, atau dengan mikrokontroler. Pada ATmega328
menerjemahkan serial komunikasi UART TTL (5V) pada pin 0 (RX) dan 1 (TX).
Pada ATmega16U2 serial komunikasinya dengan USB dan port virtual pada
software di komputer. Perangkat lunak (firmware) 16U2 menggunakan driver
standart USB COM dan tidak membutuhkan driver luar lainnya. Bagaimanapun pada
OS Windows file ekstensi .inf sangar diperlukan. Software Arduino bawaan telah
menyertakan serial monitor yang sangat mudah membaca dan mengirim data dari dan
ke Arduino.
LED indikator TX dan RX akan kedip ketika data telah terkirim via koneksi
USBto-serial dengan USB pada komputer (tetapi tidak pada serial com di pin 0 dan
pin 1) SoftwareSerial library membolehkan banyak pin serial communication pada
Uno. ATmega328 juga support I2C (TWI) dan SPI communication. Software
Arduino terbenam di dalamnya Wire library untuk memudahkan penggunaan bus
I2C.
Uno Arduino memiliki sejumlah fasilitas untuk berkomunikasi dengan
komputer, Arduino lain, atau mikrokontroler lainnya. ATmega328 menyediakan
UART TTL (5V) untuk komunikasi serial, yang tersedia di pin digital 0 (RX) dan 1
(TX). Sebuah ATmega8U2 sebagai saluran komunikasi serial melalui USB dan
sebagai
37
port virtual com untuk perangkat lunak pada komputer. Firmware ’8 U2
menggunakan driver USB standar COM, dan tidak ada driver eksternal yang
diperlukan. Namun, pada Windows diperlukan, sebuah file inf. Perangkat lunak
Arduino terdapat monitor serial yang memungkinkan digunakan memonitor data
tekstual sederhana yang akan dikirim ke atau dari board Arduino. LED RX dan TX
di papan tulis akan berkedip ketika data sedang dikirim melalui chip USB-toserial
dengan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0
dan 1).
Sebuah SoftwareSerial library memungkinkan untuk berkomunikasi secara
serial pada salah satu pin digital pada board Uno’s.
ATmega328 juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat
lunak Arduino termasuk perpustakaan Kawat untuk menyederhanakan penggunaan
bus I2C, lihat dokumentasi untuk rincian. Untuk komunikasi SPI, menggunakan
perpustakaan SPI.
2.4.5 Programming
Arduino UNO dapat di program dengan software Arduino. Pilih "Arduino
Uno dari Tools > Board menu (akan terlacak microcontroller pada board).
Microcontroller ATmega328 pada Arduino Uno dapat preburned dengan bootloader
yang dapat anda upload kode baru tanpa menggunakan programmer perangkat
lainnya.Komunikasi menggunakan protokol original STK500.
Anda dapat pula langsung bootloader dan program pada microcontroller
melalui ICSP (In-Circuit Serial Programming) menggunakan Arduino ISP atau yang
semisalnya. Pada ATmega16U2 (atau 8U2 di rev1 dan rev2 board) dapat melihat
firmware source code. Pada ATmega16U2/ 8U2 load-nya dengan DFU bootloader,
yang dapat diaktifkan di antaranya:
a. On Rev1 boards: menyambung jumper solder di balik board dan kemudian
mereset 8U2.
b. On Rev2 or later boards: Resistor suntikan pada 8U2/16U2 HWB ke jalur
ground, hal ini dapat membuat mudah masuk ke mode DFU.
Automatic (Software) Reset Agak dibutuhkan tekan tombol reset sebelum
upload, sebab Arduino Uno dirancang reset dulu oleh software ketika terhubung
dengan komputer. Satu komponen jalur kontrol aliran (DTR) dari ATmega8U2/ 16U2
yang terhubung di reset seperti halnya ATmega328 dengan 100 nanofarad kapasitor.
38
Software upload kode ini dapat mengupload secara mudah tanpa kehilangan waktu
lama saat di tekan start uploadnya.
USB Overcurrent Protection Arduino Uno memiliki fungsi resettable polyfuse
untuk memproteksi dari port USB komputer akibat hubung singkat atau kelebihan
arus. Jika arus yang melebihi 500mA dari port USB maka fuse secara otomatis putus
koneksi hingga short atau overload dilepaskan dari board ini.
Karakteristik Fisik Panjang PCB Uno 2.7 dan lebar maksimal 2.1 inchi dengan
konektor USB dan power jack diluar hitungan. Lengkap dengan empat lubang skrup
di setiap pojok untuk dipasang. Catatan, jarak antara tiap pin 7 dan 8.
39
Aref. Tegangan referensi (0 sampai 5V saja) untuk input analog. Digunakan dengan
fungsi analogReference ().
Reset. Bawa baris ini LOW untuk me-reset mikrokontroler.
ATmega328 mempunyai 32 KB (dengan 0,5 KB digunakan untuk
bootloader). ATmega 328 juga mempunyai 2 KB SRAM dan 1 KB EEPROM (yang
dapat dibaca dan ditulis (RW/read and written) dengan EEPROM library().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. Selain itu, beberapa pin mempunyai fungsifungsi spesial:
a) Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan
memancarkan (TX) serial data TTL (Transistor-Transistor Logic). Kedua pin
ini dihubungkan ke pin-pin yang sesuai dari chip Serial Atmega8U2 USB-ke-
TTL.
b) External Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu
sebuah interrupt (gangguan) pada sebuah nilai rendah, suatu kenaikan atau
penurunan yang besar, atau suatu perubahan nilai. Lihat fungsi attachInterrupt()
untuk lebih jelasnya.
c) PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi
analogWrite().
d) SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport
komunikasi SPI menggunakan SPI library.
e) LED: 13. Ada sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika
pin bernilai HIGH LED menyala, ketika pin bernilai LOW LED mati.
Arduino UNO mempunyai 6 input analog, diberi label A0 sampai A5, setiapnya
memberikan 10 bit resolusi (contohnya 1024 nilai yang berbeda). Secara default, 6
input analog tersebut mengukur dari ground sampai tegangan 5 Volt, dengan itu
mungkin untuk mengganti batas atas dari rangenya dengan menggunakan pin AREF
dan fungsi analogReference(). Di sisi lain, beberapa pin mempunyai fungsi spesial:
TWI: pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan
menggunakan Wire library.
Ada sepasang pin lainnya pada board:
40
a) AREF. Referensi tegangan untuk input analog. Digunakan dengan
analogReference().
b) Reset. Membawa saluran ini LOW untuk mereset mikrokontroler. Secara
khusus, digunakan untuk menambahkan sebuah tombol reset untuk melindungi
yang memblock sesuatu pada board.
Lihat juga pemetaan antara pin Arduino dengan port Atmega328. Pemetaan untuk
Atmega8, 168, dan 328 adalah identik.
Inputan pada Rancangan ini adalah pada Sensor Raindrops, Sensor Ultrasonik,
Modem SIM 900 dan adaptor adalah inputan dan outputannya adalah pengiriman
pada SMS. Pada Sensor Raindrops, Sensor Raindrops dan Modem SIM 900
pemasangannya ke Arduino Uno yaitu, dimulai dari Inputan sensor Raindrops yang
menghubungkan pin AO sensor Raindrop ke pin AO Arduino Uno, lalu hubungan pin
GND dan pin VCC masing-masingnya. Pada sensor Ultrasonik hubungkan pin
Trigger ke pin 10 pada Arduino Uno dan pin Echo pada sensor Ultrasonik ke pin 11
pada Arduino Uno. Dan pada Modem SIM900 hubungkan Reciever Modem SIM900
ke pin 3 pada Arduino Uno dan Transciver Modem SIM 900 ke pin 2 pada Arduino
Uno.
41
LED: 13. Terdapat LED indikator bawaan (built-in) dihubungkan ke digital pin
13, ketika nilai value HIGH led akan ON, saat value LOW led akan OFF.
Uno memiliki 6 analog input tertulis di label A0 hingga A5, masingmasingnya
memberikan 10 bit resolusi (1024). Secara asal input analog tersebut terukuru
dari 0 (ground) sampai 5 volt, itupun memungkinkan perubahan teratas dari
jarak yang digunakan oleh pin AREF dengan fungsi analogReference().
42
2.5 PENGAPLIKASIAN ARDUINO UNO
2.5.1 Menyalakan LED menggunakan Arduino UNO
Alat dan Bahan
1 Buah LED 5mm atau LED 3mm
1 Buah Resistor 100Ω Ohm
2 Buah Kabel Jumper
1 Buah Protoboard
1 Buah Arduino
Rangkaian Menyalakan LED Menggunakan Arduino UNO
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
Dalam Sketch Program Menyalakan LED Menggunakan Arduino UNO ada
beberapa cara Sketch Program untuk dapat menyalakan LED nya, berikut ini saya
akan paparkan cara Menyalakan LED dengan Aktif HIGH.
43
44
Sketch Program Cara Pertama :
1 // Menyalakan LED Menggunakan Arduino UNO
2 // Menyalakan LED dengan Aktif HIGH
3 void setup()
4 {
5 // menjadikan PIN 4 sebagai OUTPUT
6 pinMode(4, OUTPUT);
7 }
8 void loop()
9 {
10 // Menyalakan PIN 4 (HIGH = Memberi tegangan pada PIN 4)
11 digitalWrite(4, HIGH);
12 }
45
2.5.2 Program LED Berjalan Menggunakan Arduino UNO
Alat dan Bahan
5 Buah LED 5mm atau LED 3mm (Warna Bebas)
5 Buah Resistor 100Ω Ohm
6 Buah Kabel Jumper
1 Buah Protoboard
1 Buah Arduino
Rangkaian Lampu LED Berjalan Menggunakan Arduino UNO
46
Sketch Program
Dalam Sketch Program Lampu LED Berjalan Menggunakan Arduino UNO ada
beberapa cara Sketch Program untuk dapat menyalakan LED nya, berikut ini
saya akan paparkan Sketch Program dengan Aktif HIGH.
Sketch Program:
47
46 digitalWrite(ledPin5, LOW);
47 delay(1000);
48 digitalWrite(ledPin1, LOW);
49 digitalWrite(ledPin2, LOW);
50 digitalWrite(ledPin3, LOW);
51 digitalWrite(ledPin4, LOW);
52 digitalWrite(ledPin5, HIGH);
53 delay(1000);
54 }
Keterangan :
Fungsivoid setup () dalam sebuah program arduino adalah semua perintah
yang akan di baca sekali.
Fungsivoid loop () dalam sebuah program arduino adalah semua perintah
yang akan di baca berulang-ulang.
48
2.5.3 Program Motor menggunakan Arduino UNO
Alat dan Bahan
Arduino, saya pakai arduino Uno r3
Breadboard
Resistor
Dioda
Kabel Jumper
49
Skecth Program :
int motorPin = 3;
void setup()
{
pinMode(motorPin, OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Speed 0 to 255");
}
void loop()
{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPin, speed);
}
}
}
50
2.5.4 Perancangan Smart Home menngunakan Arduino UNO
IOT (Internet of Things) adalah suatu konsep untuk menghubungkan
perangkat satu dengan yang lainnya dengan bantuan internet. Nah kali ini
jogjarobotika akan mencoba sharing salah satu project IoT sederhana. Project
kali ini yaitu membuat Modul (Prototype) IOT untuk Smart Home Appliance
(Perangkat Rumah Pintar). Nantinya modul iot ini akan dapat memonitoring
dan mengkontrol berbagai macam alat/sensor seperti berikut:
1. Kontrol Relay - Dapat dimanfaatkan untuk menyalakan lampu, doorlock,
motor DC, dan lain sebagainya.
2. Kontrol Servo - Dapat dimanfaatkan untuk menggerakan alat tertentu.
3. Monitoring Suhu dan Kelembaban
4. Monitoring pergerakan
Modul IoT kali ini terdiri dari berbagai macam part seperti berikut:
1. Wemos D1 - Merupakan module development board yang
berbasis WiFi dari keluarga ESP8266 yang dimana dapat diprogram
menggunakan software IDE Arduino seperti halnya dengan NodeMCU.
2. Modul Relay - Digunakan sebagai kontaktor untuk menyalakan lampu AC
dan Solenoid Doorlock 12V.
3. Servo SG90
4. Sensor PIR - Untuk mendeteksi adanya pergerakan.
5. Sensor DHT11 - Untuk mendeteksi Temperature dan Kelembaban.
6. Solenoid Doorlock 12V - Digunakan untuk pengunci pintu atau jendela
atau yang lain semacamnya.
7. Project Board
51
Gambar 2.26 Rangkaian Smart Home
1. Rangkaian Sensor PIR
52
Gambar 2.29 Rangkaian DHT11
4. Rangkaian Selonoid Doorlock
53
Setelah semua komponen terangkai dengan benar, sekarang kita masuk ke
software arduino untuk memprogram WEMOS nya. Jika baru pertama kali
menggunakan WEMOS, silahkan install/setting WEMOS pada arduino terlebih
dahulu.
Sketch Program :
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
54
Serial.begin(9600);
//delay(10);
Blynk.begin(auth, ssid, pass);
pinMode(pirPin, INPUT);
dht.begin();
timer.setInterval(100L, sendSensor);
servo.attach(D10);
}
void loop()
{
Blynk.run();
Timer.run();
getPirValue();
}
void getPirValue(void)
{
pirValue = digitalRead(pirPin);
if (pinValue == HIGH)
{if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.notify("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}}
else{
if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}
}
}
55
BAB III
PENUTUP
3.1 KESIMPULAN
56
DAFTAR PUSTAKA
57
Daumal, Muhammad Aldhi Nur Alam Afriyan. 2016. Membuat Lampu LED
Berjalan Menggunakan Arduino UNO, diakses dari
https://www.warriornux.com/membuat-lampu-led-berjalan-menggunakan-
arduino-uno/ Pada 19 Juli 2020
Pambudi, Giri Wahyudi. 2017. CARA MENGENDALIKAN MOTOR DC
MENGGUNAKAN ARDUINO, diakses dari https://www.cronyos.com/cara-
mengendalikan-motor-dc-menggunakan-arduino/ pada 19 Juli 2020
Jogja Robotika. 2019. MODUL IOT (INTERNET OF THINGS) UNTUK
SMART HOME APPLIANCE, diakses dari
http://www.jogjarobotika.com/blog/modul-iot-internet-of-things-untuk-smart-
home-appliance-b136.html pada 19 Juli 2020
58