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]
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.
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
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.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
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
anggap tandon air yg penuh itu 100%, kemudian bagi ketinggian tandon menjadi 10 bagian yg sama. Tiap bagian kasih sensor ketinggian. Nah ketika air mengenai sensor, tambahkan 10%
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 »
wass. wr wb. kurang variabel penyimpan nilai berapa kali tombol ditekan
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.
itu kan udah ada variabel buttonState untuk mendeteksi tombol tsb ditekan atau tidak. Kemudian definisikan satu variabel lagi (misal variabel ‘counter’) untuk menyimpan data berapa kali variabel buttonState ini bernilai HIGH (katakanlah jika buttonState bernilai HIGH adalah saat tombol ditekan).
contoh codingnya :
if (buttonState==HIGH) counter=counter+1;
ntar dicek jika variabel counter sudah > 5, nilai variabel counter direset menjadi 0
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, ?
bisa mas, cuma kalo adaptornya rusak nanti dianggapnya pln mati he he
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.
coba bagi dua pekerjaan untuk troubleshootnya. Yg pertama, dari sisi hardware, mau model gimana output rangkaiannya, apakah digital atau analog. Yg kedua sisi software, bikin simulasi jika inputnya digital atau analog gimana cara menampilkannya di serial monitor. Keduanya dikerjakan terpisah, kalo udah yakin baru digabung