Sunday, October 9, 2016

INPUT OUTPUT DIGITAL ARDUINO

Kali ini kita akan belajar tentang konsep input output digital pada arduino dan bagaimana menggunakan input output digital pada arduino.

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. Sebagai contoh, lihat pada kode berikut.

void setup() {
 pinMode(1, INPUT); //deklarasikan 1 sebagai INPUT 
 pinMode(2, OUTPUT); //deklarasikan 2 sebagai OUTPUT 
} 

INPUT DIGITAL

Input digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu. Adanya input digital memungkinkan mikrokontroler untuk dapat menerjemahkan 0V menjadi logika LOW dan 5V menjadi logika HIGH.

Membaca sinyal digital pada Arduino dapat menggunakan sintaks digitalRead(pin);
Berikut contoh sederhana membaca state dari sebuah push button, lalu menampilkan kondisi state push button tersebut pada teminal.


Komponen yang digunakan :
- Arduino
- Resistor 330 ohm
- Push Button
- Protoboard
- Kabel jumper



Setelah rangkaian sudah kamu buat hubungkan Arduino ke PC menggunakan kabel downloader. Selanjutnya buka software arduino dan copas program dibawah ini ke software Arduino, kemudian upload lah programnya.

int tombol = 9; //deklarasi pin 9 dengan nama 'tombol'

void setup() {

  Serial.begin(9600); //komunikasi serial dgn baud rate 9600 bits per second
  pinMode(tombol, INPUT); //deklarasikan tombol sebagai INPUT

}

void loop() {

  int keadaanTombol = digitalRead(tombol); //baca state tombol

  if (keadaanTombol == 1) {
    Serial.println("Tombol on"); //print state tombol melalui serial
  }
  else  {
    Serial.println("Tombol off"); //print state tombol melalui serial
  }

  delay(100); //delay 100 milisekon
}
Setelah program selesai kamu upload di software Arduino kemudian buka serial monitor yang berada di pojok kanan atas dengan cara mengekliknya.


Jika Push Button ditekan maka akan muncul tulisan "Tombol on" dan jika Push Button tidak ditekan / dilepas maka akan muncul tulisan "Tombol off". "Tombol on" dan "Tombol off"  merupakan state digital push button yang terbaca pada pin input digital Arduino yang digunakan.

PENJELASAN

Apabila pushbutton ditekan, maka rangkaian akan menjadi closed circuit yang mengakibatkan tegangan 5V timbul pada input pin nomor 9, sehingga Arduino akan mendeteksi logika HIGH (state = Tombol on) pada pin nomor 9. Arduino kemudian mengirimkan state tersebut pada serial komputer dan kita bisa melihat data yang dikirim ke serial komputer tersebut melalui serial monitor.

Sebaliknya, apabila push button dalam keadaan dilepas, maka rangkaian menjadi open circuit, sehingga tidak ada arus yang muncul pada pin nomor 9, maka input digital menganggap (state =Tombol off) karena tidak ada beda potensial antara pin nomor 9 dengan GND.


OUTPUT DIGITAL
Output digital terdiri dari dua buah logika, yaitu kondisi logika HIGH dan kondisi logika LOW.
Untuk menghasilkan output kita dapat menggunakan sintaks digitalWrite(pin,nilai); yang sebelumnya pin sudah diset ke mode OUTPUT, lalu parameter kedua adalah set nilai HIGH atau LOW. Apabila pin diset dengan nilai HIGH, maka voltase pin tersebut akan diset ke 5V atau 3.3V dan bila pin diset ke LOW, maka voltase pin tersebut akan diset ke 0V.

Untuk lebih jelasnya dibawah ini adalah contoh bagaimana mengaktifkan LED sebagai OUTPU.


Komponen yang digunakan :
- Arduino
- LED ( 3 )
- Resistor 330 ohm ( 3 )
- Protoboard
- Kabel jumper

Setelah rangkaian sudah kamu buat hubungkan Arduino ke PC menggunakan kabel downloader. Selanjutnya buka software arduino dan copas program dibawah ini ke software Arduino, kemudian upload lah programnya.
Dengan program di bawah ini led akan menyala secara running dengan terus menerus.

int led1 = 11; //deklarasi pin 11 dengan nama 'led1'
int led2 = 12; //deklarasi pin 11 dengan nama 'led2'
int led3 = 13; //deklarasi pin 11 dengan nama 'led3'

void setup() {
  pinMode (led1,OUTPUT); //deklarasi led1 sebagai OUTPUT
  pinMode (led2,OUTPUT); //deklarasi led2 sebagai OUTPUT
  pinMode (led3,OUTPUT); //deklarasi led3 sebagai OUTPUT
}

void loop() {
  digitalWrite (led1,HIGH);
  digitalWrite (led2,LOW);
  digitalWrite (led3,LOW);
  delay(500);
  digitalWrite (led1,LOW);
  digitalWrite (led2,HIGH);
  digitalWrite (led3,LOW);
  delay(500);
  digitalWrite (led1,LOW);
  digitalWrite (led2,LOW);
  digitalWrite (led3,HIGH);
  delay(500);
}

PERINGATAN!
     Untuk mengaktifkan LED tidak harus menggunakan logika HIGH. Karena penggunaannya sesui dengan rangkaian yang ingin kalian buat. Ada dua jenis pengaktifan yaitu Aktif-High dan Aktif-Low.



Pada rangkaian LED Aktif-High, LED akan menyala jika diberi logika 1 (HIGH) dan akan mati jika diberi logika 0 (LOW)


Pada rangkaian LED Aktif-Low, LED akan menyala jika diberi logika 0 (LOW) dan akan mati jika diberi logika 1 (HIGH).





TUGAS!

Buatlah program di Arduino dimana jika Push Button ditekan maka LED1 menyala, LED2 mati dan jika Push Button dilepas atau tidak ditekan maka LED2 menyala, LED1 mati. Dengan ketentuan jika PB ditekan maka pada serial monitor akan muncul tulisan "HIDUP" dan jika PB dilepas maka akan muncul tulisan "MATI".

JAWAB :
Buatlah rangkaian seperti di atas dengan Arduino kemudian Upload program di bawah ini menggunakan software Arduino kamu :

int tombol = 2; //Pin digital no 2 telah dipasang Push button dan diberi nama 'tombol'
int led1 = 12; //pin digital nomer 12 telah dipasang LED dan diberi nama led1
int led2 = 13; //pin digital nomer 13 telah dipasang LED dan diberi nama led2
void setup() {

  Serial.begin(9600); //mulai komunikasi serial dengan baud rate 9600 bits per second
  pinMode(tombol, INPUT); //deklarasikan tombol sebagai INPUT
  pinMode(led1, OUTPUT); //deklarasikan led1 sebagai OUTPUT
  pinMode(led2, OUTPUT); //deklarasikan led2 sebagai OUTPUT
}

void loop() {

  int keadaanTombol = digitalRead(tombol); //baca state tombol

//print state tombol melalui serial
  if (keadaanTombol == 1) {
    Serial.println("HIDUP");
    digitalWrite(led1,HIGH);
    digitalWrite(led2,LOW);
  }
  else  {
    Serial.println("MATI");
    digitalWrite(led1,LOW);
    digitalWrite(led2,HIGH);
  }

  delay(100); //delay 100 milisekon
}
 Dibawah ini adalah hasil program 

Hasil rangkaian yang sudah jadi


Semoga artikel di atas dapat bermanfaat bagi semuanya ^_^
Mampir juga boleh Klinik Fisioterapi

2 comments:

  1. Mas kok error compilling for board arduino/genuino uno ya??
    Maaf mas masih amatir 😆

    ReplyDelete