Oleh
RAHUL MUALIF SIBARANI
32219068
2C TEKNIK TELEKOMUNIKASI
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.
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:
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);
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
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 :
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