Digital Input/Output
I. Dasar Teori
Digital berarti sinyal yang dikirimkan/diterima bernilai 1 atau 0, on atau off, HIGH atau LOW.
Berbeda dengan sinyal analog yang nilainya bersifat kontinyu, yakni nilai antara 0 dan 1
dipertimbangkan atau terdapat rentangan nilai dari 0 sampai 1. 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 dari komponen yang
terhubung ke board arduino. Mode output berarti mengeset pin agar dapat mengirimkan sinyal
dari arduino ke komponen lain atau ke rangkaian digital. Untuk mengeset mode pin, kita
gunakan fungsi pinMode(). Fungsi ini biasanya digunakan 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. Sebagai contoh, jika ingin membuat LED berkedip, LED tersebut bisa
dipasang pada salah satu pin digital dari arduino dan ground. Karena kita ingin membuat led
menyala berkedip jadi kita konfigurasi pin yang terhubung ke LED menjadi output.
Pada gambar diatas dapat dilihat untuk pin yang berwarna hijau tua (dari pin 0 sampai pin ke 13)
merupakan digital pin dari board arduino uno. Sedangkan untuk yang berwarna hijau muda
merupakan ground (GND).
Dan beberapa pin juga memiliki fungsi khusus :
Serial, terdiri dari 2 pin : pin 0 (RX) dan pin 1 (TX) yang digunakan untuk menerima
(RX) dan mengirim (TX) data serial.
External Interrups, yaitu pin 2 dan pin 3. Kedua pin tersebut dapat digunakan untuk
mengaktifkan interrups. Gunakan fungsi attachInterrupt()
PWM: Pin 3, 5, 6, 9, 10, dan 11 menyediakan output PWM 8-bit dengan menggunakan
fungsi analogWrite()
SPI : Pin 10 (SS), 11 (MOSI), 12 (MISO), dan 13 (SCK) mendukung komunikasi SPI
dengan menggunakan SPI Library
LED : Pin 13. Pada pin 13 terhubung built-in led yang dikendalikan oleh digital pin no
13.
TWI : Pin A4 (SDA) dan pin A5 (SCL) yang mendukung komunikasi TWI dengan
menggunakan Wire Library
void loop() {
digitalWrite(Led1, HIGH); // Untuk menghidupkan LED
delay(1000); // waktu tunda
digitalWrite(Led1, LOW); // untuk mematikan LED
delay(1000); // tunda waktu
}
void loop() {
digitalRead(pushButton);
if (pushButton == HIGH) {
digitalWrite(LedPin,HIGH);
}
else
digitalWrite(LedPin,LOW);
}
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
}
void loop() {
digitalRead(buttonPin1);
digitalRead(buttonPin2);
if (buttonPin1 == HIGH) {
// jalan kanan
digitalWrite(ledPin1,HIGH);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,LOW);
delay (1000);
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,HIGH);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,LOW);
delay (1000);
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,HIGH);
digitalWrite(ledPin4,LOW);
delay (1000);
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,HIGH);
delay (1000);
}
else {
digitalWrite(ledPin1,LOW);
digitalWrite(ledPin2,LOW);
digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,LOW);
delay (1000);
}
}
IV. Hasil dan Pembahasan
Pada percobaan kali ini menggunakan pin-pin digital dari arduino, dimana pin- pin
tersebut akan dipakai baik sebagai input maupun output. Seperti percobaan diatas
Pushbutton dipakai sebagai input dan Led dipakai sebagai output. Dan jika kita ingin
membuat pin digital arduino sebagai input, maka pada program di arduino.ide kita dapat
menulis “ pinMode (pushbutton1,INPUT); “ , dan untuk membaca hasil inputan dari
pushbuttonnya dapat digunakan “digitalRead (pushbutton); “ . Kemudian jika kita ingin
membuat pin arduino sebagai output maka untuk pin mode kita dapat tuliskan “pinMode
(Led1,OUTPUT); “