Arduino 01
Arduino 01
Arduino sendiri sebuah perangkat purwarupa (prototyping) yang bersifat open source. Arduino
merupakan sebuah perangkat elektronik yang sering digunakan untuk merancang dan membuat
perangkat elektronik serta mempunyai software yang mudah untuk digunakan. Arduino dirancang
sedemikian rupa untuk mempermudah penggunaan perangkat elektronik di berbagai bidang.
Arduino (papan Arduino) ini memiliki beberapa komponen penting di dalamnya, seperti
mikrokontroller, pin, dan konektor. Mikrokontroler adalah chip yang memungkinkan pemrogram
untuk memprogram Arduino dan memproses output berdasarkan input yang diberikan. Mikrokontroler
ini adalah otak dari Arduino. Ada banyak jenis chip yang digunakan tergantung dari jenis Arduino-
nya.
Pin ini digunakan untuk menghubungkan Arduino dengan berbagai komponen yang akan digunakan.
Arduino mempunyai dua jenis pin, yakni pin analog dan pin digital. Pin digital dapat menerima atau
mengirim sinyal digital. Sinyal digital berarti sinyal akan bernilai 1 atau 0 alias HIGH atau LOW.
Kebanyakan perangkat Arduino memiliki 14 pin input output digital. Pin analog adalah pin yang
digunakan untuk menerima input analog. Pin analog dapat menerima tegangan analog dari 0V sampai
dengan 5V. Umumnya, setiap jenis Arduino memiliki setidaknya satu pin analog.
Arduino memiliki dua jenis konektor yang cukup penting, yaitu power konektor dan serial konektor.
Power konektor adalah konektor yang digunakan untuk menyalurkan daya untuk Arduino. Daya ini
digunakan untuk mengaktifkan Arduino dan juga perangkat lain yang terhubung dengannya, seperti
sensor maupun layar monitoring. Serial konektor biasanya digunakan untuk menghubungkan Arduino
dengan perangkat lain seperti komputer atau laptop. Konektor ini menggunakan port USB standar pada
Arduino. Selain itu, konektor ini juga dapat digunakan sebagai power konektor.
Memanfaatkan Digital Pin Sebagai Output
Pin digital pada Arduino dapat dimanfaatkan sebagai output maupun input. Ketika pin digital Arduino
dimanfaatkan sebagai output, tegangan di pin tersebut dapat diatur melalui program. Tegangan di pin
digital dapat diberi nilai 0V (LOW) atau 5V (HIGH).
Untuk mempermudah melihat kondisi tegangan di pin digital, pin digital yang sedang diamati kondisi
tegangannya dirangkai dengan LED. Kaki positip LED dihubungkan dengan pin digital, kaki negatip
LED dihubungkan dengan GND. Pada kondisi ini, bila pin diberi tegangan 0V, maka LED tidak akan
on. Bila pin diberi nilai 5V, maka LED akan off. Rangkaian LED pada pin mikrokontroller dapat dilihat
pada gambar 1.
Program untuk mengatur nilai tegangan pada pin Arduino dapat dilihat pada tabel 1. Secara umum,
program pada Arduino terdiri dari dua buah bagian utama yaitu void setup() {…} dan void loop() {
…}. Bagian setup digunakan untuk mengkonfigurasi (mengatur) fungsi-fungsi pin atau perangkat lain
yang terdapat pada Arduino. Bagian loop digunakan untuk memberi perintah utama agar proses
pengendalian sesuai dengan yang diinginkan.
Pada contoh program pada tabel 1, bagian setup digunakan untuk mengatur pin 5 dan pin 6 sebagai
output {pinMode(5, OUTPUT) dan pinMode(6, OUTPUT)}. Bagian loop digunakan untuk memberi
nilai pin 6 dengan nilai LOW (0V) {digitalWrite(6, LOW)} dan pin 5 dengan nilai HIGH (5V)
{digitalWrite(5, HIGH)}. Bila program pada tabel 1 di-upload ke Arduino, maka LED yang terhubung
dengan pin 6 akan off, dan LED yang terhubung dengan pin 5 akan on.
Gambar 1 LED Dihubungkan dengan Pin Arduino
Tabel 1 Program untuk Mengatur Nilai Pin Digital
void setup() {
// put your setup code here, to run once:
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
}
Mengendalikan Beban AC
Arus listrik yang dapat dikeluarkan oleh pin Arduino adalah sebesar 50 mA. Arus listrik sebesar ini
hanya mampu untuk mengaktifkan LED. Arus listrik tersebut selain nilainya kecil juga berjenis arus
listrik searah (DC). Arus listrik yang keluar dari pin Arduino tidak dapat digunakan untuk
mengaktifkan beban listrik AC.
Untuk mengaktifkan beban listrik AC, diperlukan relay. Relay merupakan suatu saklar elektro
mekanik. Relay terdiri dari dua bagian utama yaitu koil dan kontak. Kontak relay terdiri dari tiga kaki
yaitu kaki COM, kaki NC, dan kaki NO. Skematik relay dapat dilihat pada gambar 2.
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(6, LOW); // pin 6 diberi tegangan LOW (0 volt)
digitalWrite(7, HIGH);
}
Pin 6 dan pin 7 board Arduino diatur sebagai output [pinMode(6, OUTPUT), pinMode(7, OUTPUT)].
Pada program utama [void loop(){…}] pin 6 diberi nilai LOW [digitalWrite(6, LOW)] dan pin 7 diberi
nilai HIGH [digitalWrite(7, HIGH)]. OUT1 akan bernilai HIGH dan OUT2 akan bernilai LOW.
Karena ada beda tegangan antara OUT1 dengan OUT2, arus listrik mengalir dari kaki OUT1 ke kaki
OUT2. Motor DC akan on.
Contoh program pada tabel 1 memperlihatkan cara mengaktifkan motor DC dengan arah putaran
tertentu. Bila diinginkan untuk mengaktifkan motor DC dengan arah putaran yang berubah setelah
selang waktu tertentu, program pada tabel 3 harus dimodifikasi. Modifikasi program pada tabel 3 dapat
dilihat pada tabel 4.
Tabel 4 Program untuk Mengaktifkan Motor DC dengan Arah Putaran yang Dapat Berubah
void setup() {
// put your setup code here, to run once:
pinMode(6,OUTPUT); //pin 5 diset (diatur) sebagai ouput
pinMode(7,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(6, LOW); // pin 6 diberi tegangan LOW (0 volt)
digitalWrite(7, HIGH);
Tabel 4
Program untuk Mengaktifkan Motor DC dengan Arah Putaran yang Dapat Berubah (Lanjutan)
delay(2500);
digitalWrite(6, HIGH); // pin 6 diberi tegangan HIGH (5 volt)
digitalWrite(7, LOW);
delay(2500);
}
Dua baris pertama pada program utama [void loop() { … }] digunakan untuk mengaktifkan motor DC
dengan arah putaran tertentu [digitalWrite(6, LOW) & digitalWrite(7, HIGH)]. Kondisi ini ditahan
selama 2500 ms. Setelah selang waktu tersebut berlalu, kondisi pin 6 dan pin 7 diubah [digitalWrite(6,
HIGH) & digitalWrite(7, LOW)]. Pada kondisi ini motor DC akan tetap on tetapi arah putarannya
berubah. Kondisi ini ditahan selama 2500 ms. Setelah selang waktu tersebut berlalu, program akan
kembali mengeksekusi baris pertama di program utama.
Memanfaatkan Pin Digital Sebagai Input
Pin digital pada Arduino dapat juga dimanfaatkan sebagai input. Ketika pin digital Arduino
dimanfaatkan sebagai input, tegangan pin tersebut dipengaruhi oleh kondisi tegangan perangkat di luar
papan Arduino yang terhubung dengan pin tersebut.
Untuk memberikan gambaran pemanfaatan pin digital sebagai input, digunakan sebuah limit switch
yang salah satu kakinya dihubungkan dengan pin digital Arduino, dan kaki limit switch yang lain
dihubungkan dengan ground. Untuk menggambarkan respon Arduino terhadap perubahan kondisi di
pin Arduino, tiga buah LED dihubungkan dengan tiga pin digital Arduino yang mana pin digital
tersebut diatur sebagai output. Rangkaian limit switch dan LED pada pin digital Arduino dapat dilihat
pada gambar 7. Program Arduino untuk merespon kondisi tegangan input dapat dilihat pada tabel 5.
int nilai;
void setup() {
// put your setup code here, to run once:
pinMode(tombol, INPUT_PULLUP); // pin tombol (pin 2) diatur sebagai input
pinMode(hijau,OUTPUT); //pin hijau (pin 4) diatur sebagai ouput
pinMode(kuning,OUTPUT);
pinMode(merah,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
nilai=digitalRead(tombol);
if(nilai==0) digitalWrite(hijau, LOW);
else digitalWrite(hijau, HIGH);
}
Pada bagian setup, pin tombol diatur sebagai input [pinMode(tombol, INPUT_PULLUP)]. Pin hijau,
pin kuning, dan pin merah diatur sebagai output. Pada bagian loop, pin tombol dibaca dan hasil
pembacaan disimpan di variabel nilai [nilai=digitalRead(tombol)]. Bila limit switch tidak ditekan,
maka pin tombol akan bernilai HIGH dan variabel nilai akan bernilai 1. Bila limit switch ditekan, maka
pin tombol akan bernilai LOW dan variabel nilai akan bernilai 0. Bila variabel nilai bernilai 0, maka
pin hijau diberi nilai LOW, sehingga LED hijau akan off. Bila variabel nilai tidak bernilai 0, maka pin
hijau diberi nilai HIGH dan LED hijau akan on.
Menjadikan Respon Input Berakibat Permanen
Pada contoh sebelumnya kondisi LED hijau akan selaras dengan kondisi limit switch. Apabila limit
switch tidak ditekan, maka LED hijau akan on. Apabila limit switch ditekan, maka LED hijau akan
off. Untuk mempertahankan kondisi LED hijau agar tidak berubah, kondisi limit switch juga harus
dipertahankan. Jika kondisi limit switch berubah, kondisi LED hijau juga berubah.
Secara praktik, seringkali untuk mengubah kondisi suatu perangkat cukup dilakukan dengan me-klik
(tekan kemudian lepas) limit switch. Perubahan limit switch yang sesaat tersebut dapat mengubah
kondisi suatu perangkat (output) secara permanen. Agar perubahan sesaat kondisi input dapat
mengubah kondisi output secara permanen, program pada tabel 5 harus dimodifikasi. Program Arduino
untuk merespon perubahan kondisi input sesaat menjadi perubahan kondisi output secara permanen
dapat dilihat pada tabel 6.
Pada tabel 6 terdapat beberapa perubahan program. Pada baris keenam terdapat tambahan variabel
kriteria [int nilai, kriteria]. Pada bagian setup terdapat tambahan baris program yang berfungsi untuk
memberikan nilai awal pada variabel kriteria [kriteria=0].
Tabel 6
Program untuk merespon perubahan kondisi input sesaat menjadi perubahan kondisi output
permanen
#define tombol 2
#define hijau 4
#define kuning 5
#define merah 6
void setup() {
// put your setup code here, to run once:
pinMode(tombol, INPUT_PULLUP); // pin tombol (pin 2) diatur sebagai input
pinMode(hijau,OUTPUT); //pin hijau (pin 4) diatur sebagai ouput
pinMode(kuning,OUTPUT);
pinMode(merah,OUTPUT);
kriteria=0;
}
void loop() {
// put your main code here, to run repeatedly:
nilai=digitalRead(tombol);
if(nilai==0) {//awal 1
delay(50);
kriteria=kriteria+1;
if(kriteria>3) kriteria=0;
while(nilai==0) nilai=digitalRead(tombol);
delay(50);
}//akhir 1
if(kriteria==0){
digitalWrite(hijau, LOW);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
}
if(kriteria==1){
digitalWrite(hijau, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
}
if(kriteria==2){
digitalWrite(hijau, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(merah, LOW);
}
if(kriteria==3){
digitalWrite(hijau, LOW);
digitalWrite(kuning, LOW);
digitalWrite(merah, HIGH);
}
}
Pada bagian loop banyak terdapat tambahan baris program. Baris pertama di bagian loop merupakan
sintaks untuk membaca pin tombol dan hasilnya dimasukkan ke variabel nilai
[nilai=digitalRead(tombol)]. Baris berikutnya merupakan sintaks untuk memeriksa harga variabel nilai
[ if(nilai==0)]. Bila nilai berharga nol maka semua sintaks di antara tanda kurung { //awal 1…… }
//akhir 1 akan dikerjakan. Bila nilai tidak berharga nol maka semua sintaks di antara tanda kurung
{//awal 1 ….. } //akhir 1 tidak akan dikerjakan.
Baris pertama bagian program yang berada di dalam { //awal 1…… } //akhir 1 berupa penundaan
eksekusi ke baris berikutnya selama 50 ms [delay(50)]. Hal ini perlu dilakukan untuk menghindari
adanya efek bouncing pada saklar mekanik. Efek bouncing pada saklar mekanik adalah suatu kejadian
perubahan tegangan yang berulang kali (low ke high atau higk ke low) pada salah satu kaki saklar bila
kontak NO saklar dihubungkan (atau diputus) ke (dari) kontak COM saklar. Efek bouncing akan
berhenti sampai kontak NO saklar benar-benar terhubung (terputus) ke (dari) kontak COM saklar.
Dengan adanya penundaan diharapkan efek bouncing tersebut tidak dirasakan oleh program.
Baris berikutnya pada bagian program yang berada di dalam { //awal 1…… } //akhir 1 adalah sintaks
untuk menambah nilai variabel kriteria [kriteria=kriteria+1]. Nilai kriteria akan dijadikan nol bila nilai
kriteria > 3 [if(kriteria>3) kriteria=0]. Dengan demikian nilai kriteria tidak akan lebih dari 3. Baris
berikutnya adalah sintaks untuk mengeksekusi baris tersebut secara berulang bila harga variabel nilai
sama dengan nol (limit switch masih ditekan) [while(nilai==0) nilai=digitalRead(tombol)]. Bila limit
switch diputus, maka akan terjadi efek bouncing. Untuk mengatasi efek bouncing ini perlu diberi
penundaan selama 50 ms [delay(50)].
Bagian akhir dari bagian loop adalah sintaks untuk mengaktifkan LED. Jika harga kriteria sama dengan
nol, maka semua LED akan off. Jika harga kriteria sama dengan satu, maka LED hijau akan on. Jika
harga kriteria sama dengan dua, maka LED kuning akan on. Jika harga kriteria sama dengan tiga, maka
LED merah akan on.
Pustaka:
https://www.geya.net/what-is-a-relay-module-and-what-does-it-do/
https://www.dicoding.com/blog/apa-itu-arduino/
https://accurate.id/teknologi/open-source-adalah/
https://aozon.blogspot.com/2014/03/mengenal-arduino-uno-lebih-rinci.html
https://www.amazon.in/Robodo-Electronics-1C12VRELAY-Channel-Trigger/dp/B07B8SJG3D? th=1
https://www.google.com/imgres?imgurl=https%3A%2F%2Ffanyv88.com%3A443%2Fhttps%2Fcomponents101.com%2Fsites%2Fdefault%2Ffile
s%2Fcomponent_pin%2FL298N-Module-Pinout.jpg&tbnid=sGopEvx1g1znUM&vet=12ahUKEwjiofLYr7q
AAxX_z6ACHdPfAiAQMygIegUIARDbAQ..i&imgrefurl=https%3A%2F%2Ffanyv88.com%3A443%2Fhttps%2Fcomponents101.com%2Fmod
ules%2Fl293n-motor-driver-module&docid=XP8ufn9_30fTuM&w=750&h=500&q=driver%20motor%20l2
98n&ved=2ahUKEwjiofLYr7qAAxX_z6ACHdPfAiAQMygIegUIARDbAQ