0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan

Arduino 01

Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
5 tayangan

Arduino 01

Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

Arduino

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);
}

Mengatur Dua Buah LED Berkedip Secara Bergantian


Pada contoh program yang telah dibahas, kondisi LED akan tetap. Kondisi kedua LED dapat diatur
secara periodik sehingga kondisi LED akan berubah dari on ke off kemudian ke on lagi secara teratur.
Agar kondisi LED dapat berubah secara periodik, program pada tabel 1 harus sedikit dimodifikasi.
Program Arduino yang telah dimodifikasi dapat dilihat pada tabel 2 (diperlihatkan bagian yang
dimodifikasi saja).
Setelah pin 5 diberi nilai HIGH dan pin 6 diberi nilai LOW, program ditahan selama 1000 ms
{delay(1000)}. Kondisi pin 5 dan 6 tidak akan berubah selama 1000 ms. Setelah 1000 ms berlalu, pin
5 diberi nilai LOW dan pin 6 diberi nilai HIGH. Kondisi ini ditahan selama 1000 ms. Setelah 1000 ms
berlalu, program akan kembali mengerjakan baris awal di bagian loop. Kedua LED akan berkedip
secara bergantian.
Tabel 2 Program Arduino untuk Mengatur Kondisi LED
void setup() {
------
}
Tabel 2 Program Arduino untuk Mengatur Kondisi LED (Lanjutan)
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
delay(1000);
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
delay(1000);
}

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.

Gambar 2 Skematik Relay


Skematik pada gambar 2 menunjukkan kondisi relay ketika koil tidak dialiri arus listrik. Pada kondisi
ini armature ditarik oleh pegas sehingga COM kontak menempel dengan NC kontak. Ketika koil dialiri
arus listrik, core akan berubah menjadi magnet. Armature akan ditarik oleh core, sehingga COM
kontak akan menempel dengan NO kontak.
Untuk kepentingan praktis, relay dirangkai dengan beberapa komponen elektronika membentuk suatu
modul relay. Modul relay adalah papan sirkuit yang menampung satu atau beberapa relay. Modul relay
yang sering dijumpai di pasaran memuat 1, 2, 4, dan 8 buah relay dalam satu papan sirkuit. Komponen
utama modul relay adalah relay. Selain relay, modul relay juga memiliki komponen yang lain yaitu
LED indikator, dioda proteksi, transistor, maupun resistor. Contoh modul relay dapat dilihat pada
gambar 3.

Gambar 3 Contoh modul relay


Koil relay pada modul relay dihubungkan dengan pin pada Arduino. Kontak relay pada modul relay
digunakan sebagai saklar untuk mengatur beban listrik AC. Modul relay terdiri dari dua jenis yaitu
active low dan active high. Modul relay active low akan aktif (koil teraliri arus) apabila input relay
diberi nilai low. Modul relay active high akan aktif (koil teraliri arus) apabilah input relay diberi nilai
high. Contoh pemakaian modul relay untuk mengaktivkan beban listrik AC dapat dilihat pada
gambar 4.

Gambar 4 Pengaturan Beban Listrik AC dengan Memanfaatkan Modul Relay


Modul relay yang digunakan adalah modul relay jenis active low. Kontak relay yang digunakan adalah
kontak COM dan kontak NC. Bila pin 5 Arduino diberi nilai low, maka koil akan dialiri arus listrik,
kontak COM akan terhubung dengan kontak NO, beban AC akan off. Bila pin 5 Arduino diberi nilai
high, maka koil tidak dialiri arus listrik, kontak COM akan terhubung dengan kontak NC, beban AC
akan on. Program untuk mengatur beban AC agar on kemudian off secara bergantian, serupa dengan
program seperti pada tabel 2. Pengaturan tegangan pada pin 6 dapat dihapus dari program atau
dijadikan sebagai komentar.
Mengendalikan Beban DC
Pin Arduino sebaiknya tidak digunakan untuk menggerakkan beban DC maupun beban AC. Pin
Arduino hanya digunakan untuk memberikan isyarat (sinyal) tertentu pada perangkat di luar board
Arduino. Untuk mengendalikan beban DC berupa motor listrik DC diperlukan driver motor DC.
Komponen utama driver motor DC merupakan IC penguat arus L293D atau L298. Kedua IC ini
mempunyai empat buah input dan empat buah output. Salah satu contoh board penguat arus dapat
dilihat pada gambar 5.

Gambar 5 Board Penguat Arus


Pada gambar 5, input board merupakan empat buah pin yang diberi nama IN1, IN2, IN3, dan IN4.
Output board merupakan dua pasang terminal yang terletak di bagian atas dan bagian bawah gambar
5 yang diberi nama OUT1 dan OUT2 serta OUT3 dan OUT4. Board driver motor DC mempunyai tiga
kaki power berupa terminal yang diberi nama 5V, GND, dan +12V. Terminal +5V dihubungkan
dengan pin 5V Arduino. Terminal +12V dihubungkan dengan terminal positip catu daya. Terminal
GND dihubungkan dengan pin GND Arduino dan terminal GND catu daya.
Contoh pemakaian board driver motor DC dapat dilihat pada gambar 6. Pada gambar 6, input board
driver motor DC IN1 dan IN2 dihubungkan dengan pin 7 dan pin 6 Arduino. Output board driver
motor DC OUT1 dan OUT2 dihubungkan dengan kaki-kaki motor DC. Program untuk mengatur
putaran motor DC dapat dilihat pada tabel 3.
Gambar 6 Contoh pemakaian board driver motor DC
Tabel 3 Program untuk Mengaktifkan Motor DC
void setup() {
// put your setup code here, to run once:
pinMode(6,OUTPUT); //pin 6 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);
}

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.

Gambar 7 Rangkaian limit switch dan LED pada papan Arduino


Empat baris pertama pada program di tabel 5 digunakan untuk memberi nama pin 2, pin 4, pin 5, dan
pin 6. Pin 2 diberi nama tombol, pin 4 diberi nama hijau, pin 5 diberi nama kuning, dan pin 6 diberi
nama merah. Baris berikutnya mendefinisikan suatu variabel dengan jenis integer dan diberi nama nilai
[int nilai].
Tabel 5 Program untuk merespon perubahan kondisi input
#define tombol 2
#define hijau 4
#define kuning 5
#define merah 6

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

int nilai, kriteria;

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

Anda mungkin juga menyukai