SETTING INPUT OUTPUT ARDUINO
Cara Setting Input Output Arduino;
Arduino mempunyai 13 pin (Digital I/O) yang dapat difungsikan sebagai
input ataupun output. Dalam bahasa mikrokontroler pin ini disebut General
Purpose Input Output (GPIO) atau dalam bahasa Indonesia bisa disebut pin dengan
fungsi umum. Mode input ataupun output pada pin ini dapat dilakukan dengan
memprogramnya pada void setup ().
Pin Mode Input
Pin
pada arduino secara default telah difungsikan sebagai mode input, sehingga jika
kita ingin menggunakan pin sebagai input tidak perlu menuliskan perintah
pinMode (). Pin ini memiliki impedansi tinggi setara dengan pemasangan
resistor 100 megaohm di depan pin. Dengan impedansi yang tinggi ini sangat
memudahkan untuk mengubah dari satu keadaan ke keadaan lainnya. Hal ini sangat
baik dalam membaca sensor seperti fotodioda, sensor sentuh kapasitif, atau
sensor analog seperti RTC.
Jika
pin sudah dikonfigurasikan sebagai mode input dengan perintah pinMode () dan
pin tersebut tidak terhubung dengan apapun (terbuka) maka pin tersebut akan
melaporkan keadaannya secara acak. Perubahan sedikit saja dari lingkungan dapat
mempengaruhi keadaan pin.
Untuk
menghindari keadaan pin input yang tidak menentu, maka perlu ditambahkan
resistor pull up atau resistor pull down. Resistor pull up adalah resistor
untuk menarik ke tegangan 5V, sedangkan resistor pull down untuk menarik ke
tegangan 0V. Besarnya resistor ini sebaiknya menggunakan 10K.
Pin Mode Input Pull Up
Di
dalam chip mikrokontroler yang ada pada Arduino board terdapat resistor pull up
yang besarnya 20k. Resistor pull up ini tidak aktif secara otomatis saat kita
mengatur pin untuk mode input. Pengaktifan resistor pull up ini dengan perintah
pinMode (pin, INPUT_PULLUP);
Nilai
dari resistor pull up ini tergantung dari mikrokontroler yang digunakan. Pada sebagian
besar mikrokontroler berbasis AVR nilainya antara 20K dan 50K. Untuk lebih
jelasnya bisa melihat data sheet mikrokontroler yang digunakan. Jika pin
difungsikan sebagai Input Pullup, maka pin harus terhubung dengan 0V (GND).
Sebagai contoh dalam menggunakan push button.
Saat
menghubungkan sensor ke pin yang dikonfigurasi dengan INPUT_PULLUP, ujung
lainnya harus terhubung ke ground. Dalam kasus sakelar sederhana, ini
menyebabkan pin membaca HIGH saat sakelar terbuka dan LOW saat sakelar ditekan.
Penggunaan
pin digital 13 akan ada masalah jika difungsikan sebagai input. Hal ini
dikarenakan pin digital 13 terhubung dengan resistor dan LED yang terpasang
secara permanen pada Arduino board. Jika pin digital 13 difungsikan sebagai
inpur, resistor LED ini akan selalu menarik kebawah (pull down). Ini berarti
pin akan selalu terbaca LOW. Jika terpaksa harus menggunakan pin 13 sebagai
input, maka atur pin pada mode input saja. Jangan aktifkan resistor pull up internal,
tetapi gunakan resistor eksternal sebagai pull down.
Pin Mode Output
Pin digital
yang difungsikan sebagai output dengan perintah pinMode () mempunyai impedansi
yang rendah. Hal ini berarti pin digital dapat mengeluarkan catu daya yang
cukup besar ke komponen lain. Mikrokontroler tipe ATmega mampu mengeluarkan
arus listrik hingga 40 mA. Dengan arus listrik yang sebesar itu dapat digunakan
untuk menghidupkan LED, Relay daya kecil, ataupun buzzer.
Jika terjadi
short (konslet) pada pin Arduino atau untuk mengendalikan komponen dengan arus
yang tinggi dapat transistor output dalam pin bahkan dapat merusak seluruh chip
mikrokontoler. Pin yang sudah rusak komponen internalnya tidak akan bisa
digunakan lagi sebagai input ataupun output. Kalaupun bisa digunakan maka tidak
akan berfungsi normal.