Anda di halaman 1dari 15

LAPORAN PRAKTIKUM

MIKROPROSESOR DAN MIKROKONTROLER

Oleh
RAHUL MUALIF SIBARANI
32219068
2C TEKNIK TELEKOMUNIKASI

PRODI D3 TEKNIK TELEKOMUNIKASI

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI UJUNG PANDANG

2021
Analog Input-Output

1. Tujuan
- Mengidentifikasi pin analog
- Mengakses pin analog mikrokontroler
- Membuat program aplikasi analog input output

2. Dasar Teori
Pada beberapa sistim kontrol, pengolahan input dan output secara digital mungkin
sudah memenuhi kinerja yang dibutuhkan. Akan tetapi pada kondisi tertentu ada
kemungkinan dihadapkan pada kondisi input dan output yang membutuhkan besaran
yang berubah-ubah dengan nilai yang kontinyu dan tidak lagi hanya dengan dua keadaan
seperti halnya sinyal digital. Sinyal semacam ini disebut sebagai sinyal analog, sebagai
contoh saat menghubungkan sensor yang tegangan keluarannya bervariasi dalam dari 0
volt sampai 5 volt. Maka dalam hal ini Arduino sebagai kontroler harus mampu
mengidentifikasi/mengolah semua variasi tegangan keluaran dari sensor yang dihubungkan
pada pin inputnya tersebut. Begitu juga halnya saat diperlukan tegangan output yang
membutuhkan nilai tegangan yang bervariasi, seperti misalnya saat kita menginginkan
mengatur tingkat keterangan sebuah led atau berubahnya kecepatan sebuah motor. Arduino
uno memiliki pin I/O untuk mengakses atau menerima data yang berupa sinyal analog
maupun sinyal digital.

2.1. Input Analog


Sinyal analog menjelaskan variabel fisik yang bervariasi terus menerus dan
berhubungan dengan variabel lain. Contoh dari sinyal analog yaitu intensitas cahaya
LED yang diatur arusnya melalui variasi supply tegangan LED tersebut, atau suhu di
kamar yang berjalan sering dengan berjalannya waktu.
Sinyal analog dapat mengambil nilai-nilai yang tak terbatas. Tetapi
pada mikrokontroler tidak dapat mewakili jumlah yang tak terbatas nilainya itu.
Sehingga yang harus dilakukan ketika ada sinyal analog yaitu sampling dengan cara
mengubah sinyal analog tersebut menjadi sinyal digital melalui pin khusus yaitu pin
Analog ke Digital Konversi (ADC). Hal ini berarti mikrokontroler memilih nilai-nilai
tertentu pada sinyal analog dan menggunakan serangkaian bit untuk mewakili nilai-nilai
tersebut.
Pin analog (ADC) tersebut berfungsi sebagai pengubah sinyal analog menjadi output
digital sehingga mudah diolah dan dapat diukur. Pin analog (ADC) dapat mengukur
nilai tegangan yang masuk dengan kondisi normal range dari 0 – 5 Vdc yang akan
dibandingkan dengan tegangan refrensinya (Vref). Hal ini berguna saat akan mengukur
output tegangan dari suatu sensor yang terhubung serta dapat dimanfaatkan untuk
keperluan pengondisian program. Untuk membaca sinyal analog yang terhubung pada
pin ADC di Software IDE Arduino yaitu menggunakan fungsi analogRead([nomorPin]).
Arduino khusus menyediakan 6 kanal (8 kanal pada model Mini dan Nano, dan 16 pada
model Mega) untuk difungsikan sebagai analog input. Analog ke digital converternya
menggunakan resolusi 10 bit yang berarti range nilai analog dari 0 volt sampai 5 volt akan
dirubah kenilai integer 0 sampai 1023, atau resolusinya adalah 5 volt/1024=4,9mV per unit
dimana itu berarti nilai digital yang dihasilkan akan berubah setiap perubahan 4,9mV
dari tegangan input analognya. Akan tetapi range input analog dan resolusi tersebut dapat
dirubah dengan fungsi analogReference().

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 diperhatikan, jangan menggunakan referensi di bawah 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 merusak mikrokontroler.

2.2. Output Analog


Output analog Arduino tidak dapat dihasilkan secara langsung, tetapi harus
melewati
proses pengubahan output dari digital menjadi analog yang memerlukan fungsi
komponen Digital to Analog Converter. Tetapi fungsi tersebut tidak terdapat pada
Arduino, sehingga memerlukan modul eksternal (modul DAC) sebagai konverter sinyalnya.
Di sisi lain, output analog pada Arduino kebanyakan memiliki fitur PWM (Pulse Width
Modulation). Contoh apabila arduino yang dihubungkan dengan LED ingin mengendalikan
intensitas cahaya LED tersebut (nyala terang – redup mati).
Analog output yang terdapat di Arduino akan mengeluarkan sinyal analog dengan nilai
pwm / intensitas yang telah diprogram/setting. PWM seolah – olah dapat memanipulasi
/
mengubah sinyal digital menjadi sinyal analog. Dengan cara Arduino mengubah
keluaran sinyal digital dari logika HIGH ke LOW atau sebaliknya dengan waktu yang telah
ditentukan. Lama waktu untuk logika HIGH dikatakan dengan istilah panjang pulsa
atau pulse width. Variasi perubahan nilai output analog dihasilkan dari perubahan
panjang pulsa yang telah diset dengan kondisi waktu tertentu serta dikerjakan secara
berulang-ulang.
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.
3. Langkah kerja
3.1 Membuat program aplikasi input output analog secara langsung pada Arduino.
Untuk yang pertama menggunakan potensiometer yang dihubungkan pada analog pin 0
seperti pada gambar berikut ini:

Pada latihan ini akan menampilkan nilai input analog yang dihasilkan pada serial monitor
dengan merubah posisi potensiometer. Sketchnya sebagai berikut:

int analogPin = 0;
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
val = analogRead(analogPin);
//tampilkan pada serial monitor dalam desimal
Serial.println(val,DEC);
//tampilkan pada serial monitor dalam biner
Serial.println(val,BIN);
delay(1000); //refresh tampilan setiap 1 detik
}

Pada posisi potensio minimum akan menghasilkan nilai 0 dan posisi potensio maksimum
menghasilkan nilai 1023 atau 1111111111(biner).
3.2. Berikutnya membuat program analog output dengan mengeluarkan sinyal analog ke pin 9
yang dihubungkan dengan resistor dan led seperti rangkaian berikut:

sketchnya adalah:

int kecerahan = 0;
int levelperubah = 5;//step perubahan kecerahan

void setup() {
Serial.begin(9600);
}

void loop() {
analogWrite(9, kecerahan);
//tampilkan kecerahan di serial monitor
Serial.println(kecerahan);
//perbaharui nilai kecerahan
kecerahan = kecerahan + levelperubah;
if (kecerahan == 0 || kecerahan == 255) {
//jika mencapai nilai batas levelperubah = -
levelperubah ;
//berubah kenilai sebaliknya
}
delay(500);
}

Hasilnya kecerahan led akan berubah setiap 1/2 detik dengan step perubahan 5
digit, setelah mencapai kecerahan maksimum (tampilan pada serial monitor 255) akan
redup kembali sampai led padam (tampilan pada serial monitor 0) dan akan terus
berulang kembali begitu seterusnya.
3.3. Kombinasikan analog input dari potensiometer untuk mengatur analog output kecerahan
dari LED, seperti gambar berikut:

Sketchnya sebagai berikut:

const int analogInPin = 0; // analog input pin analog 0


const int analogOutPin = 9; // analog output pin 9 led

int sensorValue = 0; // variable input analog


int outputValue = 0; // variable output analog

void setup() {
// inisialisasi komunikasi serial pada 9600 bps:
Serial.begin(9600);
}

void loop() {
// membaca nilai analog in:
sensorValue = analogRead(analogInPin);
// memetakan kedalam kisaran output analog:
outputValue = map(sensorValue, 0, 1023, 0, 255);
// merubah nilai analog output:
analogWrite(analogOutPin, outputValue);

// mencetak pada serial monitor:


Serial.print("sensor = " );
Serial.print(sensorValue); Serial.print(" output
= "); Serial.println(outputValue);
// tunggu 20 milidetik sebelum pembacaan berikutnya delay(20);
}
Pada sketch di atas digunakan function “map()” untuk memetakan input analog yang
resolusinya 1024 ke output analog yang resolusinya hanya 256.
3.4. Buatlah program analog input menggunakan sensor suhu LM35 dengan algoritma
sebagai berikut:

- suhu <27 derajat, Led Hijau menyala


- suhu> 27 atau <30, Led Kuning menyala
- Suhu >30 atau <35 Led Merah menyala
- Suhu >35 Led Merah blink

Sensor LM35 mendeteksi suhu 1derajat celcius/10 mV


DUINO1
R1
330R
APK-TECH | techno-apk.blogspot.com

D1 D2 D3
LED-RED LED-YELLOW LED-GREEN
AREF
13
PB5/SCK
12
PB4/MISO
1 U1 RESET ~PB3/MOSI/OC2A
11
10
~ PB2/SS/OC1B 9
~ PB1/OC1A 8
PB0/ICP1/CLKO
27.0
ATMEGA328P-
PU
ANALOG IN

1121

(~PWM)
DIGITAL

PD7/AIN1 7
VOUT 2 6
A0 PC0/ADC0 ~PD6/AIN0 5 RXD
A1 ~ PD5/T1
PC1/ADC1 4
A2 PC2/ADC2 PD4/T0/XCK 3 TXD
A3 PC3/ADC3 ~PD3/INT1
3 LM35 A4 2
PC4/ADC4/SDA PD2/INT0 RTS
A5 PC5/ADC5/SCL TX PD1/TXD 01
RX PD0/RXD CTS

ARDUINO UNO R3

Hasil Percobaan

A. Program Input Output Analog Pada Arduino Menggunakan Potensiometer :

Rangkaian input output analog


B. Program Analog Output Mengeluarkan Sinyal Analog Ke Pin 9 Dihubungkan
Dengan Resistor Dan Led :

Hasil kecerahan led berubah setiap 1/2 detik dengan step perubahan 5 digit
Setelah Mencapai Kecerahan
C. Analog Input Dari Potensiometer Untuk Mengatur Analog Output Kecerahan Dari
LED :

Rangkaian Kombinasi Analog Input Dari Potensiometer Untuk Mengatur Analog Output
Kecerahan Dari Led
D. Program Analog Input Menggunakan Sensor Suhu LM35 :

❖ Suhu <27 Derajat, Led Hijau Menyala

❖ Suhu> 27 Atau <30, Led Kuning Menyala


❖ Suhu >30 Atau <35 Led Merah Menyala

❖ Suhu >35 Led Merah blink


ANALISIS
Berdasarkan hasil dari percobaan dari membuat program aplikasi input output
pada arduino maka dapat dinyatakan pada percobaan pertama menghasilkan nilai 0 dari
nilai potensio maksimum menghasilkan nilai 1023. Percobaan kedua menghasilkan
kecerahan led ½ detik dengan step perubahan 5 digit dan setelah mencapai kecerahan
maksimum akan redup kembali sampai LED padam dan berulang kembali sampai
seterusnya. Percobaan ketiga mengkombinasikan analog input dari potensiometer untuk
mengatur kecerahan dari LED. Dan yang terakhir menggunakan sensor suhu LM35 yang
menggunakan algoritma yang ditentukan.

Pada suhu :
➢ Suhu <27 derajat, Led Hijau akan menyala,
➢ suhu >27 atau <30, Led Kuning yang akan menyala
➢ Suhu yang mencapai >35, Led Merah akan blink atau Led merah akan berkedap-kedip
KESIMPULAN
Beradasarkan hasil percobaan dan analisis maka saya dapat menyimpulkan
bahwa arduino memiliki pin I/O untuk mengakses atau menerima data sinyal analog dan
digital. Pin analog ADC berfungsi sebagai pengubah sinyal analog menjadi output digital
sehigga mudah untuk di ukur. Dan hasil percobaan menggunakan sensor suhu menghasil
LM35 yang menggunakan algoritma ditentukan menghasilkan Pada suhu :
➢ Suhu <27 derajat, Led Hijau akan menyala,
➢ suhu >27 atau <30, Led Kuning yang akan menyala
➢ Suhu yang mencapai >35, Led Merah akan blink atau Led merah akan berkedap-kedip

Anda mungkin juga menyukai