DIGITAL I/O
DI SUSUN OLEH :
B. TUJUAN PERCOBAAN :
1. Mengetahui tentang pin digital yang digunakan sebagai input.
2. Melakukan analisis pada rangkaian resistor pull-up yang dikonfigurasikan
sebagai INPUT
3. Mengetahui tentang pin digital yang dikonfigurasikan sebagai
INPUT_PULLUP.
4. Mengetahui kondisi pin digital yang difungsikan sebagai output.
D. TEORI DASAR
Semua pin pada Arduino, baik pin digital maupun pin analog, dapat digunakan
sebagai pin digital. Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau
0, on atau off, HIGH atau LOW, ada atau tidak ada sinyal. Berbeda dengan sinyal
analog yang nilainya bersifat kontinyu, yakni nilai antara 0 dan 1 dipertimbangkan.
Pin digital berarti pin dapat menerima/mengirim sinyal digital.
Secara umum pin pada Arduino dapat dikonfigurasi ke dalam dua mode, yaitu
mode input dan output. Mode input berarti mengeset pin agar dapat digunakan
untuk menerima masukan sinyal. Mode output berarti mengeset pin agar dapat
mengirimkan sinyal.
Untuk mengeset mode pin, kita gunakan fungsi pinMode(). Fungsi ini
biasanya dipanggil di dalam fungsi setup(). fungsi ini memerlukan dua
parameter, pinMode([nomorPin], [mode]). Parameter pertama diisi oleh nomor pin,
dan parameter kedua diisi oleh konstanta INPUT atau OUTPUT, sesuai dengan
mode yang ingin kita gunakan.
- pinMode(pin_number, mode)
Untuk mengecek mode pin dapat kita gunakan fungsi PIN mode
fungsi ini memerlukan dua parameter in mode nomor PIN mode
parameter pertama diisi oleh nomor pin dan kemudian parameter kedua
Disi oleh mode PIN baik mode input atau output sesuai dengan mode
yang kita ingin gunakan
Fungsi mode tadi biasanya dipanggil dalam fungsi set up fungsi
setup adalah nama fungsi yang telah disediakan oleh Arduino untuk
menyatakan fungsi yang akan dijalankan pertama kali fungsi ini berisi
kode-kode untuk kepentingan inisialisasi
- digitalWrite(pin_number, mode)
Fungsi ini digunakan untuk menulis nilai digital untuk sebuah pin
fungsi ini memerlukan dua parameter yaitu dan nilai digital yang akan
kita masukkan nilai yang di masukan berupa nilai digital seperti yang
telah kita ketahui nilai digital tersebut Iyalah 1 atau 0 dan juga biasanya
disebut dengan high low
- digitalRead(pin_number)
Fungsi ini digunakan untuk membaca nilai digital yang terdapat
pada sebuah pin input output yang ingin kita baca fungsi ini hanya
memiliki sebuah parameter yaitu nomor PIN yang ingin kita baca
Jadi saat menggunakan pin sebagai input pull-up, ujung lain dari perangkat
komponen sensor atau sebagai contoh pada tombol harus terhubung dengan ground.
Contoh digunakan tombol push button, jika tombol tidak ditekan atau kondisi
terbuka maka arduino akan membaca kondisi HIGH, dan kondisi LOW saat tombol
ditekan.
TUGAS PRAKTIKUM 1
1. GAMBAR RANGKAIAN
\
Gambar 3.2 Hasil uji coba tombol saat close.
4. ANALISIS
Untuk hasil dari level logika pada saat tombol terbuka, pada virtual serial
monitor pada aplikasi proteus bernilai 1, yang dimana seharusnya keadaan logika
pada saat terbuka itu floating, yang dimana tidak tentu antara high atau low.
Dikarenakan juga tidak ada arus yang masuk maupun keluar,
1. GAMBAR RANGKAIAN
Pada saat tombol tidak ditekan atau dalam keadaan terbuka, level logika yang
terbaca pada virtual terminal di proteus yaitu HIGH, dan led tidak menyala
dikarenakan
Yang dimana jika tombol bernilai tidak LOW atau 0, maka statemen yang
dieksekusi yaitu digitalWrite (13, LOW);
Yaitu statemen yang digunakan untuk mematikan LED. Bisa dilihat pada
gambar dibawah ini,
Yang dimana jika tombol bernilai LOW atau 0, maka statemen yang dieksekusi
yaitu digitalWrite (13, HIGH);
Yaitu statemen yang digunakan untuk menyalakan LED. Bisa dilihat pada
gambar dibawah ini,
Pada saat tombol tidak ditekan atau dalam keadaan terbuka, level logika yang
terbaca pada virtual terminal di proteus yaitu HIGH, dan led tidak menyala
dikarenakan
Yang dimana jika tombol bernilai tidak LOW atau 0, maka statemen yang
dieksekusi yaitu digitalWrite (13, LOW);
Yaitu statemen yang digunakan untuk mematikan LED. Bisa dilihat pada
gambar dibawah ini,
Yang dimana jika tombol bernilai LOW atau 0, maka statemen yang dieksekusi
yaitu digitalWrite (13, HIGH);
Yaitu statemen yang digunakan untuk menyalakan LED. Bisa dilihat pada
gambar dibawah ini,
Untuk kegunaan dari resistor 10K pada rangkaian yaitu untuk menghambat
arus pada sumber tegangan 5V agar arus menjadi 0,5 mA
Penambahan tegangan berfungsi agar pin tersebut tidak floating dan logika
menjadi HIGH/1, dan agar tidak terjadi short circuit ketika tombol di tekan, maka
ditambahkannya resistor, rangkaian ini disebut dengan rangkaian PULL-UP.
TUGAS PRAKTIKUM 4
1. GAMBAR RANGKAIAN
Gambar 3.4 Hasil uji coba tombol saat terbuka kedua kalinya.
4. ANALISIS
Pada percobaan kali ini, tombol digunakan sebagai switch yang ketika pertama
kali ditekan lalu dilepaskan maka lampu led akan menyala, ketika kita tekan lagi
lalu di lepaskan maka led akan mati.
Pada program diatas, untuk variabel switch untuk tombol yaitu but berawalan
TRUE, dan variabel switch untuk led berawalan FALSE. Jadi ketika tombol tidak
ditekan maka bernilai HIGH, maka perintah awal if tidak dijalankan karena tidak
memenuhi persyaratan dan lanjut menuju “but=FALSE”, yaitu mengeset switch
variabel untuk tombol menjadi FALSE, lalu pada ElSE IF, keadaan memenuhi
persyaratan, maka Statemen ELSE IF tersebut dijalankan. Statemen pada ELSE
IF tersebut hanya mengeset ulang variabel switch tombol (but) menjadi TRUE lagi.
Program ini akan terus melooping tanpa henti .
Ketika kita menekan tombol, maka perintah IF diawal tereksekusi dan menuju
ke if didalamnya. Keadaan if didalamnya yaitu , jika variabel switch LED TRUE
maka statement pada if tersebut dijalankan,yaitu mematikan LED dan mengeset
variabel switch LED menjadi FALSE, sebaliknya FALSE maka statemen ELSE
yang akam dijalankan, yaitu menyalakan LED dan mengeset variabel switch LED
menjadi TRUE. Ketika kita melepaskan tombol tersebut, maka akan kembali ke
perulangan sebelumnya yaitu kondisi pada ELSE IF dijalanjkan dan akan terus
berulang sampai tombol ditekan lagi. Ketika ditekan kembali maka IF diawal akan
tereksekusi dan pada saat itu kondisi switch variabel LED masih keadaan TRUE,
maka dari itu IF dalam IF lah yang dijalankan, yaitu statemen untuk mematikan
LED dan mengeset variabel switch LED menjadi FALSE. Program ini akan terus
berulang tidak berhenti karena program ada pada fungsi Void Loop().
5. FLOWCHART
MULAI
Kondi
si HIGH
tomb
ol
LOW
Kon
disi
LED HIDUP
MATI
Arduino memiliki berbagai macam pin salah satunya yaitu pin digital, dimana
pin digital ini mempunyai fungsi sebagai pin Input dan Output. Pada rangkaian
tombol pada percobaan ini menandakan bahwa keadaan logika pada arduino
random atau Floating. Maka dari itu fungsi dari rangkaian PULL-UP untuk
membuat logika pin menjadi HIGH, dan penggunaan resistor untuk mengatasi short
circuit.
Dalam arduino juga mempunyai include resistor PULL-UP yang tertanam pada
board arduino itu sendiri, kita tinggal memanggil program INPUT_PULLUP untuk
mengaktifkannya, yang dimana logika pin tersebut menjadi HIGH.
Daftar Pustaka