OLEH :
NAMA : NUR ALIYAH SYAM
NIM : 42221057
KELAS : 3C TRJT
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 ptogram 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);
DUINO1
R1
330R
APK-TECH | techno-apk.blogspot.com
D1 D2 D3
LED-RED LED-YELLOW LED-GREEN
AREF
13
PB5/SCK
12
U1 PB4/MISO
1 RESET 11
~PB3/MOSI/OC2A 10
~ PB2/SS/OC1B
ATMEGA328P-PU
9
1121
DIGITAL (~PWM)
~ PB1/OC1A
8
27.0 PB0/ICP1/CLKO
7
ANALOG IN
PD7/AIN1
2 6
VOUT A0 ~PD6/AIN0 RXD
PC0/ADC0 5
A1 ~ PD5/T1
PC1/ADC1 4
A2 PD4/T0/XCK TXD
PC2/ADC2 3
A3 ~ PD3/INT1
3 LM35 PC3/ADC3 2
A4 PD2/INT0 RTS
PC4/ADC4/SDA 1
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD CTS
ARDUINO UNO R3
4. HASIL DATA PERCOBAAN
• Hasil langkah percobaan 3.2 ptogram analog output dengan mengeluarkan sinyal analog
ke pin 9yang dihubungkan dengan resistor dan led
• Hasil langkah percobaan 3.3 input dari potensiometer untuk mengatur analog output
kecerahan LED
• Hasil langkah percobaan 3.4 program analog input menggunakan sensor suhu DHT.
5. ANALISA DATA
• Pada percobaan 3.1 Potensiometer digunakan sebagai analog input output, nilai akan
muncul dalam format desimal dan biner. Ketika potensiometer diputar kearah kanan
maka hasilnya maximum dan apabila diputar ke kiri maka hasilnya minimum. Pada
posisi potensio minimum akan menghasilkan nilai 0 dan posisi potensio maksimum
menghasilkan nilai 1023 atau 1111111111(biner).
• Pada percobaan 3.2 dilakukan pengontrolan cahaya. Cahaya led akan bertambah tingkat
kecerahannya dengan interval 5. Dimulai dari 0 hingga 255. Pada saat 255 akan
menurun dengan selisih 5 hingga mencapai 0, dan terus berulang.
• Pada percobaan 3.3 dengan input potensiometer maka kecerahan led akan bertambah
dengan nilai potensiometer hingga 4095 dan nilai led 255. Apabila jarum potensiometer
ada di tengah, untuk kekanan ke nilai maximum dan kecerahan bertambah, untuk kekiri
ke nilai minimum dengan kecerahan berkurang hingga redup.
• Pada percobaan 3.4 terdapat sebuah program analog input menggunakan sensor
suhu DHT dengan algoritmasebagai 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
Dengan menggunakan sensor DHT dan LED. sensor DHT (DHT22 atau DHT11) untuk
membaca suhu dan kelembaban udara, dan kemudian mengendalikan lampu LED
berdasarkan nilai suhu yang diukur. Paling inti digunakan pernyataan if dan else if
yang mengendalikan lampu LED berdasarkan suhu yang terbaca. Pada suhu tertentu,
berbagai lampu LED akan dinyalakan sesuai dengan batasan suhu yang telah
ditentukan. Misalnya, jika suhu kurang dari 27 derajat Celsius, lampu hijau akan
dinyalakan. Jika suhu antara 27 dan 30 derajat, lampu kuning akan dinyalakan, dan
seterusnya. Jika suhu di atas 35 derajat, maka fungsi blinkRedLed() akan dipanggil
untuk membuat lampu merah berkedip.
6. KESIMPULAN
Pada praktikum ini dapat disimpulkan :
Pin analog pada ESP32 adalah pin yang dapat digunakan untuk membaca tegangan analog
dari sumber eksternal atau sensor. ESP32 memiliki unit Analog-to-Digital Converter
(ADC) yang bisa untuk mengukur tegangan analog di beberapa pin yang telah ditentukan.
ESP32 digunakan untuk berinteraksi dengan sensor-sensor yang mengeluarkan data dalam
bentuk tegangan analog, seperti sensor suhu dan sensor cahaya. value: nilai duty cycle
yang diinginkan dengan nilai 0-255, yang berarti nilai 0 untuk 0Volt dan 255 untuk
tegangan keluaran maksimum atau 5Volt.