Modul Mikrokontroler
Modul Mikrokontroler
i
KATA PENGANTAR
Modul Praktik Digital & Mikrokontroler terdiri dari dua modul yaitu Modul 1 Praktik
Digital dan Modul 2 Praktik Mikrokontroler. Pada modul 2 Praktik Mikrokontroler
berisi pembahasan diantaranya input dan output digital, timer, input dan output
analog, display dan aktuator, serta komunikasi serial pada mikrokontroler
menggunakan mikrokontroler arduino.
Penyusun menyadari bahwa modul ini jauh dari sempurna karena kemajuan bidang
Elektronika Digital dewasa ini dan keterbatasan pengalaman penyusun, karena itu
kritik dan saran selalu diharapkan guna pengembangan dan penyempurnaan modul
ini.
Penyusun
ii
DAFTAR ISI
KATA PENGANTAR........................................................................................................................................... ii
DAFTAR ISI .........................................................................................................................................................iii
PENDAHULUAN ................................................................................................................................................ 1
A. Mikrokontroler Arduino Uno ................................................................................................................ 1
B. Software .................................................................................................................................................... 5
C. Bahasa Pemrograman Arduino ............................................................................................................. 7
D. Algoritma dan Flowchart ..................................................................................................................... 14
E. Proteus .................................................................................................................................................... 16
PRAKTIKUM 1 OUTPUT DIGITAL ................................................................................................................ 18
1.1.1 Output Digital ............................................................................................................................... 18
1.1.2 LED (Light Emitting Dioda) ........................................................................................................ 19
1.1.3 Aktif High dan Aktif Low pada Output Digital ....................................................................... 20
1.2 Alat Dan Bahan ................................................................................................................................. 21
1.3 Petunjuk Praktikum .......................................................................................................................... 21
1.4 Praktikum Output Digital ................................................................................................................ 22
1.5 Studi Kasus ........................................................................................................................................ 23
PRAKTIKUM 2 INPUT & OUTPUT DIGITAL .............................................................................................. 24
2.1 Teori Dasar ......................................................................................................................................... 24
2.1.1 Input dan Output Digital ............................................................................................................. 24
2.1.2 Push Button ................................................................................................................................... 24
2.1.3 Pull Up dan Pull Down ................................................................................................................ 25
2.1.4 Aktif High dan Aktif Low pada Input Digital .......................................................................... 26
2.2 Alat Dan Bahan ................................................................................................................................. 26
2.3 Petunjuk Praktikum .......................................................................................................................... 27
2.4 Praktikum Input Digital ................................................................................................................... 27
2.4.1 Percobaan 1 .................................................................................................................................... 27
2.4.2 Percobaan 2 .................................................................................................................................... 28
2.5 Studi Kasus ........................................................................................................................................ 30
PRAKTIKUM 3 TIMER ...................................................................................................................................... 31
3.1 Teori Dasar ......................................................................................................................................... 31
3.2 Alat Dan Bahan ................................................................................................................................. 32
3.3 Petunjuk Praktikum .......................................................................................................................... 32
3.4 Praktikum Timer ............................................................................................................................... 33
3.4.1 Percobaan 1 .................................................................................................................................... 33
3.4.2 Percobaan 2 .................................................................................................................................... 34
3.4.3 Percobaan 3 .................................................................................................................................... 36
3.5 Studi Kasus ........................................................................................................................................ 37
PRAKTIKUM 4 DISPLAY ................................................................................................................................. 38
4.1 Teori Dasar ......................................................................................................................................... 38
4.2 Alat Dan Bahan ................................................................................................................................. 41
4.3 Petunjuk Praktikum .......................................................................................................................... 42
4.4 Praktikum Display ............................................................................................................................ 42
4.4.1 Percobaan 1 .................................................................................................................................... 42
4.4.2 Percobaan 2 .................................................................................................................................... 44
iii
4.4.3 Percobaan 3 .................................................................................................................................... 47
4.5 Studi Kasus ........................................................................................................................................ 50
PRAKTIKUM 5 INPUT ANALOG ................................................................................................................... 51
5.1 Teori Dasar ......................................................................................................................................... 51
5.2 Alat Dan Bahan ................................................................................................................................. 52
5.3 Petunjuk Praktikum .......................................................................................................................... 52
5.4 Praktikum ADC ................................................................................................................................. 53
5.5 Studi Kasus ........................................................................................................................................ 54
PRAKTIKUM 6 OUTPUT ANALOG ............................................................................................................... 56
6.1 Teori Dasar ......................................................................................................................................... 56
6.2 Alat Dan Bahan ................................................................................................................................. 57
6.3 Petunjuk Praktikum .......................................................................................................................... 57
6.4 Praktikum PWM ............................................................................................................................... 58
6.4.1 Percobaan 1 .................................................................................................................................... 58
6.4.2 Percobaan 2 .................................................................................................................................... 59
6.5 Studi Kasus ........................................................................................................................................ 60
PRAKTIKUM 7 AKTUATOR ........................................................................................................................... 61
7.1 Teori Dasar ......................................................................................................................................... 61
7.2 Alat Dan Bahan ................................................................................................................................. 66
7.3 Petunjuk Praktikum .......................................................................................................................... 67
7.4 Praktikum Aktuator .......................................................................................................................... 67
7.4.1 Percobaan 1 .................................................................................................................................... 67
7.4.2 Percobaan 2 .................................................................................................................................... 71
7.4.3 Percobaan 3 .................................................................................................................................... 76
7.5 Studi Kasus ........................................................................................................................................ 78
PRAKTIKUM 8 PROJEK ................................................................................................................................... 79
iv
PENDAHULUAN
1
Anda bisa bebas men-download gambarnya, membeli komponen-komponennya, membuat
PCB-nya dan merangkainya sendiri tanpa harus membayar kepada para pembuat Arduino.
Sama halnya dengan IDE Arduino yang bisa di-download dan diinstal pada komputer
secara gratis.
Saat ini komunitas Arduino berkembang dengan pesat dan dinamis di berbagai belahan
dunia. Bermacam-macam kegiatan yang berkaitan dengan projek-projek Arduino
bermunculan dimanamana, termasuk di Indonesia. Yang membuat Arduino dengan cepat
diterima oleh orang-orang adalah karena: Harganya akan lebih murah dibandingkan dengan
modul yang lain, mudah pengoperasiannya, library cukup banyak diinternet karena bersifat
open source, dan koneksi dengan devais yang lain cukup mudah. Dibawah ini adalah modul
Arduino Uno R3.
Komponen utama di dalam papan Arduino adalah sebuah microcontroller 8 bit dengan
merk ATmega yang dibuat oleh perusahaan Atmel Corporation. Berbagai papan Arduino
menggunakan tipe ATmega yang berbeda-beda tergantung dari spesifikasinya, sebagai
contoh Arduino Uno menggunakan ATmega328 sedangkan Arduino Mega 2560 yang lebih
canggih menggunakan ATmega2560. Untuk memberikan gambaran mengenai apa saja yang
terdapat di dalam sebuah microcontroller, pada gambar berikut ini diperlihatkan contoh
diagram blok sederhana dari microcontroller ATmega328 (dipakai pada Arduino Uno).
2
Arsitektur Arduino Uno R3
3
2KB RAM pada memory kerja bersifat volatile (hilang saat daya dimatikan), digunakan
oleh variable-variabel di dalam program.
32KB RAM flash memory bersifat non-volatile, digunakan untuk menyimpan program
yang dimuat dari komputer. Selain program, flash memory juga menyimpan
bootloader. Bootloader adalah program inisiasi yang ukurannya kecil, dijalankan oleh
CPU saat daya dihidupkan. Setelah bootloader selesai dijalankan, berikutnya program
di dalam RAM akan dieksekusi.
1KB EEPROM bersifat non-volatile, digunakan untuk menyimpan data yang tidak
boleh hilang saat daya dimatikan. Tidak digunakan pada papan Arduino.
Central Processing Unit (CPU), bagian dari microcontroller untuk menjalankan setiap
instruksi dari program.
Port input/output, pin-pin untuk menerima data (input) digital atau analog, dan
mengeluarkan data (output) digital atau analog.
2) USB
Berfungsi untuk:
Memuat program dari komputer ke dalam papan
Komunikasi serial antara papan dan komputer
Memberi daya listrik kepada papan
3) Sambungan SV1
4
Sambungan atau jumper untuk memilih sumber daya papan, apakah dari sumber eksternal
atau menggunakan USB. Sambungan ini tidak diperlukan lagi pada papan Arduino versi
terakhir karena pemilihan sumber daya eksternal atau USB dilakukan secara otomatis.
5) Tombol Reset S1
Untuk me-reset papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa
tombol reset ini bukan untuk menghapus program atau mengosongkan microcontroller.
7) IC 1 – Microcontroller Atmega
Komponen utama dari papan Arduino, di dalamnya terdapat CPU, ROM dan RAM.
B. Software
Sekalipun sebuah papan Arduino dapat bekerja dengan mendapat asupan daya dari sebuah
komputer, namun hal itu tidak berarti ia dapat berkomunikasi dengan komputer tersebut.
Untuk memastikan Arduino telah terpasang dengan benar dan dapat berkomuniasi dengan
interaktif maka ia perlu diuji.
1) Jalankan IDE Arduino dengan menjalankan sebuah file bernama arduino.exe pada
lokasi software Arduino.
5
2) Jalankan menu Tools → Board kemudian pilih tipe papan yang sesuai.
4) Pada toolbar klik tombol Upload untuk memuat sketch tersebut ke dalam papan
Arduino.
6
C. Bahasa Pemrograman Arduino
Bahasa pemrograman mikrokontroller Arduino, seperti bahasa pemrograman tingkat
menegah pada umumnya. Arduino pun sama memiliki alur algoritma yang mirip dan yang
beda adalah cara penulisan sintaknya.
Struktur dasar dari bahasa pemrograman arduino itu sederhana hanya terdiri dari dua
bagian.
void setup()
{
// Statement;
}
void loop()
{
// Statement;
}
Dimana setup( ) bagian untuk inisialisasi yang hanya dijalankan sekali di awal program,
sedangkan loop() untuk mengeksekusi bagian program yang akan dijalankan berulang-
ulang untuk selamanya.
1. setup()
Fungsi setup() hanya di panggil satu kali ketika program pertama kali di jalankan. Ini
digunakan untuk pendefinisian mode pin atau memulai komunikasi serial. Fungsi setup()
harus di ikut sertakan dalam program walaupun tidak ada statement yang di jalankan.
void setup()
{
pinMode(13,OUTPUT);// mengset ‘pin’ 13 sebagai output
}
2. Loop
Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi loop()
secara berurutan dan melakukan instruksi-instruksi yang ada dalam fungsi loop().
void loop()
{
digitalWrite(13, HIGH); // nyalakan ‘pin’ 13
delay(1000); // pause selama 1 detik
digitalWrite(13, LOW); // matikan ‘pin’ 13
delay(1000); // pause selama 1 detik
}
3. Function
7
Function (fungsi) adalah blok pemrograman yang mempunyai nama dan mempunyai
statement yang akan di eksekusi ketika function di panggil. Fungsi void setup() dan void
loop() telah di bahas di atas dan pembuatan fungsi yang lain akan di bahas selanjutnya.
Cara pendeklarasian function
type functionName(parameters)
{
// Statement;
}
Contoh:
int delayVal()
{
int v; // membuat variable ‘v’ bertipe integer
v =analogRead(pot); // baca harga potentiometer
v/=4; // konversi 0-1023 ke 0-255
return v; // return nilai v
}
Pada contoh di atas fungsi tersebut memiliki nilai balik int (integer), karena kalau tidak
menghendaki adanya nilai balik maka type function harus void.
4. { } curly braces
Curly brace mendefinisikan awal dan akhir dari sebuah blok fungsi. Apabila ketika
memprogram dan progremer lupa memberi curly brace tutup maka ketika di compile akan
terdapat laporan error.
5. ; Semicolon
Semicolon harus diberikan pada setiap statement program yang kita buat ini merupakan
pembatas setiap statement program yang di buat.
7. //Line Comments
Sama halnya dengan block comments, line coments pun sama hanya saja yang di jadikan
komen adalh perbaris.
8. Variable
Variable adalah sebuah penyimpan nilai yang dapat di gunakan dalam program.Variable
dapat di rubah sesuai dengan instruksi yang kita buat.Ketika mendeklarisikan variable harus
di ikut sertakan type variable serta nilai awal variable.
Type variableName = 0;
Contoh
8
Int inputVariable = 0;//mendefinisikan sebuah variable bernama
inputVariable dengan nilai awal 0
inputVariable = analogRead(2);// menyimpan nilai yang ada di
analog
pin 2 ke inputVariable
9. Variable scope
Sebuah variable dapat di deklarasikan pada awal program sebelum void setup(), secara local
di dalam sebuah function, dan terkadang di dalam sebuah block statement pengulangan.
Sebuah variable global hanya satu dan dapat di gunakan pada semua block function dan
statement di dalam program. Variable global di deklarasikan pada awal program sebelum
fungstion setup(). Sebuah variable local di deklarasikan di setiap block function atau di
setiap block statement pengulangan dan hanya dapat di gunakan pada block yang
bersangkutan saja.
Contoh penggunaan:
a. Byte
Type byte dapat menyimpan 8-bit nilai angka bilangan asli tanapa koma. Byte memiliki
range 0 – 255.
b. Integer
Integer adalah tipe data yang utama untuk menyimpan nilai bilangan bulat tanpa
koma.Penyimpanan integer sebesar 16-bit dengan range 32.767 sampai -32.768.
9
sebagai type integer
c. Long Integer
Perluasan ukuran untuk long integer, penyimpanan long integer sebesar 32-bit dengan range
2.147.483.647 sampai -2.147.483.648
d. Float
Float adalah tipe data yang dapat menampung nilai decimal, float merupakan penyimpan
yang lebih besar dari integer dan dapat menyimpan sebesar 32-bit dengan range
3.4028235E+38 sampai -3.4028235E+38
11. Array
Array adalah kumpulan nilai yang dapat di akses dengan index number, nilai yang terdapat
dalam array dapat di panggil dengan cara menuliskan nama array dan index number. Array
dengan index 0 merupakan nilai pertama dari array.Array perlu di deklarasikan dan kalau
perlu di beri nilai sebelum di gunakan.
y = y + 3;
x = x - 8;
i = i * 5;
r = r / 9;
dalam menggunakan operan aritmatik harus hati-hati dalam menentukan tipe data yang
digunakan jangan sampai terjadi overflow range data.
10
x -= y; // sama seperti x = x – y
x *= y; // sama seperti x = x * y
x /= y; // sama seperti x = x / y
14. Comparison
Statement ini membadingkan dua variable dan apabila terpenuhi akan bernilai 1 atau true.
Statement ini banyak digunakan dalam operator bersyarat.
x == y; // x sama dengan y
x != y; // x tidak sama dengan y
x < y; // x leboh kecil dari y
x > y; // x lebih besar dari y
x <= y; // x lebih kecil dari sama dengan y
x >= y; // x lebih besar dari sama dengan y
Contoh penggunaan:
Logical AND
If ( x> 0 && x < 5) // bernilai benar apabila kedua operator
pembanding terpenuhi
Logical OR
If ( x> 0 || y > 0)// bernilai benar apabila salah satu dari
operator pembanding terpenuhi
Logical NOT
If ( !x > 0 )// benilai benar apabila ekspresi operator salah
16. Konstanta
Arduino mempunyai beberapa variable yang sudah di kenal yang kita sebut konstanta.Ini
membuat memprogram lebih mudah untuk dibaca. Konstanta di kelasifikasi berdasarkan
group.
17. True/False
Merupakan konstanta Boolean yang mendifinisikan logic level.False mendifinisikan 0 dan
True mendifinisikan 1.
If ( b == TRUE );
{
//doSomething
}
11
digitalWrite( 13, HIGH );
19. Input/Output
Konstanta ini digunakan dengan fungsi pinMode() untuk mendifinisikam mode pin digital,
sebagai input atau output
a. If
Operator if menguji sebuah kondisi seperti nilai analog sudah berada di bawah nilai yang
kita kehendaki atau belum, apabila terpenuhi maka akan mengeksekusi baris program yang
ada dalam brackets kalau tidak terpenuhi maka akan mengabaikan baris program yang ada
dalam brackets.
If ( someVariable ?? value )
{
//DoSomething;
}
b. If…Else
Operator if…else mengtest sebuah kondisi apabila tidak sesuai dengan kondisi yang
pertama maka akan mengeksekusi baris program yang ada di else.
If ( inputPin == HIGH )
{
//Laksanakan rencana A;
}
Else
{
//Laksanakan rencana B;
}
c. For
Operator for digunakan dalam blok pengulangan tertutup.
d. While
Operator while akan terus mengulang baris perintah yang ada dalam bracket sampai
ekspresi sebagai kondisi pengulangan benilai salah.
12
e. Do…While
Sama halnya dengan while() hanya saja pada operator Do…while tidak melakukan
pengecekan pada awal tapi di akhir, sehingga otomatis akan melakukan satu kali baris
perintah walaupun pada awalnya sudah terpenuhi.
Do
{
//doSomething;
}
While ( someVariable ?? value );
22. PinMode(pin,Mode)
Digunakan dalam void setup() untuk mengkonfigurasi pin apakah sebagai Input atau
Output. Arduino digital pins secara default di konfigurasi sebagai input sehingga untuk
merubahnya harus menggunakan operator pinMode(pin, mode).
23. digitalRead(pin)
Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH atau LOW.
a. analogRead(pin)
Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya dapat bekerja pada
analog pin (0-5). Hasil dari pembacaan berupa nilai integer dengan range 0 sampai 1023.
b. analogWrite(pin,value)
Mengirimkan nilai analog pada pin analog.
13
26. Time
a. delay(ms)
Menghentikan program untuk sesaat sesuai dengan yang di kehendaki, satuanya dalam
millisecond.
b. millis()
Mengembalikan nilai dalam millisecond dihitung sejak arduino board menyala.
Penapungnya harus long integer.
27. Math
a. Min(x,y)
Membadingkan 2 variable dan akan mengembalikan nilai yang paling kecil.
28. Serial.begin(rate)
Statement ini di gunakan untuk mengaktifkan komunikasi serial dan mengset baudrate.
void setup()
{
Serial.begin(9600);//open serial port and set baudrate 9600
bps
}
29. Serial.prinln(data)
Mengirimkan data ke serial port.
14
Bagan Flowchart
Contoh kasus berikut yang dapat digunakan untuk berlatih misalnya permasalahan mengisi
gelas dengan air dari keran. Kasus mengisi gelas dengan air dari keran dapat dijabarkan
dengan algoritma program seperti tabel berikut.
Tabel diatas memberikan gambaran sebuah proses pengisian air ke dalam gelas yang
diawali dengan start dan diakhiri dengan stop. Inti proses ada pada step 4, step 5 dan step 6.
Terjadi pengamatan atau pendeteksian apakah gelas sudah penuh atau belum. Air dibiarkan
mengalir jika gelas belum terisi penuh. Dan jika gelas telah terisi penuh maka harus ada step
untuk menghentikan aliran air dengan cara menutup keran. Step-step pengisian air kedalam
gelas dapat digambar menggunakan flowchart seperti Gambar berikut.
15
E. Proteus
Software Proteus adalah sebuah software yang digunakan untuk mendesain PCB yang juga
dilengkapi dengan simulasi PSpice pada level skematik sebelum rangkaian skematik di-
upgrade ke PCB untuk memastikan PCB dapat berfungsi dengan semestinya. Proteus
mengkombinasikan program ISIS untuk membuat skematik desain rangkaian dengan
program ARES untuk membuat layout PCB dari skematik yang dibuat.
Fitur-fitur dari Proteus adalah sebagai berikut :
1. Memiliki kemampuan untuk mensimulasikan hasil rancangan baik digital
maupun analog maupun gabungan keduanya.
2. Mendukung instrumen-instrumen virtual seperti voltmeter, ammeter, osciloscope,
logic analyser, dan masih banyak lagi.
3. Memiliki model-model peripheral yang interactive seperti LED, tampilan LCD,
RS232, dan berbagai jenis library lainnya.
4. Memiliki kemampuan menampilkan berbagi jenis analisis secara grafis
seperti transient, frekuensi, noise, distorsi, AC dan DC, dan masih banyak lagi.
5. Mendukung simulasi berbagai jenis microcontroller.
6. Mendukung berbagai jenis komponen-komponen analog.
7. Mendukung open architecture sehingga pengguna dapat memasukkan program
seperti C++/ Arduino untuk keperluan simulasi.
8. Mendukung pembuatan PCB yang di-update secara langsung dari program ISIS
ke program pembuat PCB-ARES.
16
3. Kemudian pilih komponen yang akan digunakan, lihat gambar. Pada toolbox sebelah
kiri, pilih Component mode kemudian klik tombol yang berisi huruf P Untuk
mengaktifkan Pick Device. Pick Device adalah box dialog untuk memilih komponen
yang akan digunakan.
4. Akan muncul box dialog, isikan komponen yang diinginkan pada kolom keywords.
Rangkai komponen tersebut. Jika telah selesai untuk menjalankan simulasi dapat
menekan tombol play seperti pada gambar berikut:
17
1 PRAKTIKUM 1
OUTPUT DIGITAL
Tujuan :
a. Memahami konsep output digital pada mikrokontroler
b. Membuat rangkaian output digital pada mikrokontroler menggunakan beberapa
komponen seperti LED dan Rangkaian Relay.
c. Mahasiswa memahami beberapa instruksi Arduino dasar pinModedan digitalWrite.
Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau 0, on atau off, HIGH atau
LOW, ada atau tidak ada sinyal. Berbeda dengan sinyal analog yang nilainya bersifat
kontinyu, yakni nilai antara 0 dan 1 dipertimbangkan. Pin digital berarti pin dapat
menerima/mengirim sinyal digital.
Secara umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu mode input
dan output. Mode input berarti mengeset pin agar dapat digunakan untuk menerima
masukan sinyal. Mode output berarti mengeset pin agar dapat mengirimkan sinyal.Untuk
mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini biasanya dipanggil di dalam
fungsi setup(). fungsi ini memerlukan dua parameter, pinMode([nomorPin],
[mode]). Parameter pertama diisi oleh nomor pin, dan parameter kedua diisi oleh konstanta
INPUT atau OUTPUT, sesuai dengan mode yang ingin digunakan.
void setup()
{
pinMode(2, OUTPUT); // set pin 2 sebagai pin output
}
void loop()
{
digitalWrite(2, HIGH); //set pin 2 pada nilai HIGH
}
18
1.1.2 LED (Light Emitting Dioda)
LED (Light Emitting Dioda) adalah dioda yang dapat memancarkan cahaya pada saat
mendapat arus bias maju (forward bias). LED dapat memancarkan cahaya karena
menggunakan dopping galium, arsenic dan phosporus. Jenis doping yang berbeda diata
dapat menhasilkan cahaya dengan warna yang berbeda. LED merupakan salah satu jenis
dioda, sehingga hanya akan mengalirkan arus listrik satu arah saja. LED akan memancarkan
cahaya apabilA diberikan tegangan listrik dengan konfigurasi forward bias. Berbeda dengan
dioda pada umumnya, kemampuan mengalirkan arus pada LED cukup rendah yaitu
maksimal 20 mA. Apabila LED (Light Emitting Dioda) dialiri arus lebih besar dari 20 mA
maka LED akan rusak, sehingga pada rangkaian LED dipasang sebuah resistor sebgai
pembatas arus. Simbol dan bentuk fisik dari LED (Light Emitting Dioda) dapat dilihat pada
gambar berikut.
Dari gambar diatas dapat kita ketahui bahwa LED memiliki kaki 2 buah seperti dengan
dioda yaitu kaki anoda dan kaki katoda. Pada gambar diatas kaki anoda memiliki ciri fisik
lebih panjang dari kaki katoda pada saat masih baru, kemudian kaki katoda pada LED
(Light Emitting Dioda) ditandai dengan bagian body LED yang di papas rata. Kaki anoda
dan kaki katoda pada LED (Light Emitting Dioda) disimbolkan seperti pada gambar diatas.
Pemasangan LED (Light Emitting Dioda) agar dapat menyala adalah dengan memberikan
tegangan bias maju yaitu dengan memberikan tegangan positif ke kaki anoda dan tegangan
negatif ke kaki katoda. Konsep pembatas arus pada dioda adalah dengan memasangkan
resistor secara seri pada salah satu kaki LED (Light Emitting Dioda). Rangkaian dasar untuk
menyalakan LED (Light Emitting Dioda) membutuhkan sumber tegangan LED dan resistor
sebagai pembatas arus seperti pada rangkaian berikut.
19
Besarnya arus maksimum pada LED merah adalah 20 mA, sehingga nilai resistor harus
ditentukan. Dimana besarnya nilai resistor berbanding lurus dengan besarnya tegangan
sumber yang digunakan. Secara matematis besarnya nilai resistor pembatas arus LED dapat
ditentukan menggunakan persamaan berikut.
Dimana :
R = resistor pembatas arus (Ohm)
Vs = tegangan sumber yang digunakan untuk mensupply tegangan
ke LED (volt)
2 volt = tegangan LED (volt)
0,02 A = arus maksimal LED (20 mA)
Istilah aktif high dan aktif low sangatlah penting untuk dipahami dalam mempelajari
mikrokontroler. Rangkaian Aktif High dan Aktif Low dapat mewakili berbagai macam
rangkaian output seperti LED, relay, buzzer, dan lainnya. Rangkaian aktif high merupakan
rangkaian digital yang bila diberi logika high (1) akan aktif/ON dan jika diberi logika low
(0) akan OFF. Sedangkan rangkaian aktif low merupakan kebalikan dari rangkaian aktif
high. Pada rangkaian ini, rangkaian digital akan off bila diberi logika high (1) dan akan on
bila diberi logika low (0). Contoh rangkaian aktif High dan Low pada rangkaian LED:
Common dari rangkaian aktif high adalah ground (GND) atau tegangan 0 Volt. Sedangkan
common dari rangkaian aktif low merupakan VCC atau tegangan 5 Volt. Pada rangkaian
aktif high. Ketika diberi logika high (1), maka tegangan pada kaki anoda LED akan lebih
positif dibandingkan dengan kaki katoda LED. Karena kaki katoda LED dipasang ke ground
yang memiliki tegangan 0 Volt, maka terdapat selisih tegangan yang berlebihan pada kaki
anoda dan kaki katoda LED yang dapat menyebabkan LED menyala. Sebaliknya, bila
diberikan logika low (0), maka tegangan pada kaki anoda LED tidak akan lebih positif
dibandingkan kaki katoda LED. Hal tersebut menyebabkan LED tidak menyala.
20
Pada rangkaian aktif low. Ketika diberi logika low (0), maka tegangan pada kaki katoda LED
akan lebih negatif dibandingka dengan kaki anoda LED. Karena kaki anoda LED dipasang
ke VCC yang memiliki tegangan 5 Volt, maka terdapat selisih tegangan yang berlebihan
pada kaki anoda dan kaki katoda LED yang dapat menyebabkan LED menyala.
Sebaliknya, bila diberikan logika high (1), maka tegangan pada kaki katoda sama positifnya
dengan kaki anoda LED. Hal tersebut menyebabkan LED tidak menyala.
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum lakukan
editing program dan kembali ke langkah 5.
21
1.4 Praktikum Output Digital
Praktikum ini bertujuan untuk menghidupkan ketiga LED. Led akan menyala bila
dikirimkan data HIGH (‘1’) pada pin 13, 12, dan 11 karena anoda dari led mendapatkan level
tegangan mendekati 5V sedangkan katodanya dihubungkan ke ground (0V).
Rangkaian Percobaan
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
22
1.5 Studi Kasus
Buatlah sistem mikrokontroler untuk menghidupkan LED dengan menggunakan
output digital aktif low.
Jawaban:
a. Cara kerja Rangkaian
b. Kode Program
c. Foto Foto/ Screenshot Hasil
d. Analisa
e. Kesimpulan
23
2 PRAKTIKUM 2
INPUT & OUTPUT DIGITAL
Tujuan :
a. Memahami konsep input dan output digital pada mikrokontroler
b. Membuat rangkaian input dan output digital pada mikrokontroler menggunakan
beberapa komponen seperti Push Button, Switch, Sensor Digital, LED dan Rangkaian
Relay.
c. Mahasiswa memahami beberapa instruksi Arduino dasar pinMode, digitalRead,
digitalWrite, dan if.
Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau 0, on atau off, HIGH atau
LOW, ada atau tidak ada sinyal. Berbeda dengan sinyal analog yang nilainya bersifat
kontinyu, yakni nilai antara 0 dan 1 dipertimbangkan. Pin digital berarti pin dapat
menerima/mengirim sinyal digital.
Secara umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu mode input
dan output. Mode input berarti mengeset pin agar dapat digunakan untuk menerima
masukan sinyal. Mode output berarti mengeset pin agar dapat mengirimkan sinyal.Untuk
mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini biasanya dipanggil di dalam
fungsi setup(). fungsi ini memerlukan dua parameter, pinMode([nomorPin],
[mode]). Parameter pertama diisi oleh nomor pin, dan parameter kedua diisi oleh konstanta
INPUT atau OUTPUT, sesuai dengan mode yang ingin digunakan.
Pada dasarnya semua pin yang ada pada Arduino (ATMega) berada pada mode input secara
default. Jadi ketika ingin digunakan suatu pin sebagai input, maka tidak mesti
menuliskan pinMode(nomorPin, INPUT);. Untuk menerima input digital yang masuk ke
pin, digunakan fungsi digitalRead(nomorPin). Fungsi ini menerima satu parameter, yaitu
nomor pin mana yang akan dibaca nilai inputnya. Fungsi ini akan mengembalikan nilai 1
dan 0, atau HIGH dan LOW (HIGH adalah konstanta dengan nilai 1 dan LOW adalah
konstanta dengan nilai 0).
Push Button adalah saklar tekan yang berfungsi untuk menghubungkan atau memisahkan
bagian – bagian dari suatu instalasi listrik satu sama lain. Pada dasarnya, terdapat 2 jenis
Push Button di pasaran: Push-On dan Push-Off. Tetapi yang digunakan pada praktikum ini
adalah yang berjenis Push-On, yaitu komponen yang terdiri atas dua kutub yang saling
terpisah / tidak terhubung, dan sebuah tombol yang ketika ditekan akan menghubungkan
kedua kutub tersebut sehingga akan mengalirkan arus listrik dari satu sisi kutub ke sisi
kutub berikutnya.
24
2.1.3 Pull Up dan Pull Down
Istilah “Pull Up” dan “Pull Down” sangat sering digunakan dalam bidang
elektronik. Perhatikan rangkaian push button berikut yang dihubungkan ke pin input
mikrokontroller
Jika push button ditekan, pin input mikrokontroller akan terhubung ke ground sehingga
mikrokontroller akan membaca sinyal “low” pada pin tersebut. Tetapi jika push button tidak
ditekan sinyal dibaca mikrokontroller tidak terdefinisi. Pin input mikrokontroller tidak
terhubung ke tegangan apapun sehingga sinyal yang dibaca adalah random, yang berarti
bisa saja “high” atau “low”. Kondisi dimana sinyal tidak terdefinisi disebut “floating”.
Untuk mengatasi kondisi ini, dapat ditambahkan tegangan pada input pin, seperti pada
gambar di bawah ini
Dengan ditambahkan tegangan 5 volt pada pin input, masalah “floating” telah diselesaikan.
Akan tetapi muncul satu masalah baru, yaitu ketika push button ditekan tegangan 5 volt
akan terhubung langsung dengan ground, sehingga arus yang sangat besar akan mengalir
antara tegangan 5 volt dan ground. Kondisi ini disebut “short circuit”. Kondisi ini dapat
menyebabkan kerusakan fisik suplai daya dan rangkaian itu sendiri. Arus yang sangat besar
tersebut dapat dibatasi dengan menambahkan sebuah resistor.
25
ke sinyal “high” inilah yang disebut dengan “pull up” dan penambahan resistor ke sinyal
“low” disebut “pull down”. Fungsi utama “pull up” dan “pull down” adalah untuk
mengatasi kondisi “floating” yang terjadi pada suatu rangkaian agar menjadi terdefinisi ke
sinyal “high” atau “low”.
Rangkaian aktif high pada input digital merupakan rangkaian digital yang jika input
tersebut aktif maka akan memberikan logika high (1). Sedangkan rangkaian aktif low pada
input digital merupakan kebalikan dari rangkaian aktif high. Pada rangkaian ini, jika input
tersebut aktif maka akan memberikan logika low (0). Contoh rangkaian aktif High dan Low
pada rangkaian Push Button:
Pada rangkaian input aktif high, ketika tombol tidak ditekan maka pada input pin berlogika
0 (LOW), dan ketika tombol ditekan maka input pin berlogika 1 (HIGH). Sedangkan dada
rangkaian input aktif low, ketika tombol tidak ditekan maka pada input pin berlogika
1 (HIGH), dan ketika tombol ditekan maka input pin berlogika 0 (LOW).
26
4) Komputer
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
27
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
2.4.2 Percobaan 2
Rangkaialah 4 buah LED dan 4 buah saklar push button untuk aplikasi penekanan tombol
dan menyalakan lampu LED maupun menggeser lampu LED. Mula-mula mikrokontroler
membaca kondisi saklar kemudian memprosesnya untuk diteruskan ke pin output berupa
LED sesuai dengan program yang diberikan.
28
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
29
2.5 Studi Kasus
1) Buatlah sistem pengendalian lampu AC dengan dua tombol. Push Button 1 untuk
menyalakan lampu dan Push Button 2 untuk mematikan lampu. (Petujuk: gunakan
rangkaian relay untuk menghubungkan output mikrokontroler ke lampu AC)
2) Sebuah sistem kontrol terdiri dari 4 input switch/saklar (in A, in B, in C, dan in D)
dan 2 output (LED 1 dan LED 2). Tentukan sendiri pin input dan output sistem
tersebut.
LED 1 akan hidup (on) jika input A dan B on
LED 2 akan hidup (on) jika input C atau D on
3) Buatlah pengendalian 1 buah LED menggunakan 1 buah push button. Jika Push
button ditekan maka LED menyala dan jika ditekan kembali LED akan mati, dab
seterusnya.
30
3 PRAKTIKUM 3
TIMER
Tujuan :
a. Memahami fungsi timer pada mikrokontroler
b. Memahami konsep delay() dan millis() pada mikrokontroler
c. Membuat program pada mikrokontroler menggunakan perintah delay() dan millis()
d. Mengetahui perbedaan fungsi timer menggunakan delay() dan millis()
e. Memahami beberapa instruksi Arduino dasar, for dan if.
Delay
Delay yaitu kode dalam ARDUINO IDE yang fungsinya untuk memberikan waktu jeda
pada perintah sebelumnya dan perintah selanjutnya. Delay digunakan jika dalam
31
pemberian perintah Input dan Output ingin diberikan waktu jeda untuk perintah khusus
tertentu. Delay menggunakan satuan ms (milli seconds) atau 1/1000 detik, artinta jika ingin
membuat jeda 1 (satu) detik maka dituliskan dengan 1000. Contoh penulisanya yaitu:
delay(500); //memberikan jeda waktu selama 1/2 detik
Delay juga dapat menggunakan satuan us(micro seconds) yaitu 1/1000000 detik.
delayMicroseconds fungsinya sama persis dengan delay (ms) hanya saja pemilihan tipe
untuk penulisan program tertentu yang mengharuskan menggunakan delayMicroseconds
ini. Contoh penulisanya yaitu:
delayMicroseconds(500);
Millis
Millis adalah suatu fungsi pada sintak Arduino yang berguna untuk menjalankan waktu
internal setiap milli seconds pada Arduino secara independent. ketika millis di baca maka
millis akan terus menghitung waktu walau pun Arduino nya sedang menjalan kan program
yang lain. Karena fungsi ini, Millis juga dapat digunakan sebagai multitaskingnya Arduino.
Misalnya program sedang menjalankan motor, namun Led juga berkedip setiap tiga detik.
Berbeda dengan delay, fungsi delay membuat kerja arduino berhenti sampai waktu delay
tercapai. Contoh penulisanya yaitu:
millis();
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
32
7) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
Rangkaian Percobaan
3.4.1 Percobaan 1
Led menyala bergantian menggunakan fungsi delay. Led merah menyala 3 detik kemudian
led kuning 1 detik dilanjutkan led hijau 2 detik.
Sintaks program:
33
Hasil Percobaan 1
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
3.4.2 Percobaan 2
Led menyala berkedip dan bergantian menggunakan fungsi delay. Led merah berkedip
dengan delay 1 detik sebanyak 3x dilanjut led kuning berkedip dengan delay 0.2 detik
sebanyak 5x dan dilanjutkan led hijau berkedip dengan delay 0.5 detik sebanyak 2x.
Sintaks program:
34
Hasil Percobaan 2
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
35
3.4.3 Percobaan 3
Led menyala berkedip secara bersamaan dengan waktu tuda yang berbeda-beda
menggunakan fungsi millis. Led merah berkedip dengan delay 1 detik dilanjut led kuning
berkedip dengan delay 0.2 detik dan dilanjutkan led hijau berkedip dengan delay 0.5 detik.
Sintaks program:
Hasil Percobaan 3
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Jelaskan perbedaan delay dan millis dari hasil percobaan 2 dan 3
c. Kesimpulan
36
3.5 Studi Kasus
Buatlah simulasi Traffic Light pada perempatan jalan sesuai dengan perempatan yang sering
dilalui oleh masing-masing mahasiswa.
a. Rancangan Traffic Light (Jelaskan perempatan mana dan bagaimana alur serta
waktunya, waktu dapat dipersingkat pada simulasinya)
b. Rangkaian Simulasi pada Proteus
c. Sintaks Program
d. Hasil Simulasi
37
4 PRAKTIKUM 4
DISPLAY
Tujuan :
a. Memahami prinsip kerja, rangkaian, dan program untuk display LCD dan 7 Segment
pada mikrokontroler
b. Membuat rangkaian dan program pada mikrokontroler untuk display LCD.
c. Membuat rangkaian dan program pada mikrokontroler untuk display 7 Segment.
d. Memahami beberapa instruksi Arduino dasar, array data dan bitRead.
38
pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS
harus diset logika high “1”.
Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi
pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka
program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum
pin RW selalu diberi logika low ”0”.
Penjelasan fungsi pin pada LCD tercantum dalam tabel berikut:
NO PIN Nama I/O Penjeasan
1 VSS Power Ground voltage
2 VDD Power Tegangan +5V
3 VEE Power Contrast voltage
4 RS Input Register Select
1 = Transfer Data Display
0 = Transfer Data Instruksi
5 R/W Input Read/ Write Control Bus
1 = read mode
0 = write mode
6 E Input Data Enable
7-10 D0 – D3 I/O Data 0 hingga 3 (dipakai dalam
mode 8 bit)
11-14 D4 - D7 I/O Data 4 hingga 7 (dipakai dalam
mode 8 bit dan 4 bit)
Mode 4 bit tidak menggunakan data
0 hingga 3
15 A Power Tegangan 5 volt untuk menyalakan
LED backlight
16 K Power Ground untuk menyalakan LED
backlight
Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang
dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7. LCD
memiliki memori DDRAM yang digunakan untuk menyimpan karakter yang akan
ditampilkan. Semua teks yang kita tuliskan ke modul LCD adalah disimpan didalam
memory ini, dan modul LCD secara berturutan membaca memory ini untuk menampilkan
teks ke modul LCD itu sendiri.
39
Pada peta memori tersebut, daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah
display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per
baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian
dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati
alamat 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya. Akan tetapi,
karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada
alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk
mangatur letak posisi kursor pada baris dan kolom tertentu.
Pada pemrograman Arduino modul LCD akan digunakan library pada sketch arduino
yakni:
#include <LiquidCrystal.h>
Seven segment
Seven segment merupakan segment-segment yang digunakan untuk menampilkan angka-
angka atau huruf. Seven segment ini tersusun atas 7 buah LED yang membentuk
membentuk angka atau huruf dimana penyusunnya menggunakan label dari ‘a’ sampai ‘g’
dan satu lagi untuk dot point (DP). Salah satu terminal LED dihubungkan menjadi satu
sebagai kaki common (biasanya pin-nya berada ditengah).
40
Bentuk Fisik Seven Segment CC dan CA
Tabel Kebenaran Seven Segment CC dan CA
Seven segment dapat menampilkan angka-angka desimal dan beberapa karakter tertentu
melalui kombinasi aktif atau tidaknya LED dalam seven segment. Untuk memudahkan
penggunaan seven segment, umumnya digunakan sebuah decoder( mengubah/
mengkoversi input bilangan biner menjadi decimal) atau seven segment driver yang akan
mengatur aktif tidaknya led-led dalam seven segment sesuai dengan nilai biner yang
diberikan.
Dekoder BCD ke seven segment digunakan untuk menerima masukan BCD 4-bit dan
memberikan keluaran yang melewatkan arus melalui segmen untuk menampilkan angka
desimal. Jenis dekoder BCD ke seven segment ada dua macam yaitu dekoder yang berfungsi
untuk menyalakan seven segment mode common anoda dan dekoder yang berfungsi untuk
menyalakan seven segment mode common katoda.
Jika menggunakan seven segment lebih dari satu, maka untuk pin common dapat
disambungkan ke pin atau port lain yang nantinya digunakan untuk mengatur penyalaan
digit tertentu secara berurutan (dikenal dengan metode multiplexing). Metode penyalaan
digit bergantian ini dipilih karena menghemat pin dari port, karena data masing-masing
digit dikeluarkan oleh PORT yang sama.
41
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
42
Sintaks program:
43
Hasil Percobaan 1
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
4.4.2 Percobaan 2
Sintaks program:
44
45
46
Hasil Percobaan 2
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
c. Kesimpulan
4.4.3 Percobaan 3
Rangkain LCD pada percobaan modul 4 ini sebagai berikut:
47
Percobaan ini bertujuan menampilkan “I ♥ Polman” ditambah karekter smile dan orang.
Contoh sederhana untuk menampilkan symbol “hati” :
Sintaks program:
48
Hasil Percobaan 3
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
49
c. Kesimpulan
Ketentuan :
a. Sensor pendeteksi level air dianalogikan menggunakan Pushbutton (PB). Pushbutton
ditekan = sensor mendeteksi air
b. Gunakan LED sebagai indikator.
c. Jika sensor 1 terkena aliran sungai maka indikator 1 menyala dan tampilan di LCD
“Siaga 1”, Jika sensor 2 terkena aliran sungai maka indikator 2 menyala dan tampilan
di LCD “Siaga 2”, dan Jika sensor 3 terkena aliran sungai maka indikator 3 menyala
dan tampilan di LCD “Siaga 3”
50
5 PRAKTIKUM 5
INPUT ANALOG
Tujuan :
a. Memahami input analaog pada mikrokontroller Arduino
b. Memahami perhitungan tegangan resolusi ADC mikrokontroler Arduino
c. Memahami perintah input analog, analogRead(), analogReference(parameter)
d. Membuat rangkaian dan program Arduino untuk menampilkan data input analog
51
Perintah yang digunakan untuk fungsi analog input ini adalah:
1) analogRead(pin): berfungsi untuk membaca nilai analog pada input pin yang akan
menghasilkan nilai integer antara 0-1023.
2) analogReference(parameter): berfungsi untuk menentukan referensi yang digunakan.
Parameternya meliputi:
DEFAULT: default analog reference yaitu 5V (pada board Arduino 5V) atau 3,3
volt (pada board Arduino 3,3 V)
INTERNAL: built-in referensi internal tergantung pada jenis mikrokontroler yang
terpasang pada board Arduino, 1.1 volt pada ATmega168 atau ATmega328 dan
2.56 volt pada ATmega8.
INTERNAL1V1: a built-in referensi internal 1.1V (khusus Arduino Mega)
INTERNAL2V56: a built-in referensi internal 2,56V (khusus Arduino Mega)
EXTERNAL: pilihan referensi yang tergantung pada tegangan yang diberikan
pada pin AREF(hanya dengan range tegangan 0 sampai 5V).
Perlu untuk diperhatikan, jangan menggunakan referensi dibawah 0 volt atau lebih dari 5
volt dan pastikan memilih referensi external sebelum perintah analogRead() jika
menghubungkan pin AREF dengan referensi eksternal karena jika tidak akan bisa merusak
mikrokontrol.
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
52
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
Sintaks program:
53
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Putar potensiometer dan amati hasil ADCnya yang tampil pada LCD dan bandingkan nilai
tegangan yang dibaca pada potensiometer menggunakan voltmeter dengan tegangan hasil
konversi yang tampil pada LCD
c. Kesimpulan
54
Ketentuan :
a. Gunakan sensor suhu LM35. Rumus konversi nilai ADC ke suhu:
Suhu = nilaiADC x 0,489
b. Heater dianalogikan menggunakan LED dan Blower menggunakan motor DC.
c. Tampilkan hasil pembacaan suhu pada LCD baris pertama dan status
heater/blower on/off pada LCD baris kedua.
d. Jika suhu terdeteksi dibawah 20oC maka heater on dan blower off, sedangkan
Jika suhu terdeteksi diatas 20oC maka heater off dan blower on.
55
6 PRAKTIKUM 6
OUTPUT ANALOG
Tujuan :
a. Memahami output analog dan PWM (Pulse Width Modulation)
b. Memahami perintah output analog, analogWrite()
c. Membuat rangkaian dan program Arduino output analog
56
Siklus sinyal PWM pada Arduino
Pin yang bisa dimanfaatkan untuk PWM pada Arduino Uno adalah pin yang bertanda tilde
(~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin input output digital
tetapi juga pin tersebut bisa difungsikan untuk output analog. Oleh sebab itu, jika akan
menggunakan PWM pada pin ini, bisa dilakukan dengan perintah:
analogWrite();
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
57
4) Ketiklah program pada software Arduino.
5) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
6) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler.
7) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
Sintaks program:
58
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Amati sinyal yang dihasilkan pada osciloscope
c. Kesimpulan
6.4.2 Percobaan 2
Pada percobaan ini akan mengatur kecepatan putar Motor DC menggunakan sebuah
potensiometer. Nilai putaran potensiometer akan dikonversi menjadi kecepatan putar yang
bersesuaian. Rangkaian percobaan sebagai berikut:
59
Sintaks program:
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Putar potensiometer dan amati sinyal pwm pada osciloscope
c. Kesimpulan
60
7 PRAKTIKUM 7
AKTUATOR
Tujuan :
a. Membuat rangkaian dan program motor DC pada mikrokontroler untuk mengatur arah
putar dan kecepatan mengunakan H-Bridge.
b. Membuat rangkaian dan program motor Stepper pada mikrokontroler untuk mengatur
posisi sudut dan kecepatan.
c. Membuat rangkaian dan program motor Servo pada mikrokontroler untuk mengatur
posisi sudut.
Motor DC
Pengontrolan motor DC meliputi pengendalian ON-OFF, daya (torsi), arah putaran, dan
kecepatan. Pengontrolan ON-OFF dapat dilakukan dengan menggunakan saklar elektronik.
Pengontrolan arah putar dapat dilakukan dengan mengubah polaritas motor, yaitu dapat
dilakukan dengan menggunakan jembatan saklar yang dikenal dengan H-Bridge.
rangkaian H-Bridge
Rangkaian H-Bridge dapat dibuat menggunakan transistor, tetapi ada juga yang sudah
berberntuk IC contohnya IC L298. L298N berfungsi sebagai driver motor DC dan juga
61
stepper motor. Modul ini bisa mengendalikan hingga 2 buah motor DC dan satu Stepper
Motor. Modul ini dibutuhkan karena board Arduino hanya dapat mensupply arus 20mA.
Sedangkan Driver ini mampu hingga 2 A atau 2000mA pada 12V.
Konfigurasi IC L298
Motor Stepper
Motor stepper adalah perangkat elektromekanis yang bekerja dengan mengubah pulsa
elektronis menjadi gerakan mekanis diskrit. Motor stepper bergerak berdasarkan urutan
pulsa yang diberikan kepada motor.
Motor Stepper
Ada dua jenis stepper motor yang banyak dipakai, yakni Bipolar stepper motor
dan unipolar stepper motor.
1. Bipolar stepper motor
Bipolar stepper motor bekerja dengan menggunakan satu lilitan penuh pada setiap bagian
stator untuk melakukan gerak satu langkah. Ciri-ciri dari bipolar stepper motor, adalah
terdapat empat kabel sebagai media transfer arus.
62
Konstruksi motor stepper bipolar
Metode pengendalian motor stepper yang biasa digunakan diantaranya full step (one phase
dan two phase), half step, dan micro step. Berikut ini adalah ilustrasi struktur motor stepper
sederhana dengan jumlah 4 step untuk 1 putaran penuh (900/step) dan pulsa yang
dibutuhkan untuk menggerakkannya:
63
CW CCW
CW CCW
Gambar di atas sebelah kiri adalah arah putaran rotor motor stepper dan sebalah kanan
adalah logic phase pada setiap step. contoh bentuk pulsa yang diberikan pada kumparan
untuk menggerakkan motor stepper pada arah sesuai dengan jarum jam (clockwise/CW)
adalah pulsa dari step 1 sampai dengan 4. Sedangkan untuk arah berlawanan arah jarum
jam (clockwise/CCW) adalah kebalikannya yaitu dari pulsa step 4 ke step 1. Jika diperhatikan,
signal pulsa seolah – olah berjalan dari phase A ke phase B dan seterusnya. Sehingga bagian
rotor yang diibaratkan seperti magnet akan berputar karena tertarik oleh gaya magnet yang
dibangkitkan oleh setiap phase. Pemberian signal seperti di atas adalah metode full step,
sehingga untuk 1 putaran penuh dibutuhkan 4 kali step. Untuk fullstep onephase
pergerakan rotor dari kutub ke kutub sedangkan twophase berada ditengah ketub.
Pada beberapa kasus, setiap pergerakan putaran motor dapat diubah menjadi setengahnya,
sehingga untuk menghasilkan 1 putaran penuh diperlukan step dua kali lipat. Dengan kata
lain, yang semula hanya perlu 4 step, sekarang menjadi 8 step. Dan metode ini disebut half
step yang merupakan gabungan full step one phase dan two phase. Perhatikan gambar di
bawah ini:
CW CCW
64
Untuk selanjutnya, perintah step untuk merubah kondisi logic phase dilakukan dengan
memberi pulse atau clock pada driver motor stepper. Dengan demikian, pada metode full
step, jika diberikan pulsa sebanyak 8 kali, maka motor akan berputar 2 putaran. Begitu juga
jika diberikan pulsa sebanyak 16 kali, maka motor akan berputar 4 putaran. Jumlah putaran
jika hanya diberi 3 pulsa hanya ¾ putaran saja atau 270 derajat. Dari sini dapat dipahami
bahwa untuk mengatur sudut putaran sebuah motor Stepper, maka yang harus diatur
adalah jumlah pulsa yang diberikan pada drivernya.
Setiap motor Stepper akan memiliki spesifikasi utama yaitu berapa derajat motor akan
berputar setaip kali diberikan 1 pulse, atau disebut dengan Step/pulse. Misalnya pada
gambar di atas, terdapat keterangan motor dengan spesifikasi 0.072o/step, artinya setiap
pulse diberikan 1 kali maka motor akan bergerak sejauh 0.072o. Dengan menghitung satu
putaran adalah 360 derajat, maka diperlukan 5000 pulse agar motor tepat berputar 1 putaran
penuh. Di beberapa penyebutan spesifikasi yang lain dinyatakan dalam bentuk pulse per
rotation (ppr), misalnya 5000 ppr. Dengan demikian, seberapa besar sudut putaran yang
diharapkan dapat dikendalikan dengan mengatur jumlah pulsa yang diberikan kepada
motor tersebut.
Seperti halnya motor listrik yang lain, motor stepper dapat kita kendalikan kecepatannya.
Dengan mengambil pemahaman bahwa motor stepper berputar sekian derajat setiap kali
diberikan pulse, maka semakin cepat jeda antar pemberian pulse 1 ke pulse berikutnya (T)
maka gerakan motor stepper juga akan semakin cepat. Dengan kata lain, pengaturan
kecepatan motor Stepper dapat diatur dengan frekuensi pulsa yang diberikan. Contoh, pada
sebuah motor stepper yang memiliki 5000 ppr, jika ingin berputar dengan kecepatan 1 rps,
maka diperlukan 5000 pulse tiap detik, atau 5 kHz. Atau jika diinginkan berputar 2 rps,
maka frekuensi yang harus diberikan adalah 10 kHz.
Motor stepper memerlukan rangkaian driver seperti halnya motor DC. Salah satu driver
yang dapat digunakan adalah IC ULN2003, L293, dan L298. Sedangkan untuk pengendalian
microstep dapat menggunakan TB6600.
Motor Servo
Dipasaran terdapat 2 tipe motor servo yaitu servo standard dan servo rotation(continuous).
Dimana biasanya untuk tipe standar hanya dapat melakukan pergerakan sebesar 180°
sedangkan untuk tipe continuous dapat melakukan rotasi atau 360°. Pada dasarnya motor
servo tersusun dari motor DC, rangkaian kontrol, gearbox dan potensiometer. Berikut
gambar motor servo beserta komponen internal motor servo. Servo motor mempunyai 3
65
buah pin yang terdiri dari VCC, GND dan pin SIGNAL. Berikut adalah konfigurasi pin
motor servo berdasarkan merk.
Motor Servo
Secara umum untuk mengakses motor servo tipe standard adalah dengan cara memberikan
pulsa high selama 1,5 ms dan mengulangnya setiap 20 ms, maka posisi servo akan berada
ditengah atau netral (0°). Untuk pulsa 1 ms maka akan bergerak berkebalikan arah jarum
jam dengan sudut 0°. Dan pulsa high selama 2 ms akan bergerak searah jarum jam sebesar
180°. Untuk lebih jelasnya perhatikan gambar berikut.
Mode Simulasi:
1) Software Arduino IDE
2) Software Proteus
66
7.3 Petunjuk Praktikum
Mode Langsung:
1) Nyalakan komputer dengan program Arduino.
2) Sambungkan Trainer mikrokontroler dengan computer menggunakan kabel USB.
3) Sambungkan kabel-kabel jumper sesuai dengan praktikum yang dilaksanakan.
4) Ketiklah program pada software Arduino.
5) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
6) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler.
7) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
Mode Simulasi:
1) Nyalakan komputer dengan program Arduino dan Proteus.
2) Buat rangkaian pada software proteus.
3) Ketiklah program pada software Arduino.
4) Lakukan verifikasi terhadap program, apakah terjadi error atau tidak.
5) Jika tidak terjadi error lanjutkan dengan mengupload program ke dalam
mikrokontroler yang ada pada proteus.
6) Amati hasilnya apakah sudah sesuai dengan perintah atau belum, jika belum
lakukan editing program dan kembali ke langkah 5.
67
68
69
70
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Putar potensiometer dan amati hasil ADCnya yang tampil pada LCD
c. Kesimpulan
7.4.2 Percobaan 2
Berikut adalah program pengaturan sudut, arah dan kecepatan motor Stepper Bipolar.
Kecepatan diatur menggunakan pengaturan delay.
71
72
73
74
75
Pemrograman motor stepper pada arduino sudah tersedia dalam bentuk library arduino.
Tetapi program di atas dibuat tanpa library agar memahami prinsip kerja dari motor
stepper.
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Putar potensiometer dan amati hasil ADCnya yang tampil pada LCD
c. Kesimpulan
7.4.3 Percobaan 3
Berikut adalah program pengaturan motor Servo yang sudutnya diatur melalui
potensiometer yang terhubung ke input analog. Pada praktikum ini akan digunakan library
motor servo arduino.
Library servo dapat didownload pada:
https://www.arduino.cc/reference/en/libraries/servo/
Cara memasukkan library ke Arduino IDE:
1. Buka aplikasi Arduinonya, lalu Masuk ke menu SKETCH, pilih INCLUDE LIBRARY,
pilih ADD. ZIP Library…
2. Cari file Library yang sudah didownload, lalu OPEN.
3. Jika berhasil, pada Arduino IDE akan muncul keterangan seperti dibawah ini:
Pada kali ini program yang akan dicoba adalah yang terdapat pada examples Arduino IDE.
Caranya:
1. Buka aplikasi Arduinonya, lalu Masuk ke menu File, Pilih Examples, Pilih Servo, dan
pilih knob.
2. Akan muncul sintaks program berikut:
76
3. Compile program tersebut dan jalankan pada proteus dengan rangkaian sebagai
berikut:
Library pada arduino banyak tersedia, karena arduino merupakan open source sehingga
siapa saja bebas untuk mengembangkannya.
Hasil Percobaan
Diisi oleh mahasiswa berdasarkan hasil percobaan
a. Foto/ Screenshot Hasil
b. Analisa
Jelaskan kode program dan analisa terhadap hasil percobaan
Putar potensiometer dan amati hasil ADCnya yang tampil pada LCD
c. Kesimpulan
77
7.5 Studi Kasus
Buatlah program motor stepper 2 putaran, untuk motor stepper yang mempunyai spesifikasi
1.8o/step. Cara pengaturan step pada motor stepper di Proteus adalah klik 2x pada motor
stepper dan ubah menjadi 1.8:
78
8 PRAKTIKUM 8
PROJEK
Tujuan :
Mengimplementasikan mikrokontroler pada sebuah sistem sehingga dapat lebih terampil
dan lebih memahami sistem mikrokontroler.
Ketentuan:
1. Projek merupakan tugas kelompok yang terdiri dari 3 orang. Dikerjakan secara daring. Disini
mahasiswa dilatih untuk bekerjasama walaupun dari jarak yang berjauhan.
2. Hasil projek berupa alat real bukan simulasi.
3. Projek dikumpulkan pada minggu evaluasi yaitu 25 Januari 2020 dalam bentuk presentasi
secara online dan laporan dalam format word terdiri dari Bab 1 pendahuluan (latar belakang,
rumusan masalah, dan tujuan), Bab 2 Dasar Teori, Bab 3 Perancangan, Bab 4 Hasil dan
Analisa, dan Bab 5 Penutup (kesimpulan dan saran)
4. Sistem mikrokontroler pada projek ini dibuat dengan arsitektur sebagai berikut:
Sensor Display
Analog/ Data
Push Button 1
(Set up) Mikrokontroler
Aktuator
Push Button 2
(Set down)
Indikator
Push Button 3
(Menu/Start)
Sistem terdiri dari sensor analog atau sensor data, tiga tombol push button untuk pengaturan menu, set
up dan set down, display (dapat berupa LCD, 7 Segment, atau dot matriks), aktuator (motor stepper,
servo, atau motor DC) dan indicator.
5. Judul sistem yang akan dibuat sesuai dengan kreativitas masing-masing kelompok, dan sensor yang
digunaka sesuai dengan judul yang diajukan. Diharapkan setiap kelompok menggunakan sensor,
display, dan aktuator yang berbeda.
79