Anda di halaman 1dari 8

BBROBOTINDONESIA

PANDUAN PRAKTIKUM
DASAR ARDUINO

www.BELAJARBIKINROBOT.WEEBLY.com

Praktikum 14 Belajar Arduino


Input Output Analog dan Komunikasi Serial
Pada praktikum kita kali ini, kita akan mempelajari penggunaan Input Analog dan juga Output Analog.
Pembahasan kita kali ini akan sangat berguna, karena banyak dari sensor yang digunakan dalam aplikasi
robotic merupakan sensor yang menghasilkan bacaan data analog. Katakanlah, potensiometer, LDR, Sensor
Jarak Ultrasonic, dan lain sebagainya.
Untuk praktikum kali ini, yang akan kita lakukan adalah menggunakan sebuah input analog (dalam hal ini
komponennya yaitu potensiometer) untuk mengatur intensitas output analog (dalam hal ini LED yang kita
hubungkan ke pin PWM Arduino). Tidak usah berlama-lama, kita lanjutkan langsung ke praktikumnya berikut
ini.

Komponen yang dibutuhkan

Arduino Uno 1x

Protoboard 1x

LED5mm 1x

Resistor 3301x

Langkah-Langkah Praktikum

Potensiometer 10Kohm 1x

Kabel Jumper 5x

Susun dan rangkailah komponen-komponen praktikum seperti gambar di atas.


1.Hubungkan Kaki 1 Potensiometer dengan pin 5 volt Arduino menggunakan kabel jumper (warna merah).
2. Hubungkan Kaki Tengah Potensiometer dengan pin A0 Arduino menggunakan kabel jumper (warna kuning).
3. Hubungkan Kaki 2 Potensiometer dengan jalur Gnd protoboard menggunakan kabel jumper (warna hitam).
4. hubungkanlah kaki + Anoda LED ke Pin 13 Arduino menggunakan kabel jumper Male (warna biru)
5. hubungkan kaki - Katoda LED dengan kaki 1 Resistor (resistor tidak ada kaki + atau - nya).
6. hubungkan kaki 2 Resistor dengan Pin Gnd Arduino menggunakan kabel jumper Male (warna hitam)
3. Pasangkan board Arduino dengan port USB komputer menggunakan kabel USB.
4. Bukalah IDE Arduino kemudian ketikkan sketch berikut.
1.
const int pinInputPotensio = A0;
const int pinOutputLED = 10;
int bacaanInput = 0;
int hasilOutput = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
bacaanInput = analogRead (pinInputPotensio);
hasilOutput = map (bacaanInput,0,1023,0,255);
analogWrite (pinOutputLED,hasilOutput);
Serial.print("Nilai Potensiometer adalah =");
Serial.print(bacaanInput);
Serial.print("\t Outputnya adalah =");
Serial.println(hasilOutput);
delay(2);
}
5. Jika sudah, compile menggunakan tombol "verify" cek apakah ada kesalahan pengetikan sketch.
6. Upload ke Board Arduino menggunakan tombol "Upload" atau melalui File > Upload.
7. Bukalah jendela komunikasi serial pada IDE arduino caranya, pilih Tools > Serial Monitor.
Jika prosesnya benar, cobalah putar potensiometer kemudian perhatikan hasilnya pada IDE arduino jendela

komunikasi serial caranya pilih Tools > Serial Monitor. Perubahan nilai potensiometer akan menghasilkan
intensitas yang berbeda terhadap output kecerahan nyala dari LED kita.

Diskusi Sketch
Seperti biasa, kita coba membahas kode program dari praktikum di atas dengan membagi program tersebut.
Yang pertama kali kita lakukan pada sketch ini yaitu membaginya menjadi 3 bagian program. Kita mulai dari
blok yang pertama berikut ini.

BLOK PERTAMA
Block sketch yang pertama pada praktikum ini yaitu, deklarasi dan inisialisasi variable-variable yang kita
butuhkan. Berikut ini kode-kode deklarasi variable-variable tersebut.
const int pinInputPotensio = A0;
const int pinOutputLED = 10;
int bacaanInput = 0;
int hasilOutput = 0;
kita perhatikan dahulu dua variable yang pertama. Variable pinInputPotensio dan variable pinOutputLED.
const int pinInputPotensio = A0;
const int pinOutputLED = 10;
Kedua variable ini, kita berikan qualifier constanta agar variable ini tidak berubah-ubah nilainya akibat
program selanjutnya. Untuk dua variable yang selanjutnya, tidak kita berikan qualifier. Mengapa? Karena
variable yang selanjutnya ini akan kita gunakan sebagai variable yang menyimpan nilai yang berubah-ubah.
int bacaanInput = 0;
int hasilOutput = 0;
variable bacaanInput akan kita gunakan untuk menyimpan perubahan nilai potensiometer, sedangkan
variable hasilOutput akan kita gunakan untuk menyimpan perubahan nilai intensitas nyala LED pada
protoboard.
Baiklah, kita sudah beres dengan deklarasi dan inisialisasi variable. Sekarang kita lanjutkan ke blok program
yang berikutnya.

BLOK KEDUA
Pada blok yang kedua ini, kita meletakkan routine setup() kita. Berikut adalah kode programnya.
void setup()
{
Serial.begin(9600);
}

Tidak banyak yang kita lakukan di routine setup() ini. Di sini, kita hanya mengatur nilai baudrate komunikasi
serial antara komputer dengan Arduino kita dengan baudrate 9600. Tentu Anda sudah familiar dengan setting
komunikasi serial di atas. Untuk itu, mari kita lanjutkan kembali ke pembahasan blok program yang
selanjutnya yaitu routine loop().

BLOK KETIGA
Pada blok yang ketiga ini, kita meletakkan routine loop() kita, dan berikut ini kode-kodenya.
void loop()
{
bacaanInput = analogRead (pinInputPotensio);
hasilOutput = map (bacaanInput,0,1023,0,255);
analogWrite (pinOutputLED,hasilOutput);
Serial.print("Nilai Potensiometer adalah =");
Serial.print(bacaanInput);
Serial.print("\t Outputnya adalah =");
Serial.println(hasilOutput);
delay(2);
}
Pada routine loop() ini, kita mengawali program dengan membaca nilai dari pin Analog A0 (pin yang terhubung
ke potensiometer). Kemudian, nilai yang tadi dibaca, kita simpan dalam sebuah variable yang bernama
bacaanInput.
bacaanInput = analogRead (pinInputPotensio);
Ingat kembali, fungsi analogRead() akan membaca nilai antara 0 sampai dengan 1023.yang menjadi masalah
adalah, pin PWM yang kita jadikan Output LED tidak dapat menerima nilai ini, karena nilai yang dapat diterima
oleh pin PWM (dalam hal ini pin 10 Arduino) hanya bisa membaca nilai Analog 0 sampai 255. Jadi, apa yang
harus kita lakukan?!. Nah, untuk itulah, kode yang selanjutnya yaitu sebagai berikut.
hasilOutput = map (bacaanInput,0,1023,0,255);
Pada kode di atas, kita memetakan nilai dari bacaanInput yang nilainya dari 0 sampai 1023 menjadi 0 sampai
255. Fungsi yang melakukan pemetaan tersebut adalah fungsi map(). Fungsi map() ini, membutuhkan 5
parameter. Pertama, nama variable yang akan dipetakan (dalam map kali ini yaitu bacaanInput). Kedua dan
ketiga, nilai terendah dan tertinggi dari variable tersebut(dalam hal ini 0 sampai 1023), dan dua yang terakhir
yaitu, nilai terendah dan tertinggi yang diinginkan(dalam hal ini 0 sampai 255). Hasil pemetaan tersebut,
kemudian kita simpan lagi dalam sebuah variable, yaitu variable hasilOutput.
Baiklah, sekarang kita sudah memetakan dan menyimpan hasil pemetaan tersebut kedalam sebuah variable.
Sekarang apa selanjutnya yang kita lakukan. Perhatikan kode selanjutnya berikut ini.
analogWrite (pinOutputLED,hasilOutput);

Selanjutnya, kita gunakan hasil pemetaan tersebut untuk mengatur intensitas kecerahan dari nyala LED kita
yang kita hubungkan ke pin 11 (sebelumnya kita sudah deklarasikan pin 11 adalah pinOutputLED)
menggunakan fungsi analogWrite().
Seperti pernah kita pelajari bersama pada praktikum PWM sebelumnya, fungsi analogWrite() membutuhkan
dua parameter. Pertama, parameter pinnya (dalam hal ini pin 11) dan yang kedua, berapa nilainya (antara 0
sampai 255 dan telah kita simpan di variable hasilOutput). Jadi, kode di atas tersebutlah yang mengatur
kecerahan LED yang disesuikan dengan input putaran potensiometer kita pada protoboard. Semoga Anda
paham penjelasan saya.
Baiklah, sekarang, untuk memastikan bahwa program ini bekerja dengan benar. Khususnya yang berkaitan
dengan pemetaan dan pembacaan input agar sesuai dengan yang kita telah tentukan. Maka, kita tampilkan
informasi-informasi tersebut di layar komputer serial monitor. Untuk itulah kode-kode berikut kita gunakan.
Serial.print("Nilai Potensiometer adalah =");
Serial.print(bacaanInput);
Serial.print("\t Outputnya adalah =");
Serial.println(hasilOutput);
Di sini, kita membuat kode untuk menampilkan nilai bacaanInput dan hasilOutput ke jendela serial
monitor IDE Arduino kita. Tentu Anda sudah paham tentang fungsi print() dan println() dari library serial.
Karena kita sudah pernah membahasnya pada praktikum-praktikum yang sebelumnya. Hanya saja, di sini ada
sedikit informasi yang akan saya sampaikan. Perhatikan tanda \t pada baris yang ketiga dari kode di atas.
Tanda ini adalah sintaks agar pada jendela serial monitor hasil yang ditampilkan akan di TAB ke kanan (seperti
anda mengetik di MS WORD dan menekan tuts TAB). Dengan ini, sekarang tampilan di jendela serial monitor
akan terlihat lebih rapi.
Oke, akhirnya kita sampai pada kode yang terakhir dari routine ini. Berikut ini kode tersebut.
delay(2);
Anda tentu sudah sangat paham dengan fungsi ini. Fungsi delay() pada praktikum ini, kita gunakan agar
pembacaan dari input potensiometer dapat terbaca dengan baik dan stabil.
Baiklah, sebelum kita akhiri pembahasan pada praktikum ini, ada baiknya kita mereview apa yang kita lakukan
dalam routine utama kita kali ini. Berikut ini reviewnya.
1.
2.
3.
4.
5.
6.

Membaca nilai input dari pin analog A0 (potensiometer).


Menyimpan nilai tersebut ke dalam sebuah variable.
Memetakan nilai tersebut agar sesuai dengan skala yang dibutuhkan output analog.
Menyimpan nilai yang telah dipetakan ke dalam variable.
Menggunakan variable ini sebagai parameter analogWrite() yang mengatur kecerahan LED.
Delay program selama 2 mili detik untuk menstabilkan jalannya program.

Demikianlah praktikum dan pembahasan kita kali ini, terimakasih dan sampai jumpa di praktikum kita yang
selanjutnya.

Latihan Mandiri
1. Dengan menggunakan teknik seperti pada praktikum ini, ubahlah sketch agar output yang di atur
adalah intensitas kecepatan kedipan blink LED!
2. Tambahkan sebuah LED lagi pada pin 9. Dan buatlah kedua LED (pin 9 dan pin 10) menghasilkan output
yang berbeda dari satu input potensiometer yang sama. (LED pin 9 terang, LED pin 11 redup dan
sebaliknya).

www.BELAJARBIKINROBOT.WEEBLY.com

Anda mungkin juga menyukai