Tujuan
Secara teori suatu analog output akan mengeluarkan output tegangan bervariasi
sesuai dengan nilai yang dikehendaki, maka seharusnya pin output analog Arduino
seharusnya mampu mengeluarkan tegangan output dengan kisaran tegangan dari 0 V
sampai 5V. Akan tetapi tidak demikian adanya, karena pin-pin Arduino yang
difungsikan sebagai output sebenarnya hanya mampu sebagai digital output yaitu
hanya mampu mengeluarkan tegangan 0V atau 5V. Lalu bagaimana Arduino
menangani Analog Output tersebut. Arduino menggunakan cara Pulsa Wide Modulasi
(PWM) atau modulasi lebar pulsa untuk menghasilkan analog output yang
dikehendaki. Metode PWM ini menggunakan pendekatan perubahan lebar pulsa untuk
menghasilkan nilai tegangan analog yang diinginkan. Pin yang difungsikan sebagai
PWM analog output akan mengeluarkan sinyal pulsa digital dengan frekwensi 490 Hz
dimana nilai tegangan analog diperoleh dengan merubah Duty Cycle atau
perbandingan lamanya pulsa HIGH terhadap periode (T) dari sinyal digital tersebut.
Jika pulsa HIGH muncul selama setengah dari periode sinyal maka akan
menghasilkan duty cycle 5o% yang berarti sinyal analog yang dihasilkan sebesar
setengah dari tegangan analog maksimal yaitu 1/2 dari 5 V atau sama dengan 2,5 V
begitu juga halnya jika pulsa HIGH hanya seperempat bagian dari periode sinyal
maka tegangan analog identik yang dihasilkan adalah 1/4 dari 5V = 1,25 V dan
seterusnya.
Perintah yang digunakan untuk output analog adalah analogWrite (pin,value), dimana:
Pin: nomor pin Arduino yang akan digunakan sebagai analog output
value: nilai duty cycle yang diinginkan dengan nilai 0-255, yang berarti nilai 0 untuk
0Volt dan 255 untuk tegangan keluaran maksimum atau 5Volt.
Pada gambar diatas dapat dilihat untuk pin yang biru (dari pin 0 sampai pin ke 5)
merupakan analog pin dari board arduino uno. Sedangkan untuk yang berwarna coklat
tua merupakan VCC, dan yang berwarna coklat muda merupakan ground (GND).
Pada praktikum ini juga mempraktekan tentang statement control dimana
statement control ini merupakan sebuah statement yang terdiri dari kondisi-kondisi
yang dimana jika kondisi tersebut terpenuhi program akan melakukan suatu instruksi
tertentu. Jadi dapat di katakan statement control merupakan penunjuk arah bagi urutan
suatu program.
Dalam bahasa C++ ada beberapa jenis statement control sebagai berikut :
1. Kontruksi if
Pada konstruksi if sebuah konstruktur program hanya memiliki sebuah kondisi,
artinya dimana suatu instruksi atau beberapa instruksi akan di jalankan apabila sebuah
kondisi tersebut di penuhi, namun apabila kondisi tersebut tidak terpenuhi maka
instruksi yang ada tidak akan di jalankan.
Berikut sintaks dari konstruksi if :
if (kondisi)
{
Instruksi/statement;
}
2. Konstruksi if else
Pada konstruksi if else sedikit berbeda dengan konstruksi if karena pada konstruksi if
else . jika sebuah kondisi tidak terpenuhi maka program akan mencari kondisi lain
yang ada atau menjalankan instruksi yang berada di luar bagian dari kondisi yang
tidak terpenuhi.
Berikut sintaks dari konstruksi if-else :
if (kondisi)
{
Statement/instruksi;
}
else
{
Statement/instruksi;
}
else if (kondisi)
{
Statement/instruksi;
}
else
{
Statement/instruksi;
}
\\
IV. Analisa Data
Pada percobaan pertama, kita menggunakan pin-pin analog dari arduino yaitu dari pin
A0 sampai dengan pin A5, dimana pin- pin tersebut akan dipakai sebagai analog
input. Seperti percobaan diatas Potensiometer dipakai sebagai input dan Led dipakai
sebagai output. Dan jika kita ingin melihat pembacaan analog dari potensiometer pada
pin A3 yaitu analogRead pada program. Nilai yang tampil tergantung pada sejauh
mana kita memutar potensiometer, ada nilai maksimum dan ada nilai minimum dari
potensiometer itu sendiri yaitu 0-1023. Nilai 1023 didapatkan dari
2n -1 = 1024-1 = 1023. Nilai maksimum yang didapatkan pada percobaan ini
adalah 1004 dan nilai minimumnya adalah 19 dimana nilainya tidak sesuai karena
adanya resistor yang dihubungkan dengan kaki Ground dan kaki VCC potensiometer.
Pada percobaan kedua yaitu aplikasi input analog. Berbeda dengan percobaan
pertama, disini kita mau melihat aplikasi dari input analog dengan menggunakan
perintah statement control if. Dimana kita ketahui bahwa outputnya adalah LED.
Nilai analog dari potensiometer akan terbaca dengan menghubungkan pin 2 pada
potensiometer dengan pin A3 Arduino. Serial print digunakan untuk menampilkan
kata data pada serial monitor dan Serial.printIn digunakan untuk menampilkan
nilai dari sensor atau nilai dari potensiometer yang terbaca pada serial monitor. Jika
(if) nilai potensio lebih dari 100 maka LED akan menyala dan jika (if) nilai potensio
kurang dari 99 maka LED akan mati.
Pada percobaan ketiga, yaitu aplikasi input analog dengan range 100-200 LED
menyala. Seperti halnya percobaan kedua, percobaan kali ini menggunakan batas nilai
100-200 untuk menyalakan LED dan juga menggunakan statement control yaitu if-
else. LED berperan sebagai output, serial print tetap menggunakan kata data=
untuk ditampilkan pada serial monitor. Jika (if) nilai potensio lebih dari 100 dan nilai
potensio kurang dari 200, maka LED akan menyala dan akan menampilkan Led
nyala pada serial monitor. Selain itu (else), maka LED akan mati. Tertera jelas
bagaimana perintah if-else pada dasar teori, perintah ini akan menyalakan LED pada
nilai lebih dari 100 dan kurang dari 200, selain itu maka LED akan mati. Perintah &&
pada program adalah operasi bolean AND dimana perintah ini dapat digunakan
pada if statement yaitu kedua operasi bernilai benar atau keduanya bernilai HIGH.
V. Kesimpulan
Pada percobaan kali ini menggunakan pin-pin analog dari arduino yaitu dari pin A0
sampai dengan pin A5, dimana pin- pin tersebut akan dipakai sebagai analog input. Seperti
percobaan diatas Potensiometer dipakai sebagai input dan LED dipakai sebagai output.
Pada percobaan ini juga kami mampu mengetahui perintah-perintah statement control if
dimana perintah suatu instruksi atau beberapa instruksi akan di jalankan apabila sebuah
kondisi tersebut di penuhi, namun apabila kondisi tersebut tidak terpenuhi maka instruksi
yang ada tidak akan di jalankan dan if-else jika sebuah kondisi tidak terpenuhi maka
program akan mencari kondisi lain yang ada atau menjalankan instruksi yang berada di
luar bagian dari kondisi yang tidak terpenuhi.
PRAKTIKUM MIKRO & TAM
ANALOG INPUT/OUTPUT
Oleh: