View
228
Download
0
Category
Preview:
Citation preview
1
BAB I
SISTEM BILANGAN
I.1 Pengertian
System bilangan (number system) adalah suatu cara untuk mewakili besaran dari suatu item
fisik. Sistem bilangan yang banyak dipergunakan oleh manusia adalah system biilangan desimal,
yaitu sisitem bilangan yang menggunakan 10 macam symbol untuk mewakili suatu besaran.
Sistem ini banyak digunakan karena manusia mempunyai sepuluh jari untuk dapat membantu
perhitungan. Lain halnya dengan komputer, logika di komputer diwakili oleh bentuk elemen dua
keadaan yaitu off (tidak ada arus) dan on (ada arus). Konsep inilah yang dipakai dalam sistem
bilangan binary yang mempunyai dua macam nilai untuk mewakili suatu besaran nilai.
Selain system bilangan biner, komputer juga menggunakan system bilangan octal dan
hexadesimal.
I.2 Teori Bilangan
1.2.1 Bilangan Desimal
Sistem ini menggunakan 10 macam symbol yaitu 0,1,2,3,4,5,6,7,8,dan 9. system ini
menggunakan basis 10. Bentuk nilai ini dapat berupa integer desimal atau pecahan.
Integer desimal :
adalah nilai desimal yang bulat, misalnya 8598 dapat diartikan :
8 x 103 = 8000
5 x 102 = 500
9 x 101 = 90
8 x 100 = 8 +
8598
position value/palce value
absolute value
Absolue value merupakan nilai untuk masing-masing digit bilangan, sedangkan position
value adalah merupakan penimbang atau bobot dari masing-masing digit tergantung dari letak
posisinya, yaitu nernilai basis dipangkatkan dengan urutan posisinya.
2
Pecahan desimal :
Adalah nilai desimal yang mengandung nilai pecahan dibelakang koma, misalnya nilai 183,75
adalah pecahan desimal yang dapat diartikan :
1 x 10 2 = 100
8 x 10 1 = 80
3 x 10 0 = 3
7 x 10 –1 = 0,7
5 x 10 –2 = 0,05 +
183,75
1.2.3 Bilangan Biner
Sistem bilangan binary menggunakan 2 macam symbol bilangan berbasis 2 digit angka,
yaitu 0 dan 1.
Contoh bilangan 1001 dapat diartikan :
1 0 0 1
1 x 2 0 = 1
0 x 2 1 = 0
0 x 2 2 = 0
1 x 2 3 = 8 +
9 (10)
1.2.4 Bilangan Oktal
Sistem bilangan Oktal menggunakan 8 macam symbol bilangan berbasis 8 digit angka,
yaitu 0 ,1,2,3,4,5,6,7. Position value system bilangan octal adalah perpangkatan dari nilai 8.
Contoh :
12(8) = …… (10)
2 x 8 0 = 2
1 x 8 1 = 8 +
10
Jadi 10 (10)
1.2.5 Bilangan Hexadesimal
Sistem bilangan Oktal menggunakan 16 macam symbol bilangan berbasis 8 digit angka,
yaitu 0 ,1,2,3,4,5,6,7,8,9,A,B,C,D,Edan F
Dimana A = 10, B = 11, C= 12, D = 13 , E = 14 dan F = 15
Position value system bilangan octal adalah perpangkatan dari nilai 16.
3
Contoh :
C7(16) = …… (10)
7 x 16 0 = 7
C x 16 1 = 192 +
199(10)
Jadi 199 (10)
I.3 Konversi Bilangan
Konversi bilangan adalah suatu proses dimana satu system bilangan dengan basis tertentu
akan dijadikan bilangan dengan basis yang lain.
1.3.1 Konversi dari bilangan Desimal
1. Konversi dari bilangan Desimal ke biner
Yaitu dengan cara membagi bilangan desimal dengan dua kemudian diambil sisa
pembagiannya.
Contoh :
45 (10) = …..(2)
45 : 2 = 22 + sisa 1
22 : 2 = 11 + sisa 0
11 : 2 = 5 + sisa 1
5 : 2 = 2 + sisa 1
2 : 2 = 1 + sisa 0 101101(2) (* ditulis dari bawah ke atas)
2. Konversi bilangan Desimal ke Oktal
Yaitu dengan cara membagi bilangan desimal dengan 8 kemudian diambil sisa
pembagiannya
Contoh :
385 (10) = ….(8)
385 : 8 = 48 + sisa 1
48 : 8 = 6 + sisa 0
601 (8) (* ditulis dari bawah ke atas)
3. Konversi bilangan Desimal ke Hexadesimal
Yaitu dengan cara membagi bilangan desimal dengan 16 kemudian diambil sisa
pembagiannya
Contoh :
1583(10) = ….(16)
1583 : 16 = 98 + sisa 15
96 : 16 = 6 + sisa 2
62F (16) (* ditulis dari bawah ke atas)
4
Konversi dari system bilangan Biner
1. Konversi ke desimal
Yaitu dengan cara mengalikan masing-masing bit dalam bilangan dengan position
valuenya.
Contoh :
1 0 0 1
1 x 2 0 = 1
0 x 2 1 = 0
0 x 2 2 = 0
1 x 2 3 = 8 +
9 (10)
2. Konversi ke Oktal
Dapat dilakukan dengan mengkonversikan tiap-tiap tiga buah digit biner yang dimulai dari
bagian belakang.
Contoh :
11010100(2) = ………(8)
11 010 100
3 2 4
diperjelas :
100 = 0 x 2 0 = 0
0 x 2 1 = 0
1 x 2 2 = 4 +
4 Begitu seterusnya untuk yang lain.
5
3. Konversi ke Hexademial
Dapat dilakukan dengan mengkonversikan tiap-tiap empat buah digit biner yang dimulai
dari bagian belakang.
Contoh :
11010100
1101 0100
D 4
Dikerjakan sama seperti diatas.
Konversi dari system bilangan Oktal
1. Konversi ke Desimal
Yaitu dengan cara mengalikan masing-masing bit dalam bilangan dengan position
valuenya.
Contoh :
12(8) = …… (10)
2 x 8 0 = 2
1 x 8 1 = 8 +
10(10)
2. Konversi ke Biner
Dilakukan dengan mengkonversikan masing-masing digit octal ke tiga digit biner.
Contoh :
6502 (8) = . . . . . (2)
2 = 010
0 = 000
5 = 101
6 = 110
jadi 110101000010(2)
3. Konversi ke Hexadesimal
Dilakukan dengan cara merubah dari bilangan octal menjadi bilangan biner kemudian
dikonversikan ke hexadesimal.
Contoh :
2537 (8) = …..(16)
2537 (8) = 010101011111(2)
010101011111(2) = 55F (16)
6
Konversi dari bilangan Hexadesimal
1. Konversi ke Desimal
Yaitu dengan cara mengalikan masing-masing bit dalam bilangan dengan position
valuenya.
Contoh :
C7(16) = …… (10)
7 x 16 0 = 7
C x 16 1 = 192 +
199(10)
2. Konversi ke Oktal
Dilakukan dengan cara merubah dari bilangan hexadesimal menjadi biner terlebih dahulu
kemudian dikonversikan ke octal.
Contoh :
55F(16) = …..(8)
55F(16) = 010101011111(2)
010101011111(2) = 2537(8)
Latihan :
Kerjakan soal berikut dengan benar !
1. Sebutkan dan jelaskan empat macam system bilangan !
2. Konversikan bilangan berikut :
a. 10101111(2) = ………….(10)
b. 11111110(2) = ………….(8)
c. 10101110101(2) = …………(16)
3. Konversi dari :
a. ACD (16) = ………(8)
b. 174 (8) = ……..(2)
7
BAB II
ARSITEKTUR MICROCONTROLLER
Mikrokontroler merupakan komputer didalam chip yang digunakan untuk mengontrol
peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara harfiah dapat
disebut sebagai “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya
banyak memerlukan komponen-komponen pendukung seperti IC TTL dan CMOS dapat
direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh mikrokontroler ini.
Mikrokonktroler digunakan dalam produk dan alat yang dikendalikan secara automatis,
seperti sistem kontrol mesin, remote control, mesin kantor, peralatan rumah tangga, alat
berat, dan mainan. Dengan mengurangi ukuran, biaya, dan konsumsi tenaga dibandingkan
desain menggunakan mikroprosesor memori dan alat input output yang terpisah, kehadiran
mikrokontroler membuat kontrol elektrik untuk berbagai proses menjadi lebih ekonomis.
Dengan penggunaan mikrokontroler ini maka:
1. sistem elektronik akan menjadi lebih ringkas,
2. rancang bangun sistem elektronik dapat dilakukan lebih cepat karena sebagian besar
sistem merupakan perangkat lunak yang mudah dimodifikasi,
3. gangguan yang terjadi lebih mudah ditelusuri karena sistemnya yang komplaks.
Namun, mikrokontroler tidak sepenuhnya dapat mereduksi komponen IC TTL dan
CMOS yang seringkali masih diperlukan untuk aplikasi kecepatan tinggi atau sekedar
menambah jumlah saluran masukan dan keluaran (I/O). Dengan kata lain, mikrokontroler
adalah versi mini atau mikro dari sebuah komputer karena mikrokontroler telah mengandung
beberapa periferal yang langsung bisa dimanfaatkan, misalnya port paralel, port serial,
komparator, konversi digital ke analog (DAC), konversi analog ke digital dan sebagainya
hanya menggunakan sistem minimum yang sederhana.
Agar sebuah mikrokontroler dapat berfungsi, maka mikrokontroler tersebut memerlukan
komponen eksternal yang kemudian disebut dengan sistem minimum. Untuk membuat
sistem minimum paling tidak dibutuhkan sistem clock danreset, walaupun pada beberapa
mikrokontroler sudah menyediakan sistem clock internal, sehingga tanpa rangkaian eksternal
pun mikrokontroler dapat beroperasi.
Untuk merancang sebuah sistem berbasis mikrokontroler, kita memerlukan perangkat
keras dan perangkat lunak, yaitu sistem minimum mikrokontroler, software pemrograman
dan kompiler, serta downloader. Yang dimaksud dengan sistem minimum adalah sebuah
8
rangkaian mikrokontroler yang sudah dapat digunakan untuk menjalankan sebuah aplikasi.
Sebuah IC mikrokontroler tidak akan berarti bila hanya berdiri sendiri. Pada dasarnya,
sebuah sistem minimum mikrokontroler AVR memiliki prinsip dasar yang sama dan terdiri
dari 4 bagian, yaitu:
1. prosesor, yaitu mikrokontroler itu sendiri,
2. rangkaian reset agar mikrokontroler dapat menjalankan program mulai dari awal,
3. rangkaian clock, yang digunakan untuk memberi detak pada CPU,
4. rangkaian catu daya, yang digunakan untuk memberi sumberdaya.
Pada mikrokontroler jenis-jenis tertentu (misalnya AVR), poin 2 dan 3 sudah tersedia di
dalam mikrokontroler tersebut dengan frekuensi yang telah diatur oleh produsen (umumnya
1MHz,2MHz,4MHz,dan 8MHz), sehingga pengguna tidak memerlukan rangkaian
tambahan. Namun bila pengguna ingin merancang sistem dengan spesifikasi tertentu
(misalnya komunikasi dengan PC atau handphone), maka pengguna harus menggunakan
rangkaian clock yang sesuai dengan karakteristik PC atau HP tersebut, biasanya
menggunakan kristal 11,0592 MHz, untuk menghasilkan komunikasi yang sesuai
dengan baud rate piranti yang dituju.
II.1 Mikrokontroler ATmega32
Mikrokontroler ATmega32 adalah mikrokontroler 8-bit keluaran Atmel dari
keluarga AVR. Pihak Atmel menyatakan bahwa AVR bukanlah sebuah akronim atau
singkatan dari suatu kalimat tertentu, perancang arsitektur AVR, Alf-Egil Bogen dan
Vegard Wollan tidak memberikan jawaban yang pasti tentang singkatan AVR ini
(http://en.wikipedia.org/wiki/Atmel_AVR). Mikrokontroler ini dirancang berdasarkan
arsitektur AVR RISC (Reduced Instruction Set Computer) yang mengeksekusi satu
instruksi dalam satu siklus clock sehingga dapat mencapai eksekusi instruksi sebesar 1
MIPS (Million Instruction Per Second) setiap 1 MHZ frekuensi clock yang digunakan
mikrokontroler tersebut. Frekuensi clock yang digunakan dapat diatur melalui fuse bits
dan kristal yang digunakan. Jika kristal yang digunakan sebesar 16 MHZ sehingga
frekuensi clock-nya sebesar 16 MHZ maka eksekusi instruksinya mencapai 16 MIPS
(Atmel, 2009).
ATmega32 memiliki fitur utama antara lain: 16K x 16 byte In-System
Programmable Flash Program memory dari alamat 0000H sampai 3FFFH. Flash
memory ini terbagi menjadi dua bagian yaitu application flash section dan boot flash
section. Data memori sebesar 2144 byte yang terbagi atas 32 general purpose register,
64 I/O register, dan 2KB internal SRAM (Static Random Access Memory), 1 KB
EEPROM (Electrically Eraseable Read Only Memory), 32 I/O pin, tiga unit
timer/counter, internal dan eksternal interrupt, USART (Universal Synchronous and
Asynchronous Receiver Transceiver), TWI (Two-wire Serial Interface), 10-bit ADC
(Analog to Digital Converter) delapan saluran, SPI (Serial Programmable Interface),
watchdog timer, dan internal clock generator. Seperti telah disebutkan di atas
ATmega32 memiliki 32 general purpose register, dan register ini terhubung langsung
dengan dengan ALU (Arithmatic Logic Unit) sehingga dua register dapat sekaligus
diakses dalam satu instruksi yang dieksekusi tiap clock-nya. Sehingga arsitektur seperti
ini lebih efisien dalam eksekusi kode program dan dapat mencapai eksekusi sepuluh
kali lebih cepat dibandingkan mikrokontroler CISC (Complete Instruction Set
Computer) (Atmel, 2009). Gambar 2.1, 2.2, dan 2.3 masing-masing menunjukkan
desain memori, susunan pin, dan arsitektur mikrokontroler ATmega32.
Gambar 2.1 susunan pin
10
Susunan Pin Atmega 32
Berikut adalah penjelasan mengenai fungsi dari tiap-tiap pin (kaki) yang ada
pada Mikrokontroler AVR ATMega 8535/16/32:
VCC: (Pin 10) merupakan pin yang berfungsi sebagai pin
masukan catu daya.
GND: (Pin 11) merupakan pin ground.
Port A (PA0-PA7): (Pin 33-40) merupakan pin I/O dua arah (bi-directional)
dan pin masukan ADC.
Port B (PB0-PB7): (Pin 1-8) merupakan pin I/O dua arah dan pin fungsi
khusus, yaitu timer/counter, komparator
analog, dan SPI.
Port C (PC0-PC7): (Pin 22-29) merupakan pin I/O dua arah dan pin fungsi
khusus, yaitu TWI, komparator analog, dan
Timer Oscilator.
Port D (PD0-PD7): (Pin 14-21) merupakan pin I/O dua arah dan pin fungsi
khusus, yaitu komparator analog, interupsi
eksternal, dan komunikasi serial.
Reset merupakan pin yang digunakan untuk me-
reset mikrokontroler.
XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
AVCC merupakan pin masukan tegangan untuk
ADC
AREF merupakan pin masukan tegangan referensi
ADC.
ATmega32 memiliki clock generator internal sehingga mikrokontroler ini dapat
bekerja langsung tanpa menggunakan clock eksternal. Sinyal clock internal yang
dibangkitkan sebesar 1 MHZ. Jadi, cukup dengan menghubungkan Vcc dan Gnd
dengan tegangan 5V DC mikrokontroler ini dapat bekerja.
Untuk membuat program untuk ATmega32 dapat digunakan WinAVR atau
AVR Studio yang dapat diperoleh secara gratis (freeware). Namun dalam
pembahasanini software yang digunakan adalah WinAVR. Program dibuat dalam
bahasa C dan menambahkan file header untuk ATmega32 yang berisi register-register
pada ATmega32. Setelah program di-compile akan menghasilkan file dengan tipe Intel
hex (.hex). File inilah yang nantinya akan di-programkan ke ATmega32 melalui
interface bsd programmer (Brian Dean's Programmer) yang terhubung ke komputer
melalui port paralel.
II.2 Arduino Mega
Gambar 2.3 Arduino Mega
Controller yang kita gunakan pada kegiatan ini adalah Arduino Mega, dimana
Arduino Mega merupakan microcontroller yang berbasis pada Atmega
1280.Arduino Mega memiliki 54 pin input/ output digital(dimna 14 pin
digunakan sebagai output PWM), 16 input analog, 4 UART(port serial hardware),
16 MHz crystal oscillator,konektor USB, power jack, ICSP header, dan
tombol reset.
Arduino Mega memiliki spesifikasi sebagai berikut :
Microcontroller ATmega2560
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 54 (of which 15 provide PWM output)
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
Length 101.52 mm
Width 53.3 mm
12
Weight 37 g
Gambar 2.3 Sususan Pin Arduino Mega 2560
Susunan Pin Arduino Mega
2560
Berikut adalah penjelasan mengenai fungsi dari tiap-tiap pin (kaki) yang
ada pada Mikrokontroler Arduino Mega 2560:
VCC: (Pin 3.3v dan 5v) merupakan pin yang berfungsi
sebagai pin masukan catu daya.
GND: (Pin GND) merupakan pin ground.
Port A (PA0-PA7): (Pin Digital
22-29)
merupakan pin I/O dua arah
(bidirectional) dan pin masukan ADC.
Port B (PB0-PB7): (Pin Digital 50-
53 dan Pin PWM 10-13)
merupakan pin I/O dua arah dan pin
fungsi khusus, yaitu timer/counter,
komparator analog, dan SPI.
Port C (PC0-PC7): (Pin Digital 30-
37)
merupakan pin I/O dua arah dan pin
fungsi khusus, yaitu TWI,
komparator analog, dan Timer
Oscilator.
Port D (PD0-PD3 dan PD7): (Pin
Digital 38 dan Pin Communication
18-21)
merupakan pin I/O dua arah dan pin
fungsi khusus, yaitu komparator
analog, interupsi eksternal, dan
komunikasi serial.
Port E (PE0-PE1 dan PE3-PE5) (Pin TX-RX dan Pin PWM 2,3 dan
14
5)
Port F (PF0-PF7) (Pin Analog 0-7)
Port G (PG0-PG2 dan PG5) (Pin Digital 39-41 dan Pin PWM 4)
Port H (PH0-PH1) (Pin Communication 16-17)
Port J (PJ0-PJ1) (Pin Communication 14-15)
Port K (PK0-PK7) (Pin Analog 8-15)
Port L (PL0-PL7) (Pin Digital 42-49)
Reset merupakan pin yang digunakan
untuk me-reset mikrokontroler. o.
AREF merupakan pin masukan tegangan
referensi ADC
II.3 Perbedaan Ardino dan Microcontrol ATMEGA 32
Mikrokontrol ATMega32 adalah sebuah modul elektronika yang berdasar
pada rangkaian sistem minimum mikrokontroler AVR (sismin AVR) ATMEGA32.
Modul ini pun dapat digunakan sebagai sistem minimum mikrokontroler AVR
lain yang pin-pin-nya bersesuaian dengan mikrokontroler ATMEGA32. Modul
sistem minimum mikrokontroler AVR ini telah dilengkapi dengan beberapa fitur
yang dapat mempermudah proses pembelajaran atau proses “troubleshooting”
pemrograman.
Arduino Mega adalah board mikrokontroler berbasis Atmega2560.
Mega memiliki 44 pin digital input / output (dimana 12 dapat digunakan sebagai
output PWM), 16 input analog, resonator keramik 16 MHz, koneksi USB, jack
listrik, header ICSP, dan tombol reset. Mega dibangun berdasarkan apa yang
diperlukan untuk mendukung mikrokontroler, sumber daya bisa menggunakan
power USB (jika terhubung ke komputer dengan kabel USB) dan juga dengan
adaptor atau baterai.
II.4 Sistem Minimum Mikrokontroler
Sistem Minimum Mikrokontroler adalah sebuah rangkaian paling sederhana
dari sebuah mikrokontroler agar IC mikrokontroler tersebut bisa beroperasi dan
diprogram. Dalam aplikasinya sistem minimum sering dihubungkan dengan
rangkaian lain untuk tujuan tertentu. Ada beberapa yang harus diperhatikan dalam
membuat sistem minimum mikrokontroler, yaitu:
1. Power Supply
Semua komponen elektronika membutuhkan power supply atau sering
juga disebut catu daya. Mikrokontroler beroprasi pada tegangan 5 volt. Biasanya
pembuatan catu daya mikrokontroler menggunakan IC regulator 7805 agar
tegangannya bisa stabil.
Gambar 2.4 LM7805
2. Osilator (Pembangkit Frekuensi)
Pada dasarnya mikrokontroler memiliki sifat seperti manusia. Kalau
manusia memiliki jantung untuk bisa hidup maka mikrokontroler memiliki
osilator untuk bisa beroprasi. Mikrokontroler sendiri sudah memiliki osilator
internal yaitu sebesar 8Mhz tetapi kadang kala agar kinerja mikronkontroler lebih
cepat osilator internal tidak bisa menangani kasus tersebut. Oleh karena itu
dibutuhkan osilator eksternal (kristal) yang nilainya lebih dari 8Mhz. Perlu
diperhatikan mikrokontroler hanya bisa beroprasi sampai 16 Mhz. jadi kalau
memilih krsital untuk AVR tidak boleh lebih dari 16Mhz.
3. ISP (In-System Programmable)
Sistem Minimum Mikrokontroler dibuat untuk di program. Prinsipnya
mikrokontroler bisa diprogram secara parallel atau secara seri. Pemrograman
mikrokontroler secara seri atau lebih dikenal dengan ISP tidak perlu memerlukan
banyak jalur data. Tapi ISP memiliki kelemahan, jika salah setting fuse bit yang
memiliki fungsi fital misal pin reset di disable maka alamat DEH sudah tidak bisa
digunakan lagi. Untuk mengembalikan settingan fuse bit tadi, harus menggunakan
pemrograman tipe parallel (high voltage programming).
Gambar 2.6 Settingan Port ISP
4. Rangkaian Reset
Rangkaian reset sama fungsinya dengan rangkaian reset pada komputer.
Fungsi reset di mikrokontroler yaitu untuk merestart program, sehingga kembali
ke program awal. Penggunaan reset pada mikrokontroler opsional, bisa di pake
atau nggak tergantung si pengguna.
Gambar 2.7 rangkaian reset
II.4 Komponen Mikro
II.4.1 LED
LED adalah salah satu komponen output dasar pada elektronika yang sering
digunakan pada project belajar pertama dalam mata kuliah pemrograman mikrokontroler
atau mikroprosesor. Program running led adalah program dimana led akan menyala
bergantian dari salah satu port ke port selanjutnya.
Gambar 2.8 LED
II.4.2 LCD
LCD atau Liquid Crystal Display, merupakan suatu display ( penampil ) berbahan
cairan kristal yang dioperasikan menggunakan system dot matriks. LCD banyak ditemui
dibeberapa alat elektronik, seperti meltitester digital, kalkulator, jam digital, dan lain-lain.
Pada LCD 16x2 karakter yaitu maksudnya 16 kolom dan 2 baris.
Gambar 2.9 LCD
II.4.3 MOTOR
II.4.3.1 Motor DC
Motor DC memerlukan suplai tegangan yang searah pada kumparan medan
untuk diubah menjadi energi mekanik. Bagian utama motor DC adalah statos dan rotor
dimana kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan
kumparan jangkar disebut rotor (bagian yang berputar). Bentuk motor paling sederhana
memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutub-kutub magnet
permanen.
Gambar 2.10 Motor DC
Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh
komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan
pada gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan untuk
komponen yang berputar di antara medan magnet.
Mekanisme kerja untuk seluruh jenis motor secara umum :
Arus listrik dalam medan magnet akan memberikan gaya.
Jika kawat yang membawa arus dibengkokkan menjadi sebuah lingkaran / loop,
maka kedua sisi loop, yaitu pada sudut kanan medan magnet, akan mendapatkan
gaya pada arah yang berlawanan.
Pasangan gaya menghasilkan tenaga putar / torque untuk memutar kumparan.
Motor-motor memiliki beberapa loop pada dinamonya untuk memberikan tenaga
putaran yang lebih seragam dan medan magnetnya dihasilkan oleh susunan
elektromagnetik yang disebut kumparan medan.
II.4.3.2. Motor servo
Motor servo adalah sebuah motor dengan sistem closed feedback di mana posisi
dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor
servo. Motor ini terdiri dari sebuah motor, serangkaian gear, potensiometer dan rangkaian
kontrol. Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo.
Sedangkan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang dikirim
melalui kaki sinyal dari kabel motor.
Gambar 2.11 Motor Servo
Tampak pada gambar dengan pulsa 1.5 mS pada periode selebar 2 mS maka sudut
dari sumbu motor akan berada pada posisi tengah. Semakin lebar pulsa OFF maka akan
semakin besar gerakan sumbu ke arah jarum jam dan semakin kecil pulsa OFF maka akan
semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam. Motor servo
biasanya hanya bergerak mencapai sudut tertentu saja dan tidak kontinyu seperti motor
DC maupun motor stepper. Walau demikian, untuk beberapa keperluan tertentu, motor
servo dapat dimodifikasi agar bergerak kontinyu. Pada robot, motor ini sering digunakan
untuk bagian kaki, lengan atau bagianbagian lain yang mempunyai gerakan terbatas dan
membutuhkan torsi cukup besar.
Pulsa Kendali Motor Servo
Gambar 2.12 Pulsa kendali Motor Servo
Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan
sinyal PWM dengan frekuensi 50 Hz. Dimana pada saat sinyal dengan frekuensi 50 Hz
tersebut dicapai pada kondisi Ton duty cycle 1.5 ms, maka rotor dari motor akan berhenti
tepat di tengah-tengah (sudut 0°/ netral).
II.5 SENSOR
II.5.1 Sensor Suhu LM35
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi
untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan.
Gambar 2.13 Sensor Suhu LM35
II.5.2 Sensor ULTRASONIC (Sonic Range Finders)
Sensor ultrasonic adalah komponen elektronika yang dapat mengubah energy
listrik menjadi energy mekanik dalam bentuk gelombang suara ultrasonic dan
sebaliknya. Gelombang suara ultrasonic adalah gelombang suara yang tidak dapat
didengar oleh manusia secara normal karena frekuensi gelombang ultrasonic
diatas 20KHz.
Gelombang ultrasonic daeri sensor dari sensor yang berfungsi sebagai
transmitter dan diterima oleh sensor lain yang berfungsi sebagai receiver.
Gambar 2.14 Sensor Ultrasonic
II.5.2 Sensor PIR (PASSIVE INFRA RED)
Sensor PIR (Passive Infra Red) adalah sensor yang digunakan untuk
mendeteksi adanya pancaran sinar infra merah. Sensor PIR bersifat pasif,
artinya sensor ini tidak memancarkan sinar infra merah tetapi hanya menerima
perancangan detektor gerakan berbasis PIR. Karena semua benda
memancarkan energi radiasi, sebuah gerakan akan terdeteksi ketika sumber
infra merah dengan suhu tertentu (misal: manusia) melewati sumber infra merah
yang lain dengan suhu yang berbeda (misal: dinding), maka sensor akan
membandingkan pancaran infra merah yang diterima setiap satuan waktu,
sehingga jika ada pergerakan maka akan terjadi perubahan pembacaan pada
sensor.
Gambar 2.15 Sensor PIR
II.5.3 KEYPAD
Keypad Matriks adalah tombol-tombol yang disusun secara maktriks (baris x kolom) sehingga dapat mengurangi penggunaan pin input. Sebagai contoh, Keypad Matriks 4×4 cukup menggunakan 8 pin untuk 16 tombol. Hal tersebut dimungkinkan karena rangkaian tombol disusun secara horizontal membentuk baris dan secara vertikal membentuk kolom:
Gambar 2.16 KEYPAD
23
BAB III
SIMULASI MIKRO KONTROLER
3.1 Pengenalan Bahasa C dan Software CVAVR
3.1.1 Struktur Bahasa C pada CVAVR
Penggunaan mikrokontroler yang diterapkan di berbagai alat rumah
tangga, otomotif, sampai dengan kendali, membuat mikrokontroler mulai masuk
didunia pendidikan. Banyak varian dan type dari mikrokontroler yang dipelajari
dan digunakan di dunia pendidikan. Salah satu varian yang banyak dipelajari dan
digunakan adalah produk dari ATMEL dengan type keluarga AVR. Banyak
software yang dapat digunakan untuk memprogram mikrokontroler keluarga
AVR, dengan bahasa pemrograman masing-masing.
Salah satu bahasa pemrograman yang dikembangkan atau digunakan dunia
pendidikan adalah bahasa C dengan struktur dan kemudahan yang dimilikinya.
Perkembangan bahasa pemrograman yang dimulai dari bahasa tingkat rendah
(bahasa assembly/bahasa mesin) sampai dengan bahasa tingkat tinggi (salah
satunya bahasa C). Bagi mikrokontroler bahasa assembly merupakan bahasa yang
mudah untuk diterjemahkan bagi prosesornya, sehingga dikatakan sebagai bahasa
tingkat rendah. Sedangkan bahasa tinggkat tinggi merupakan bahasa yang sulit
diterjemahkan oleh prosesor yang ada di didalam mikrokontroler. Pemilihan
bahasa C sebagai bahasa pemrograman untuk mikrokontroler dikarenakan mudah
dipahami dan diterjemahkan bagi user atau programmer.
Bahasa C memiliki struktur pemrograman yang khusus, selain itu bahasa
C memiliki sifat case sensitive. Artinya tersebut adalah bahwa penulisan
kata/word program sangat sensitif dengan mendeteksi perbedaan kapital tidaknya
huruf yang digunakan. Satu huruf yang berbeda pada satu kata yang diulang,
menyebabkan software tidak akan bisa meng-compile seluruh program yang
dibuat.
Setiap bahasa pemrograman memiliki type data masing-masing. Type data
merupakan jangkauan suatu data yang mampu/dapat dikerjakan/diolah oleh
mikroprosesor dalam program yang dibuat. Penggunaan type data ini juga harus
sesuai kebutuhan dan disesuaikan dengan fungsi setiap data. Pemilihan
penggunaan type data dapat mempengaruhi besarnya memory file yang dibuat.
Berikut daftar type data yang dapat digunakan dalam pemrograman bahasa C ;
Penggunaan type data bersamaan dengan variable data yang akan
digunakan. Penulisan type data sesuai struktur dapat dilihat sebagai berikut:
bit data_1; => terdapat variable dengan nama data_1 dengan type data bit
int data_2; => terdapat variable dengan nama data_2 dengan type data integer
Selain tipe data, bahasa C memiliki struktur penulisan akan simbol-simbol operasi
aritmatik. Setiap penggunaan simbol-simbol aritmatik memiliki fungsi masing-
masing. Berikut table simbol-simbol aritmatik yang digunakan dalam bahasa C ;
Instruksi-instruksi bahasa pemrograman yang ada pada bahasa C tidak
semuanya digunakan dalam pemrograman mikrokontroler. Struktur dan urutan
penulisan program hampir sama untuk keduanya. Struktur bahasa C memiliki
kepala program, dan tubuh program, sedangkan tubuh program bisa terdiri dari
induk program dan anak program. Berikut struktur sederhana dari pemrograman
bahasa C.
Penggunaan struktur penulisan bahasa pemrograman bahasa C dapat
terusun dari sebuah tubuh program yang dapat terdiri dari sebuah induk program
dan satu atau lebih anak program. Anak program memiliki fungsi untuk
mengerjakan satu blok program yang sering digunakan secara berulang-ulang.
Anak program akan diakses oleh induk program sesuai dengan kebutuhan akan
sub bagian program tersebut. Sedangkan kepala program berfungsi untuk
menyertakan file acuan/library guna mengolah (Compile/Build) program yang
telah dibuat. Penulisan struktur bahasa C didalam CVAVR dapat dilihat seperti
dibawah ini :
Deklarasi sebuah variable dapat digolongkan menjadi dua, yaitu local
variable dan global variable. Local variable dipakai dan hanya dapat diakses pada
sub program tempat mendeklarasikannya, sedangkan global variable dipakai dan
dapat diakses seluruh bagian program. Inisialisasi PORT digunakan untuk
memfungsikan PORT yang dituju sebagai masukan/keluaran serta nilai
defaultnya. Sedangkan bagian sub rutin adalah blok program yang akan selalu
dikerjakan terus-menerus oleh mikroprosesor selama mikrokontroler hidup.
Beberapa Instruksi-instruksi dalam bahasa C yang sering digunakan dapat ditulis
sebagai berikut :
3.1.2 Pengenalan Software Code Vision AVR (CVAVR)
CodeVisionAVR merupakan sebuah cross-compiler C, Integrated
Development Environtment (IDE), dan Automatic Program Generator yang
didesain untuk mikrokontroler buatan Atmel seri AVR. Cross-compiler C mampu
menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang
diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk
mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem
embedded.
CodeVisionAVR juga mempunyai Automatic Program Generator bernama
CodeWizardAVR, yang mengizinkan Anda untuk menulis, dalam hitungan menit,
semua instruksi yang diperlukan untuk membuat beberapa fungsi-fungsi tertentu.
Dengan fasilitas ini mempermudah para programmer pemula untuk belajar
pemrograman mikrokontroler menggunakan CVAVR. Secara garis besar bagian-
bagian CVAVR dapat diuraikan seperti gambar berikut ini ;
Gambar 3.1 Tampilan awal CVAVR
Untuk memulai menulis program didalam software CVAVR terlebih dahulu
melakukan langkahlangkah sebagai berikut:
1. File => New => Pilih Project.
Gambar 3.2 New Project
2. Selanjutnya akan muncul window konfirmasi menggunakan AGP CodeWizardAVR =>
Yes.
Gambar 3.3 Klik Yes
3. Window CodeWizardAVR digunakan untuk pengaturan PORT dan fasilitas sesuai
dengan fungsi yang diinginkan.
Gambar 3.4 Window pengaturan port
4. Setelah selesai dengan pengaturan pada CodeWizardAVR pilih File => Generate,
Save and
exit (catatan: pemeberian nama file sebanyak 3x; dengan nama file yang sama;
hindari kalimat yang panjang, capital dan spasi).
5. Selesai pemberian nama file, akan muncul window utama editor program seperti
berikut.
Gambar 3.5 Tampilan editor program
Beberapa langkah instruksi diatas akan sering dilakukan apabila setiap ingin
membuat project baru. Untuk itu, langkah-langkah pembuatannya harus dihafal
dan dipahami.
31
3.2 Pengenalan Program ISIS Proteus
Proteus merupakan gabungan dari program ISIS dan ARES. Dengan
penggabungan kedua program ini maka skematik rangkaian elektronika dapat dirancang
serta disimulasikan dan dibuat menjadi layout PCB.
ISIS Singkatan dari Intelligent Schematic Input System dan merupakan salah satu
program simulasi yang terintegrasi dengan Proteus dan menjadi program utamanya. ISIS
dirancang sebagai media untuk menggambar skematik rangkaian elektronik yang sesuai
dengan standart internasional. Dalam ISIS juga dimasukkan sebuag program ProSPICE
yang berguna untuk menyimulasikan skematik rangkaian, sehingga ISIS dapat menjadi
program simulator rangkaian elektronika yang interaktif. ProSPICE dirancang
berdasarkan standar bahasa pemrograman SPICE3F5, sehingga mampu mensimulasikan
rangkaian gabungan dari komponen analog dan digital secara interaktif yang dikenal
dengan istilah Interactive Mixed Mode Circuit Simulator.
ISIS dapat menyimulasikan berbagai jenis mikroprosesor dan mikrokontroler,
termasuk mikrokontroler keluarga AVR. Diharapkan dengan menggunakan program
simulasi ini maka perancangan rangkaian berbasis mikrokontroler dapat lebih mudah
dilakukan serta mengurangi biaya produksi dan menghemat waktu. ISIS dilengkapi
program compiler, sehingga dapat mengkompilasi file kode sumberseperti Assembly
menjadi file Hex sehingga nantinya dapat digunakan oleh mikrokontroler yang
sebenarnya.
Mikrokontroler AVR adalah perangkat keras yang dapat deprogram cara
kerjanya dan dapat digunakan untu berbagai keperluan. Mikrokontroler AVR
mempunyai aturan-aturan serta bahasa pemrograman yang khusus, maka ada
baiknya dalam mempelajari cara kerja dan fungsi dari mikrokontroler ini kita
menggunakan program simulasi mikrokontroler ISIS.
3.2.1 Screen Layout pada ISIS
Screen layout pada ISIS Proteus berisi beberapa elemen dasar berikut:
Gambar 3.6 Screen layout program ISIS
Title Bar
Title bar berada pada posisi yang paling atas dalam screen layout ISIS Proteus. Title bar
berisi informasi mengenai nama file yang sedang aktif dan juga menunjukkan apakah animasi
simulasi sedang berjalan atau tidak.
Menu Bar
Menu bar berada tepat di bawah title bar dan merupakan menu utama dari ISIS, karena
pada menu bar terdapat perintah dari hampir seluruh fungsi yang ada pada ISIS Proteus. Dalam
menu bar terdapat beberapa menu utama yaitu File, View, Edit, Tools Design, Graph, Source,
Debug, Library, Template, System dan Help
Toolbars
Sama seperti program aplikasi berbasis sistem operasi Microsoft Windows yang lainnya,
program ISIS juga menyediakan fasilitas untuk mengakses dengan cepat perintah tertentu melalui
ikon-ikon yang terdapat pada toolbar. Toolbar yang disedakan ISIS ada tiga jenis yaitu Command
33
Command Toolbar
Command toolbar berada pada bagian atas screen layout dan merupakan akses alternatif
dari menu bar. Pada command toolbar terdapat 4 subtoolbar lagi yaitu File, View, Edit dan
Design.
Mode Selector Toolbar
Mode Selector Toolbar dilokasikan pada sudut kiri bawah dari screen layout. Ada 3 jenis
mode selector toolbar yang disediakan oleh ISIS yaitu Main Modes, Gadget, 2D Graphics. Mode
toolbar tidak dapat disembunyikan dan fungsi-fungsinya tidak terdapat pada menu bar.
Orientation Toolbar
Orientation toolbar berguna untuk menampilkan dan mengontrol arah rotasi dan refleksi
objek yang diletakkan pada lembar kerja. Komponen yang akan diubah arahnya harus diseleksi
atau ditandai terlebih dahulu sebelum diubah arahnya. Komponen yang telah dipilih tersebut
akanberubah warnanya, biasanya berwarna merah. Proses penyeleksian komponen dikenal
dengan istilah Tag.
Window Editing
Window editing mempunyai daerah atau area yang paling besar pada screen layout ISIS.
Window editing akan menampilkan lembar kerja yang menjadi tempat untuk mengambar,
mengedit dan menyimulasikan skematik rangkaian. Window editing bias di-redraw (refresh)
dengan menggunakan perintah Redraw yang berada pda menu View.
Window Overview
Window overview berada pada bagian kiri atas dari screen layout ISIS, tepatnya berada
di samping kiri atas window editing dan di atas object selector. Window overview biasanya
berfungsi untuk merepresentasikan objek atau komponen yang terdapat pada window editing.
Object Selector
Object selector berada di sisi kiri window editing dan di bawah window overview. Object
selector biasanya digunakan untuk menyimpan berbagai jenis komponen, terminal, generator,
graph dan objek yang lainnya sebelum diletakkan pada window editing.
Kontrol Panel Animasi
Kontrol panel animasi berada pada di sudut kiri bawah screen layout. Kontrol panel
animasi berguna untuk menjalankan dan menghentikan simulasi rangkaian.
3.2.2 Memulai Program ISIS
=>Melalui Start/Program/Proteus 7 Professional/ISIS 7 profesioanal.
=>Setelah program dijalankan maka tampil screen layout ISIS:
Gambar 3.7 Tampilan awal proteus
=>Membuat Title Block, File | New Design. Kemudian pilihlah lembar kerja Landscape
A4 kemudia klik OK.
Gambar 3.8 Tampilan membuat file
Pada title block intinya berisi informasi yang berkaitan dengan desain skematik
rangkaian yang sedang aktif. Properti pada title block dapat diisi sesuai dengan kebutuhan
desain skematik rangkaian yang dirancang.
Untuk dapat mengedi properti title block, klik menu Design | Edit Design
Properties. Pada kotak isian Title ketikkan judul rangkaian sesuai dengan keinginan,
misalnya INPUT OUTPUT. Pada kota Author ketikkan nama Anda. Kotak isian Doc.
No: biasanya diisi dengan nomor dokumen. Anda dapat mengisi kotak yang lainnya
sesuai kebutuhan. Setelah kotak isian selesai dilakukan maka klik tombol OK.
Gambar 3.9 Desaign properties
Perhatikanlah perubahan yang terjadi pada title block. Bila title block tidak
berubah maka klik menu View/Redraw agar perubahan dapat diaplikasikan.
3.3 PEMROGRAMAN PORT INPUT DAN OUTPUT MENGGUNAKAN
PROTEUS
3.3.1 Tujuan
Setelah praktikum selesai dilakukan peserta harus dapat :
Memahami cara mengeluarkan data ke port output di proteus
Membuat program untuk mengirim data ke port di proteus
Mensimulasikan LED menggunakan simulator proteus
3.3.2 Langkah percobaan pengiriman data ke port Output
3.3.3 Kebutuhan yang diperlukan
Atmega32
LED 8.
Catu Daya.
Hubungkan sesuai gambar rangkaian.
3.3.4 Gambar Rangkaian
Gambar 2.10 Rangkaian Pemrograman Ke Port
Output
37
3.3.5 Pin yang dihubungkan
LED
Port LED Port Atmega
LED1 2
LED2 3
LED3 4
LED4 5
LED5 6
LED6 7
LED7 8
LED8 9
GND GND
3.3.6 Program Proses ini menerangkan tentang mengeluarkan data ke port output dan akan
disimulasikan di proteus, bisa di jelaskan output dalam program ini terdapat pada Port E, G
dan H yang diberi nilai output (&B00000000) dan (&B11111111)
3.3.7 Algoritma
#include <mega32.h> #include <delay.h> void main(void) { PORTH=0x00; DDRH=0x20; while (1) { PORTA.1 = 1; PORTA.0 = 0 ; // led mati delay_ms(100);
PORTA.1 = 0; PORTA.0 = 1; // led nyala delay_ms(50); } }
3.4 Pemrograman LCD ( Liquid Crystal Display ) Menggunakan Proteus
3.4.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara menampilkan data di LCD menggunakan Proteus
Membuat program untuk menampilkan data di LCD
Mensimulasikan LCD menggunakan simulator Proteus
3.4.2 Pemrograman LCD
3.4.2.1 Kebutuhan yang diperlukan
LCD ( Liquid Crystal Display ) 16 x 2.
Arduino Mega
Catu Daya.
Hubungkan sesuai gambar rangkaian.
3.4.2.2 Gambar Rangkaian
a. Rangkaian LCD
Gambar 3.11LCD 2 X 16
b. Gambar Rangkaian
Gambar 3.12 Rangkaian LCD dihub ungakan ke Port Arduino Mega
39
Penjelasan Tiap Kaki LCD Nama Pin Deskripsi
GND 0V VCC +5V VEE Kontras LCD RS Register Select R/W 1 = Read ; 0 = Write EN Enabel LCD, 1= enable D0 Data Bus 0 D1 Data Bus 1 D2 Data Bus 2 D3 Data Bus 3 D4 Data Bus 4 D5 Data Bus 5 D6 Data Bus 6 D7 Data Bus 7 Anoda Anoda Backlight LED
3.4.2.2 Pin yang dihubungkan
LCD
Pin LCD Port Arduino Pin LCD Port Arduino
3.4.2.3 Algoritma #include <delay.h> // Alphanumeric LCD functions #include <alcd.h> while (1) { lcd_gotoxy(0,0);
lcd_putsf("ALFIYAN");
delay_ms(1000);
} }
BAB IV
PEMROGRAMAN LED, LCD DAN BUZZER MENGGUNAKAN ARDUINO
4.1 ARSITEKTUR ARDUINO
4.1.1 Aplikasi pemrograman “Arduino 1.6.5”
Gambar 4.1 Logo IDE Arduino
Aplikasi Arduino merupakan software gratis yang dapat diunduh dari situs
“www.arduino.cc/en/main/software ”. Program ini dapat dijalankan pada sistem operasi
Mac OS, Windows, dan Linux.
Aplikasi Arduino menggunakan bahas pemrograman C/C++,dimana Perintah
pemrograman arduino dapat dibagi menjadi tiga bagian yaitu struktur
,Value/Varibel, dan fungsi.
Arduino adalah sebuah platform open source (sumber terbuka) yang
digunakan untuk membuat proyek-proyek elektronika. Arduino terdiri dari dua bagian
utama yaitu sebuah papan sirkuit fisik (sering disebut juga dengan mikrokontroler) dan
sebuah perangkat lunak atau IDE (Integrated Development Environment) yang berjalan
pada komputer. Perangkat lunak ini sering disebut Arduino IDE yang digunakan untuk
menulis dan meng-upload kode dari komputer ke papan fisik (hardware) Arduino.
Ketika membicarakan Arduino maka ada dua hal yang terlintas dalam pikiran para
penggunanya, yaitu hardware dan software. Dua bagian ini seakan satu kesatuan
utuh yang tidak bisa di pisahkan.
Struktur Variabel Fungsi I/O
setup()
loop()
Control Structures
if
Konstan
HIGH | LOW
INPUT | OUTPUT |
INPUT_ PULLUP
Digital pinMode()
digitalWrite()
digitalRead() Analog
I/O analogReference()
41
if...else for
switch case
while
do... while
break continue
return
goto
Syntax Lebih
Lanjut
; (semicolon)
{} (curly braces)
// (single line comment)
/* */ (multi-line
comment)
#define
#include
Operator
Aritmatika
= (operator penetapan)
+ (penjumlahan)
- (pengurangan)
* (perkalian)
/ (pembagian)
% (modulo)
Operator
Pembanding
== (sama dengan)
!= (tidk sama dengan)
< (kurang dari)
> (lebih dari)
<= (kurang dari sama
dengan)
>= (lebih dari sama
dengan)
LED_BUILTIN
true | false
integer constants
floating point constants
Tipe Data
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
short
float
double
string - char array
String - object
array
Konversi
char()
byte()
int()
word()
long()
float()
Jangkuan Variabel dan
Qualifier
variable scope
static
volatile
const
Utilities
analogRead()
analogWrite() - PWM Due
& Zero
analogReadResolutio n()
analogWriteResolutio n()
Advanced I/O
tone()
noTone()
shiftOut()
shiftIn()
pulseIn() Time
millis()
micros()
delay()
delayMicroseconds()
Matematik
min()
max() abs()
constrain()
map() pow()
sqrt()
Trigonometri
sin()
cos() tan()
Karakter
isAlphaNumeric()
isAlpha() isAscii()
isWhitespace() isControl()
isDigit() isGraph()
isLowerCase()
isPrintable()
isPunct() isSpace()
isUpperCase()
isHexadecimalDigit()
Angka Acak/Random
42
Operator Boolean
&&(And)
||(or)
!(not)
Operators Akses
Pointer
* dereference operator
& reference operator
Operator Bitwise
& (bitwise and)
| (bitwise or)
+= (compound
penambahan)
-= (compound
pengurangan)
*= (compound
perkalian)
/= (compound
pembagian)
%= (compound modulo)
&= (compound bitwise
and)
|= (compound bitwise or)
^ (bitwise xor)
~ (bitwise not)
<< (bitshift kiri)
>> (bitshift
Operator
Gabungan/Compou nd
++ (bertambah)
-- (berkurang)
sizeof()
PROGMEM
randomSeed() random()
Bit dan Byte
lowByte()
highByte()
bitRead()
bitWrite() bitSet()
bitClear() bit()
External
Interrupt
attachInterrupt()
detachInterrupt()
Interrupt interrupts()
noInterrupts()
Komunikasi Serial
Stream
USB (hanya 32u4
based boards and
Due/Zero) Keyboard
Mouse
4.2 Pemrograman LED
4.2.1 TUJUAN
Setelah praktikum selesai dilakukan peserta harus dapat :
Memahami cara mengeluarkan data ke port output
Membuat program untuk mengirim data ke port
4.2.2 Langkah percobaan pengiriman data ke port Output
4.2.3 Langkah percobaan I mengirim data ke port Output
Hubungkan ARDUINO MEGA 2560 dengan Downloader.
Hubungkan ARDUINO MEGA 2560 dengan PC menggunakan USB
Printer.
Hubungkan ARDUINO MEGA 2560dengan sumber tegangan.
Ketikkan program, pada editor program IDE ARDUINO MEGA
2560, kemudian compile dan download ke ARDUINO MEGA 2560, dan amati
hasilnya.
4.2.4 Gambar Rangkaian LED
Gambar 4.2 Rangkaian Pemrograman Ke
Port Output LED
44
4.2.5 Program
Proses ini menerangkan tentang mengeluarkan data ke port output yang
bisa di jelaskan output dalam program ini terdapat pada Port E,G dan H (pin 2-
9). Semua pin menyala selama setengah detik
4.2.6 Algoritma
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(200);
}
4.3 Pemrograman LCD ( Liquid Crystal Display )
4.3.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara menampilkan di LCD
Membuat program untuk menampilkan data di LCD
4.3.2 Pemrograman di LCD
4.3.3 Langkah Pecobaan
Hubungkan port D/C Arduino Mega dengan “Port Output LCD
Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan
download ke Arduino Mega, dan amati hasilnya.
4.3.4 Gambar Rangkaian
a. Gambar Rangkaian LCD
Gambar 4.3
LCD 2 X 16
b. Gambar Skematik LCD
Gambar 4.4 Rangkaian LCD dihubungakan
ke Port Arduino Mega
Penjelasa pin LCD
No. Nama Pin Deskripsi
GND 0V
VCC +5V
VEE KONTRAS LCD
RS REGISTER SELECT
R/W 1 = READ, 0 = WRITE
EN ENABLE LCD, 1 = ENABLE
D0 DATA BUS 0
D1 DATA BUS 1
D2 DATA BUS 2
D3 DATA BUS 3
D4 DATA BUS 4
D5 DATA BUS 5
D6 DATA BUS 6
D7 DATA BUS 7
Anoda ANODA BACKLIGHT LED
Katoda KATODA BACKLIGHT LED
47
4.3.5 PIN YANG DIHUBUNGKAN :
LC
PinLCD Pin Arduino Pin LCD Pin Arduino 1 GN 9 -
2 VCC (5V) 10 -
3 - 11 24
4 22 12 25
5 - 13 26
6 23 14 27
7 - 15 VCC (5V)
8 - 16 GN
4.3.6 Program
Pada layar LCD mucul tulisan “TES” dengan durasi selama 5 detik.
4.3.7 ALGORITMA
#include <LiquidCrystal.h>
LiquidCrystal lcd(22,23,24,25,26,27);
void setup() {
// put your setup code here, to run once:
lcd.begin(16,2);
}
void loop() {
// put your main code here, to run repeatedly:
int i;
lcd.setCursor(0,0);
lcd.print(" TES ");
delay(5000);
}
}
4.4 Pemrograman BUZZER
4.4.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara membunyikan BUZZER
Membuat program untuk membunyikan BUZZER
4.4.2 Pemrograman di BUZZER
4.4.3 Langkah Pecobaan
Hubungkan port D/C Arduino Mega dengan “Port Output BUZZER
Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan
download ke Arduino Mega, dan amati hasilnya.
4.4.4 Gambar Rangkaian BUZZER
a. Gambar Rangkaian
Gambar 4.5 BUZZER
b. Gambar Skematik
Gambar 4.5 Skematik BUZZER
Penjelasa pin BUZZER
No. Nama Pin Deskripsi
GND 0V
D30 OUTPUT
4.4.5 PIN YANG DIHUBUNGKAN :
BUZZER
PinLCD Pin Arduino Pin Pin Arduino
1 GND GND -
2 D0 30 -
49
4.4.6 Program
Pada BUZZER akan bunyi selama 1 detik dan mati selama 1 detik.
4.4.7 ALGORITMA
void setup() {
// put your setup code here, to run
once:
pinMode(30, OUTPUT);
}
void loop() {
// put your main code here, to run
repeatedly:
digitalWrite(30, HIGH);
delay(1000);
digitalWrite(30, LOW);
delay(1000);
}
MODUL V PROGRAM MOTOR
DAN SENSOR
5.1 Pemrograman Motor Servo
5.1.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara membaca data dari Motor Servo
Membuat program untuk membaca data Motor Servo
5.1.2 Langkah Pecobaan
Hubungkan port L Arduino Mega dengan “Port Output Rangkaian Motor
Servo Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan
download ke Arduino Mega, dan amati hasilnya.
5.1.3 Gambar Rangkaian
Gambar 5.1 Rangkaian Minimum System
dengan Motor Servo
51
5.1.4 Program
Servo pada pin 48 awalnya pada 0 Derajat berputar 180
Derajat dengan kecepatan (25)
5.1.5 Algoritma
#include <Servo.h> //Library motor servo
int servoPin = 48; //pin motor servo pada Arduino
Servo servo; //inisialisasi perangkat motor servo
int angle = 0; // posisi servo dalam derajat
void setup()
{
servo.attach(servoPin); //melampirkan pin sinyal motor
servo
}
void loop()
{
// scan from 0 to 180 degrees for(angle
= 0; angle < 180; angle++)
{
servo.write(angle);
delay(25);
}
52
5.2 PROGRAM SENSOR ULTRASONIC (SRF)
5.2.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara membaca data dari SRF
Membuat program untuk membaca data SRF
5.2.2 Langkah Pecobaan
Hubungkan port C Arduino Mega 2560 dengan “Port Output Rangkaian
SRF Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega 2560 dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega 2560 dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download
ke Arduino Mega 2560, dan amati hasilnya.
5.2.3 Langkah Pecobaan
Hubungkan port E, G, dan H Arduino Mega 2560 dengan “Port Output
Rangkaian LED Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega 2560 dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega 2560 dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download ke
Arduino Mega 2560, dan amati hasilnya
5.2.4 Gambar Rangkaian
a. Gambar Rangkaian sensor SRF
Gambar 5.2 Rangkaian Minimum System
dengan SRF
5.2.5 Program
#define echo 36
#define trig 37
int x,jarak;
void setup()
{
pinMode(echo,INPUT);
Serial.begin(9600);
}
void loop ()
{
srf();
}
void srf()
{
digitalWrite(trig,LOW);
delay(10);
54
digitalWrite(trig,HIGH);
delay(5);
digitalWrite(trig,LOW);
x = pulseIn(echo,HIGH);
jarak=x/58;
Serial.print("jarak : ");
Serial.println(jarak);
5.2.6 Algoritma
1. Menampilkan jarak sensor Ultrasonic ke dalam LC
5.3 PROGRAM MOTOR DC
5.3.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara membaca data dari Motor DC
Membuat program untuk membaca data Motor DC
5.3.2 Langkah Pecobaan
Hubungkan port C Arduino Mega 2560 dengan “Port Output Rangkaian
Motor DC Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega 2560 dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega 2560 dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download
ke Arduino Mega 2560, dan amati hasilnya.
5.3.3 Gambar Rangkaian
Gambar 4.2 Rangkaian Minimum System
dengan Motor DC
56
5.3.4 Program
const int pwm = 11 ; //initializing pin 11 as pwm
const int in_1 = 32 ;
const int in_2 = 33 ;
//For providing logic to L298 IC to choose the direction of
the DC motor
void setup()
{
pinMode(pwm,OUTPUT) ; //we have to set PWM pin as
output
pinMode(in_1,OUTPUT) ; //Logic pins are also set as
output
pinMode(in_2,OUTPUT) ;
}
void loop()
{
//For Clock wise motion , in_1 = High , in_2 = Low
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,LOW) ;
analogWrite(pwm,255) ;
//Clockwise for 3 secs
delay(3000) ;
//For brake
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
delay(1000) ;
//For Anti Clock-wise motion - IN_1 = LOW , IN_2 = HIGH
digitalWrite(in_1,LOW) ;
digitalWrite(in_2,HIGH) ;
delay(3000) ;
//For brake
digitalWrite(in_1,HIGH) ;
digitalWrite(in_2,HIGH) ;
57
delay(1000) ;
}
5.3.5 Algoritma
1. Motor DC berputar ke kanan, selama 3 detik
2. Motor berhenti 1 detik
3. Motor DC berputar ke kiri, selama 3 detik
5.4 PEMROGRAMAN TERMOMETER DIGITAL (LM35)
5.4.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara pemrograman penampil LCD pada mikrokontroler Arduino
Mega dengan program (IDE) Arduino
Memahami cara pemrograman ADC pada mikrokontroler Arduino Mega
dengan program Arduino
5.4.2 Langkah Percobaan
Hubungkan port ADC pin 0 Arduini Mega dengan IC LM 35
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download
ke Arduino Mega, dan amati hasilnya.
5.4.3 Gambar Rangkaian
a. Gambar Rangkaian LM35
Gambar 5.4 Rangkaian LM35 dihubungakan
ke Port Arduino Mega
5.4.4 PIN YANG DIHUBUNGKAN :
LM35
Port LM35 Port Arduino
1 POWER ( )
2 PIN A0 (nol)
3 GND
5.4.5 Program
#define sensor 0
float temp;
int tempPin = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
temp = analogRead(sensor);
59
temp = temp * 0.48828125;
delay(400);
}
5.4.6 Algoritma
1. Memasukkan rumus suhu agar menjadi derajat celcius
5.5 PEMROGRAMAN THERMOMETER DIGITAL
5.5.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara pemrograman penampil LCD pada mikrokontroler
Arduino Mega dengan program (IDE)Arduino Mega.
Memahami cara pemrograman ADC pada mikrokontroler Arduino Mega
dengan program (IDE) Arduino Mega.
5.5.2 Langkah Percobaan
Hubungkan port ADC pin 0 Arduino Mega dengan IC LM 35
Hubungkan pin Arduino Mega dengan LCD
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download
ke Arduino Mega, dan amati hasilnya.
5.5.3 Alat dan Bahan
Hubungkan port A Arduino Mega dengan “Port Output Rangkaian ADC
dan LCD Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download
ke Arduino Mega, dan amati hasilnya.
5.5.4 Gambar Rangkaian
a. Gambar Rangkaian LCD
Gambar 5.5 LCD
2 X 16
b. Gambar Skematik LCD
Gambar 5.6 Rangkaian LCD
dihubungakan ke Port Arduino Mega
Penjelasa pin LCD
No. Nama Pin Deskripsi
GND 0V
VCC +5V
VEE KONTRAS LCD
RS REGISTER SELECT
R/W 1 = READ, 0 = WRITE
EN ENABLE LCD, 1 = ENABLE
D0 DATA BUS 0
D1 DATA BUS 1
D2 DATA BUS 2
D3 DATA BUS 3
D4 DATA BUS 4
D5 DATA BUS 5
D6 DATA BUS 6
D7 DATA BUS 7
Anoda ANODA BACKLIGHT LED
Katoda KATODA BACKLIGHT LED
c. Gambar Rangkaian LM35
Gambar 5.7 Rangkaian LM35 dihubungakan ke
Port Arduino Mega
5.5.5 PIN YANG DIHUBUNGKAN :
LM35
Port LM35 Port Arduino
1 POWER ( )
2 PIN A0 (nol)
3 GND
5.5.6 Program
#include <LiquidCrystal.h>
#define sensor 0
float temp;
63
LiquidCrystal lcd(22,23,24,25,26,27);
void setup() {
// put your setup code here, to run once:
lcd.begin(16, 2);
lcd.print("Temperature: "); Serial.begin
(9600);
}
void loop() {
// put your main code here, to run repeatedly:
temp = analogRead(sensor);
temp = temp * 0.48828125;
lcd.setCursor(0, 1);
lcd.print(temp); lcd.print(" C");
Serial.print ("Temperatur = ");
Serial.print (temp); Serial.print
(" 'C "); Serial.println();
delay(400);
}
5.5.7 Algoritma
1. Temperatur dari sensor suhu ditampilkan di LCD
MODUL VI
PEMROGRAMAN SENSOR PIR
DAN KEYPAD
6.1 Pemrograman Sensor PIR
6.1.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara membaca data dari sensor PIR
Membuat program untuk membaca data sensor PIR
6.1.2 Langkah Pecobaan
Hubungkan port L Arduino Mega dengan “Port Output Rangkaian
sensor PIR Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan
download ke Arduino Mega, dan amati hasilnya.
6.2 Gambar Rangkaian
Gambar 6.1 Rangkaian Minimum System
dengan PIR
65
6.2.1 PIN YANG DHUBUNGKAN
Sensor PIR
Port PIR Port Arduino
Out Pin 10
VCC POWER ( )
GND GND
6.2.2 Program
int ledPin =
43;
int calibrationTime = 2
boolean lockLow = true;
boolean takeLowTime;
int pirPin =
10;
void setup() {
// Calibrates the PIR
Serial.begin(9600);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(pirPin, LOW);
clearLcd();
}
void loop() {
// Main execution loop
if(digitalRead(pirPin) == HIGH) {
// flash an alert a few times digitalWrite(ledPin,
HIGH); delay(flashDelay);
digitalWrite(ledpin, LOW);
delay(flashdelay);
}
}
6.2.3 Algoritma
1. Sensor PIR mendeteksi gerakan
2. Gerakan terdeteksi menghidupkan LED kedua
66
6.3 Pemorgraman KEYPAD
6.3.1 Tujuan
Setelah praktikum selesai dilaksanakan peserta harus dapat :
Memahami cara membaca data dari Keypad
Membuat program untuk menggunakan Keypad
6.3.2 Langkah Percobaan
Hubungkan port Arduino Mega dengan “Port Output Rangkaian Keypad
Trainer Board menggunakan kabel Penghubung.
Hubungkan Arduino Mega dengan PC menggunakan USB Printer.
Hubungkan Arduino Mega dengan sumber tegangan.
Ketikkan program, pada editor program, kemudian compile dan download
ke Arduino Mega, dan amati hasilnya.
6.3.3 Gambar Rangkaian
Gambar 6.2 rangkain keypad
6.3.4 Program
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd (22,23,24,25,26,27);
const byte ROWS = 4; // Four rows
const byte COLS = 4; // columns
// Define the Keymap
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
67
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 9,8,7,6 };// Connect keypad ROW0, ROW1,
ROW2 and ROW3 to these Arduino pins.
byte colPins[COLS] = { 5,4,3,2, };// Connect keypad COL0, COL1
and COL2 to these Arduino pins.
// Configurasi Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins,
ROWS, COLS );
void setup(){
pinMode(42, OUTPUT);
Serial.begin(9600);
keypad.addEventListener(keypadEvent); //add an event listener
for this keypad
}
void loop(){
keypad.getKey();
}
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" Input Angka : ");
lcd.println(eKey);
Serial.print("Tekan : ");
Serial.println(eKey);
switch (eKey){
case '1': LED();break;
case 'A': mati();break;
default: standby();
}
}
68
}
void standby()
{
digitalWrite(42,LOW);
delay(200);
}
void LED()
{
digitalWrite (42, HIGH);
}
void mati()
{
digitalWrite(42, LOW);
}
6.3.5 Algoritma
Ketika keypad angka “1” ditekam, makan semua LED menyala
Recommended