Mendeteksi Input Digital dengan Arduino

Pin Arduino merupakan pin universal yang dapat diset sebagai pin input maupun output. Untuk mengeset pin Arduino sebagai pin output digital, caranya sudah saya jelaskan di artikel “Mengeluarkan Output Digital dengan Arduino“. Sedangkan untuk mengesetnya menjadi pin input digital, caranya kurang lebih sama, yakni harus didefinisikan di void setup() dan mendeteksinya di void loop(). Pengertian INPUT disini adalah mendeteksi tegangan level digital (0 V dan 5 V) yang masuk ke salah satu pin digital Arduino. Tegangan 0 Volt akan diartikan sebagai logika ‘0’ atau LOW, sedangakan tegangan 5 Volt DC akan diartikan sebagai logika ‘1’ atau HIGH.

[alert-warning]Ingat, maksimum tegangan yang boleh masuk ke Arduino adalah 5V DC, tegangan yang melebihi tegangan ini dapat merusak Arduino Anda.[/alert-warning]

pin digital arduino uno

Ada dua macam parameter input yang dapat didefinisikan di Arduino. Yang pertama adalah INPUT, yang kedua adalah INPUT_PULLUP. Untuk pendefinisian mode pin sebagai input digital, sintaksnya adalah sebagai berikut :

pinMode (no_pin, INPUT); atau

pinMode (no_pin, INPUT_PULLUP);

Perbedaannya, jika Anda mendefinisikan pin digital sebagai ‘INPUT’ saja maka Anda akan membutuhkan sebuah resistor pull-up/pull-down eksternal. Namun jika didefinisikan sebagai ‘INPUT_PULLUP’ maka resistor pull-up eksternal tidak dibutuhkan lagi karena resistor pull-up internal akan diaktifkan.

perbedaan resistor pull up dan pull down - cara mendeteksi tombol dengan Arduino

Kemudian, dari kedua definisi di atas, yang mana yang harus digunakan? Tergantung dari aplikasi Anda, ingin mendeteksi input sebagai ‘active LOW‘ (aktivitas dipicu oleh logika ‘0’) atau ‘active HIGH‘ (aktivitas dipicu oleh logika ‘1’). Jika sekiranya aplikasi input membutuhkan resistor pull-up seperti pendeteksian tombol secara active LOW sebaiknya menggunakan INPUT_PULLUP karena akan jauh menghemat jalur PCB Anda.

Kemudian untuk mulai mendeteksi tegangan, Anda harus memanggil function digitalRead(no_pin); dengan parameter ‘no_pin’ adalah nomor pin digital Arduino (pin 0 s.d 13 pada Arduino Uno). Function ini akan mengembalikan sebuah nilai (return value) ‘0’/’1’ atau ‘LOW’/’HIGH’ yang merupakan hasil pembacaan status pin input. Oleh karena itu Anda bisa menyimpannya dalam sebuah variabel terlebih dahulu.

Sebagai contoh, Anda dapat membuka contoh program ‘Button’ pada menu File | Examples | Digital | Button. Pada contoh program ini Anda akan ditunjukkan sebuah sketch yang mampu menangani input berupa tombol dengan rangkaian tambahan resistor pull-down

cara mendeteksi input digital dengan Arduino - contoh program button

Terakhir, saya menggunakan kata ‘mendeteksi’ bukan ‘mengukur’ untuk pin input digital, karena memang pada pin digital ini hanya bisa digunakan untuk ‘membedakan’ dua kondisi saja yakni logika ‘0’ (LOW atau tegangan 0V) dan logika ‘1’ (HIGH atau tegangan 5V). Sedangkan jika Anda bermaksud untuk ‘mengukur’ level tegangan analog, Anda harus menggunakan pin Analog (pin A0 s.d A5 pada Arduino Uno) yang mampu mengukur tegangan analog (kontinu) dari level 0V sampai dengan 5V karena di dalamnya terhubung dengan ADC (Analog to Digital Converter) internal. Sekali lagi batas ambang maksimal tegangan analog yang dapat diterima Arduino adalah 5V, jadi di atas tegangan ini dapat merusak Arduino.

0 0 votes
Article Rating
Tags:

Leave a Reply

10 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
nur hayati

kalau gini soalx , brrti makek rumus yang mana mas? Buatlah pengendali untuk memonitor ketinggian air pada tandon air yg di tampilkan di led dlm bntuk persen dg jumlah sensor 10

Turno

Asalamualaiqum mas..? Mas saya mau minta tolong, mungkin sedikit beda judul. Oya mas bagaimana cara menyalakan led dengan button, akan tetapi dengan cara 5x button di tekan baru led menyala. Dari sket di bawah ini apa yg harus perlu di tambahkan, mohon bantuannya mas, ma’lum masih pemula. int buttonPin = 2;            // membuat variabel buttonPin untuk pin 2  int ledPin =  13;              // membuat variabel ledPin untuk pin 13 int buttonState = 0;         // variabel untuk posisi awal button agar dibaca LOW void setup() {   pinMode(ledPin, OUTPUT);    // membuat ledPin menjadi OUTPUT   pinMode(buttonPin, INPUT);     // membuat buttonPin menjadi INPUT } void loop() {  buttonState = digitalRead(buttonPin);     //… Read more »

Turno

Bisakah Mas aji memberi sedikit gambaran, mengenai sket yg sudah memiliki variabel,? sehingga bila push button di tekan sebanyak 5x , lampu led akan menyala.
Jujur kami setengah menyerah dengan kasus tersebut, jadi saya mohon bantuannya mas.

setiawan

kabel (+) adaptor 220vac ke 5vdc dihubungkan ke pin digital… lalu kabel (-) nya ke ground. dengan koneksi seperti itu, apakah bisa dipakai buat cek PLN mati atau Nyala yak om, ?

Gopin

mau nanyak mas. kebetulan untuk materi skripsi , saya mengambil pengambilan input digital oleh photodiaa diman saya menggunakan dua buah photodioda dan dua led infra merah, dimna dalm cara kerjanya photodioda berhdapan dengan led, ketika led mati, photodioda akan aktif dan bekerja, nah yang mau saya tanyakan ni untuk programnya sendiri sudah sya buat tpi di serialnya monitornya gada hasil pembacaan.

10
0
Would love your thoughts, please comment.x
()
x