Anggar Pradema[1] ; Budi Utomo[2] ; Haryo Ardhiyanto[3]
Prodi
Elektronika Jurusan Elektro Politeknik Negeri Semarang
Jl.
Prof. H. Soedarto, SH, Tembalang,
Semarang, 50275
Phone
: +62 85774588802,
+62
85727191636,
+62
85747404414
Fax :
+62 24 7472396
Abstract
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input
tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz
osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk
mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board
Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC
yang-ke adaptor-DC atau baterai untuk menjalankannya.
Pada pembahasan kali ini akan dibahas mengenai aplikasi Arduino yaitu pembacaan data SDcard dengan output menggunakan solenoid
valve. Dimana data SDcard digunakan sebagai input dan solenoid valve digunakan sebagai output ( mengalirkan air ).Untuk mengetahui solenoid
dapat bekerja digunakan media air untuk melihat apakah air dapat mengalir
melalui solenoid.
Kata kunci
: Arduino Uno, SD Card, Solenoid Valve, Relay
The Arduino
Uno is a microcontroller board based on the ATmega328 (datasheet). It has 14
digital input pins of the output of the input pins of which 6 can be used as
PWM outputs and 6 analog input pin, 16 MHz crystal oscillator, a USB
connection, a power jack, an ICSP header, and a reset button. To support the
microcontroller to be used, quite simply connect the Arduino Uno board to the
computer using the USB cable or the AC electrical-to-DC adapter or battery to
run it.
This paper
will discuss the application of the Arduino is reading the Sd card data by using
output of the valve solenoid. Where the SD card data is used as
input and valve solenoid is use
as output (flowing water). To find the valve solenoid is work correctly use water to see
that solenoid can flow the water.
Keyword : Arduino Uno, SD Card, Solenoid Valve, Relay
I.
PENDAHULUAN
1.1 Latar Belakang
Air memegang peranan yang sangat penting dalam
kehidupan manusia. Peran tersebut
dapat terlihat dari tingkat kebutuhan manusia dalam penggunaan di kegiatan sehari-harinya.
Tingginya tingkat kebutuhan manusia terhadap air tidaklah sebanding dengan
ketersediaan air di bumi, karena dari seluruh air yang ada di bumi 97% adalah
air laut,3% sisanya adalah air tawar dan hanya 1% saja yang tersedia untuk
digunakan seluruh manusia. Dan hingga saat ini tingkat kebutuhan air semakin
tinggi seiring dengan semakin
tingginya tingkat pertambahan
penduduk dunia.
Maka tidaklah berlebihan jika UNESCO
memprediksikan bahwa pada tahun 2020 dunia akan mengalami krisis air global (Sumber:
http://www.slideshare.net). Mengingat hal tersebut, penghematan dalam penggunaan air bukanlah hal
yang dapat di tawar lagi. Karena apa yang diperbuat saat ini akan menentukan
apa yang terjadi di masa yang akan datang. Dan tentunya tidak seorangpun
menginginkan anak, cucu bahkan mungkin dirinya sendiri mengalami krisis air
global tersebut. Salah satu kegiatan yang juga banyak membutuhkan air adalah
penggunaan keran di kamar mandi. Seringkali kita lupa mematikan keran sehingga
air akan terus mengalir. Maka dari itu dibuatlah sistem ini sehingga pengguna
tinggal memilih data di kartu SD. Data di kartu SD tersebut berguna untuk
berapa lama keran elektrik mengalirkan air.
1.2 Rumusan Masalah
Berdasarkan permasalahan
yang terdapat pada latar
belakang, disusun rumusan masalah sebagai berikut:
1)
Bagaimana cara merancang rangkaian untuk
membaca data kartu SD?
2)
Bagaimana cara merancang
rangkaian driver untuk menghubungkan valve ke arduino ?
3)
Bagaimana cara mengatur agar valve terbuka menggunakan data kartu SD?
1.3 Ruang Lingkup
Berdasarkan rumusan masalah diatas, agar
pembahasan terfokus pada pokok pembahasan maka masalah yang akan dibahas pada
alat ini adalah sebagai berikut :
1)
Menggunakan
valve dengan tegangan masukan 220VAC.
2)
Kartu
SD perlu dimasukkan ke dalam adapter agar bisa terhubung ke modul SD card.
1.4 Tujuan
Tujuan
dari pembuatan alat ini adalah merancang suatu alat yang memudahkan pengguna mengalirkan air dari penampung
menggunakan data dari kartu SD yang sudah disimpan sebelumnya melalui solenoid
valve.
II.
TINJAUAN PUSTAKA
Penjelasan dan uraian teori
penunjang yang digunakan dalam membuat alat ini diperlukan untuk mempermudah
pemahaman tentang cara kerja rangkaian maupun dasar-dasar perencanaan pembuatan
alat. Teori – teori yang akan dijelaskan dalam bab ini meliputi Arduino Uno, Solenoid
Valve dan SD Card.
2.1 Arduino Uno R3
Arduino UNO
adalah sebuah board mikrokontroler yang didasarkan pada ATmega328 (datasheet).
Arduino UNO mempunyai 14 pin digital input/output (6 di antaranya dapat
digunakan sebagai output PWM), 6 input analog, sebuah osilator Kristal 16 MHz,
sebuah koneksi USB, sebuah power jack, sebuah ICSP header, dan sebuat tombol
reset. Arduino UNO memuat semua yang dibutuhkan untuk menunjang mikrokontroler,
mudah menghubungkannya ke sebuah computer dengan sebuah kabel USB atau
mensuplainya dengan sebuah adaptor AC ke DC atau menggunakan baterai untuk
memulainya.
Gambar 2.1.1 Arduino Uno
Sumber : http://arduino.cc/en/Main/arduinoBoardUno
Setiap 14 pin digital pada
Arduino Uno dapat digunakan sebagai input dan output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Fungsi-fungsi tersebut beroperasi di tegangan 5
Volt. Setiap pin dapat memberikan atau menerima suatu arus maksimum 40 mA dan
mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm. Selain
itu, beberapa pin mempunyai fungsi-fungsi spesial:
§ Serial:
0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan memancarkan (TX) serial data TTL
(Transistor-Transistor Logic). Kedua pin ini dihubungkan ke pin-pin yang sesuai
dari chip Serial Atmega8U2 USB-ke-TTL.
§ External
Interrupts: 2 dan 3. Pin-pin ini dapat dikonfigurasikan untuk dipicu sebuah interrupt
(gangguan) pada sebuah nilai rendah, suatu kenaikan atau penurunan yang besar,
atau suatu perubahan nilai. Lihat fungsi attachInterrupt() untuk lebih jelasnya.
§ SPI:
10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Pin-pin ini mensupport komunikasi SPI menggunakan SPI library.
§ LED:
13. Ada
sebuah LED yang terpasang, terhubung ke pin digital 13. Ketika pin bernilai
HIGH LED menyala, ketika pin bernilai LOW LED mati.
Arduino UNO mempunyai 6 input analog, diberi label
A0 sampai A5, setiapnya memberikan 10 bit resolusi (contohnya 1024 nilai yang
berbeda). Secara default, 6 input analog tersebut mengukur dari ground sampai
tegangan 5 Volt, dengan itu mungkin untuk mengganti batas atas dari rangenya
dengan menggunakan pin AREF dan fungsi analogReference(). Di sisi lain, beberapa pin
mempunyai fungsi spesial:
§ TWI:
pin A4 atau SDA dan pin A5 atau SCL. Mensupport komunikasi TWI dengan menggunakan Wire library
Ada sepasang pin lainnya pada board:
§ Reset. Membawa saluran ini LOW
untuk mereset mikrokontroler. Secara khusus, digunakan untuk menambahkan sebuah
tombol reset untuk melindungi yang memblock sesuatu pada board.
Arduino Uno dapat diprogram dengan menggunakan
software Arduino. Softwareini bisa
didapatkan secara gratis dari website resmi Arduino. Software Arduino yang akan
digunakan adalah driver dan IDE. IDE Arduino adalah software
yang sangat canggih ditulis dengan menggunakan Java IDE Arduino terdiri
dari:
1. Editor program, sebuah window yang memungkinkan pengguna menulis dan
mengedit program dalam bahasa processing.
2. Compiler, sebuah modul yang mengubah kode program (bahasa Processing)
menjadi kode biner. Bagaimanapun sebuah microcontroller tidak akan bisa memahami bahasa Processing.
Yang bisa dipahami oleh
microcontroller adalah kode
biner. Itulah sebabnya compiler diperlukan dalam hal ini.
3. Uploader, sebuah modul yang memuat kode biner dari komputer ke dalam
memory di dalam papan Arduino.
2.2 Kartu SD
Memory Card atau kartu memori merupakan sebuah alat (card) yang
berfungsi sebagai tempat penyimpanan data digital (seperti gambar, audio dan
video) pada sebuah gadget seperti kamera digital, PDA dan Handphone. Ukuran
dari karu memori ini bermaca-macam mulai dari 128MB, 512MB, 1GB dan seterusnya
bahkan sampai ada Memory Card dengan kapasitas 32GB atau lebih. Multimedia
Card (MMC) merupakan kartu memori standar, bentuknya lebih besar dari Memory
Stick dan dapat dipergunakan pada slot SD Card. RS-MMC ( Reduced Size
Multimedia Card) Merupakan MMC generasi selanjutnya dengan ukuran lebih kecil,
dapat digunakan pada slot MMC maupun SD Card dengan menggunakan sebuah adapter.
Hubungan SD Card dengan
arduino
Sebuah micro SD tidak dapat dihubungkan langsung ke arduino dengan
menghubungkan kaki kakinya begitu saja. Hal yang harus diketahui dahulu adalah
pin out dari micro sd dulu sebelum menyambungnya. Coba lihat urutan pinout dari
micro sd dibawah :
Gambar 2.2.2
Micro SD dalam SD Mode
Untuk dihubungkan dengan arduino maka micro SD harus dalam mode SPI(bisa
menggunakan adapter). SPI Mode yaitu Serial Peripheral Interface yang nantinya
akan dihubungkan sesuai dengan pin pada arduino (atmega328).
Gambar 2.2.3
Micro SD dalam SPI Mode
Berikut shield SD card yang digunakan jika tidak
ingin repot menghubungkan Micro SD dengan arduino :
Gambar 2.2.4 SD
Card Shield
Gambar 2.2.5 SD
Card Shield dan Adapter
Sumber :
Dokumentasi Pribadi
2.3 Solenoid Valve
Solenoid valve adalah katup yang digerakan oleh
energi listrik, mempunyai kumparan sebagai penggeraknya yang berfungsi untuk
menggerakan piston yang dapat digerakan oleh arus AC maupun DC, solenoid valve
atau katup (valve) solenoida
mempunyai lubang keluaran, lubang masukan dan lubang exhaust, lubang masukan,
berfungsi sebagai terminal / tempat cairan masuk atau supply, lalu lubang keluaran, berfungsi sebagai terminal atau
tempat cairan keluar yang dihubungkan ke beban, sedangkan lubang exhaust, berfungsi sebagai saluran untuk
mengeluarkan cairan yang terjebak saat piston bergerak atau pindah posisi
ketika solenoid valve bekerja.
Prinsip kerja dari solenoid valve/katup (valve) solenoida yaitu katup listrik
yang mempunyai koil sebagai penggeraknya dimana ketika koil mendapat supply tegangan maka koil tersebut akan
berubah menjadi medan magnet sehingga menggerakan piston pada bagian dalamnya
ketika piston berpindah posisi maka pada lubang keluaran dari solenoid valve
akan keluar cairan yang berasal dari supply,
pada umumnya solenoid valve mempunyai tegangan kerja 100/200 VAC namun ada juga
yang mempunyai tegangan kerja DC.
Gambar 2.3.1 Solenoid Valve
Prinsip Kerja Solenoid Valve
Prinsip kerja dari solenoid valve yaitu katup listrik yang mempunyai koil
sebagai penggeraknya dimana ketika koil mendapat supply tegangan maka koil
tersebut akan berubah menjadi medan magnet sehingga menggerakan piston pada
bagian dalamnya ketika piston bertekanan yang berasal dari supply (service
unit), pada umumnya solenoid valve pneumatic ini mempunyai tegangan kerja
100/200 VAC namun ada juga yang mempunyai tegangan kerja DC.
Keterangan Gambar :
A - Input side, B
– Diaphragm, C - Pressure
chamber, D - Pressure relief
passage, E – Solenoid, F - Output side
Gambar 2.3.2 Prinsip Kerja Solenoid Valve
Bagian-bagian Solenoid Valve
1. Block Saluran udara
SV mempunyai block saluran udara yang terdiri dari
lubang-lubang yang antara lain, lubang keluaran, lubang masukan dan lubang
exhaust, lubang masukan diberi kode P, berfungsi sebagai terminal / tempat udara
masuk atau supply, lalu lubang keluaran, diberi kode A dan B, berfungsi sebagai
terminal atau tempat udara keluar yang dihubungkan ke beban, sedangkan lubang
exhaust diberi kode R, berfungsi sebagai saluran untuk mengeluarkan udara
terjebak saat piston bergerak atau pindah posisi ketika sv ditenagai atau
bekerja.
2. Piston Block / Rumah Piston
Rumah piston
adalah tempat dimana piston bergerak untuk mengalirkan udara dari lubang supply [P] ke lubang output [A]
atau [B], sehingga udara dapat mengalir dengan sempurna.
3. Piston
Piston
terletak didalam rumah piston berfungsi untuk memindahkan udara dari input ke
output, piston berbentuk memanjang, dilengkapi dengan beberapa karet O-ring
dibagian tengahnya agar tidak bocor.
4. Coil
Coil adalah
benda berupa lilitan kawat yang dililitkan terhadap besi, menyerupai sebuah
trafo, jika dialiri arus listrik, maka akan menghasilkan medan magnet sementara
untuk menarik plat besi yang ada didalamnya. plat besi yang ada didalam coil
bergerak maju dan mundur untuk mendorong piston.
5. Conector
Conector
berfungsi untuk terminal pengabelan yang menghubungkan antara tegangan supply
dengan coil solenoid valve, didalamnya terdapat terminal kabel yang terhubung
dengan coil.
Solenoid Valve yang digunakan pada alat ini menggunakan 220VAC sebagai catu
daya sehingga perlu sebuah driver agar solenoid dapat dikontrol oleh arduino
yang keluaran outputnya sebesar 5V.
Driver terdiri dari relay 24VDC, beberapa resistor, adaptor 24VDC,
optokopler dan sebuah transistor NPN (TIP41C)
Gambar 2.3.3 Driver Solenoid Valve
Sumber : Yan_Tronik
3.3. Prinsip Kerja Alat
Alat
ini menggunakan data di dalam kartu
SD untuk menggerakkan solenoid valve. Oleh karena itu,sebelum alat ini bekerja
kita harus menuliskan beberapa data string atau char ke dalam memory kartu SD
dengan format .txt. Ketika alat ini bekerja, arduino akan membaca data di dalam
kartu SD yang berformat .txt dan mengkonversikan data tersebut menjadi data
integer. Data integer inilah yang akan menggerakkan solenoid valve.
3.4. Perancangan Perangkat Keras
Perancangan perangkat keras
meliputi pembuatan driver untuk solenoid valve dan pembuatan pcb untuk
memudahkan pengguna menghubungkan SD card shield dengan arduino.
3.4.1. Rangkaian Solenoid Valve
Rangkaian driver untuk
menghubungkan solenoid dengan board arduino bisa di unduh di http://www.2shared.com/file/zJpzANX1/driver_valve.html
Gambar 3.4.1.1 Rangkaian Driver Solenoid
Valve
3.4.2 PCB SD
Card Shield
Gambar 3.4.1.2 Penghubung SD Card Shield
3.5
Perancangan Perangkat Lunak
Perancangan perangkat lunak
merupakan perancangan algoritma untuk merealisasikan pembacaan data SD card dan
menggunakan data tersebut untuk menggerakkan solenoid valve.
Berikut merupakan list lengkap dari algoritma untuk menggerakkan valve dengan input kartu SD :
#include <SD.h>
File tujuh;
File lima;
int tombol1=2;
int tombol2=3;
int valve=8;
void setup()
{
pinMode( tombol1, INPUT);//tombol 1 sebagai input
pinMode( tombol2, INPUT);//tombol 2 sebagai input
pinMode( valve,OUTPUT);//valve sebagai output
digitalWrite( tombol1, HIGH);//tombol 1 diset aktif tinggi
digitalWrite( tombol2, HIGH);//tombol 2 diset aktif tinggi
// buka komunikasi serial dan tunggu port untuk dibuka :
Serial.begin(9600);
while (!Serial) {
;
}
Serial.print("Inisialisasi kartu memori...");
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("inisialisasi gagal!");
return;
}
Serial.println("inisialisasi berhasil.");
}
int nilai_tombol1=0;
int nilai_tombol2;
void loop()
{
nilai_tombol1= digitalRead(tombol1);
nilai_tombol2= digitalRead(tombol2);
if( nilai_tombol1 == LOW )
{
lima= SD.open("log.txt", FILE_WRITE);
if(lima)
{
lima.println("Valve hidup 5 detik");
lima.close();
Serial.println("Valve hidup 5 detik");
// tambahkan output disini
digitalWrite(8,HIGH);
delay(5000);
digitalWrite(8,LOW);//output mati
}
else
{
Serial.println("gagal membuka file log.txt");
}
delay(1000);
}
if( nilai_tombol2 == LOW )
{
tujuh= SD.open("TEST.txt", FILE_WRITE);
if(tujuh)
{
tujuh.println("Valve hidup 7 detik");
tujuh.close();
// tambahkan output disini
Serial.println("Valve hidup 7 detik");
digitalWrite(8,HIGH);//output hidup
delay(7000);
digitalWrite(8,LOW);//output mati
}
else
{
Serial.println("gagal membuka file test.txt");
}
delay(1000);
}
}
Berikut merupakan list lengkap dari algoritma untuk menggerakkan valve dengan input kartu SD :
#include <SD.h>
File tujuh;
File lima;
int tombol1=2;
int tombol2=3;
int valve=8;
void setup()
{
pinMode( tombol1, INPUT);//tombol 1 sebagai input
pinMode( tombol2, INPUT);//tombol 2 sebagai input
pinMode( valve,OUTPUT);//valve sebagai output
digitalWrite( tombol1, HIGH);//tombol 1 diset aktif tinggi
digitalWrite( tombol2, HIGH);//tombol 2 diset aktif tinggi
// buka komunikasi serial dan tunggu port untuk dibuka :
Serial.begin(9600);
while (!Serial) {
;
}
Serial.print("Inisialisasi kartu memori...");
pinMode(10, OUTPUT);
if (!SD.begin(4)) {
Serial.println("inisialisasi gagal!");
return;
}
Serial.println("inisialisasi berhasil.");
}
int nilai_tombol1=0;
int nilai_tombol2;
void loop()
{
nilai_tombol1= digitalRead(tombol1);
nilai_tombol2= digitalRead(tombol2);
if( nilai_tombol1 == LOW )
{
lima= SD.open("log.txt", FILE_WRITE);
if(lima)
{
lima.println("Valve hidup 5 detik");
lima.close();
Serial.println("Valve hidup 5 detik");
// tambahkan output disini
digitalWrite(8,HIGH);
delay(5000);
digitalWrite(8,LOW);//output mati
}
else
{
Serial.println("gagal membuka file log.txt");
}
delay(1000);
}
if( nilai_tombol2 == LOW )
{
tujuh= SD.open("TEST.txt", FILE_WRITE);
if(tujuh)
{
tujuh.println("Valve hidup 7 detik");
tujuh.close();
// tambahkan output disini
Serial.println("Valve hidup 7 detik");
digitalWrite(8,HIGH);//output hidup
delay(7000);
digitalWrite(8,LOW);//output mati
}
else
{
Serial.println("gagal membuka file test.txt");
}
delay(1000);
}
}
3.5.1 Diagram
Alir Rangkaian
Diagram alir rangkaian secara
keseluruhan dapat dilihat pada gambar dibawah :
Gambar 3.5.1.1 Diagram Alir Rangkain
III.
Pengujian
dan Analisis
Untuk pengujian rangkaian kali ini menggunakan
komunikasi serial yang ada pada software arduino.
Untuk menghubungkan dengan arduino maka pin pada
SD Card Shield harus dihubungkan seperti di bawah :
** MOSI - pin 11 di Arduino Uno
** MISO - pin 12 di Arduino Uno
** CLK - pin 13 di
Arduino Uno
** CS - pin 4 di Arduino Uno
Sedangkan
untuk menggunakan SD card nya harus menggunakan library SD card. Pada Arduino IDE
sudah disediakan library tersebut pada contoh program.
Untuk membaca
data di SD card kita menggunakan perintah
void loop(){
nilai_tombol1= digitalRead(tombol1);
nilai_tombol2= digitalRead(tombol2);
if( nilai_tombol1 == LOW )
{
lima= SD.open("log.txt", FILE_WRITE);
if(lima)
{
lima.println("Valve hidup 5 detik");
lima.close();
Serial.println("Valve hidup 5 detik");
// tambahkan output disini
digitalWrite(8,HIGH);
delay(5000);
digitalWrite(8,LOW);//output mati
}
else
{
Serial.println("gagal membuka file log.txt");
}
delay(1000);
}
if( nilai_tombol2 == LOW )
{
tujuh= SD.open("TEST.txt", FILE_WRITE);
if(tujuh)
{
tujuh.println("Valve hidup 7 detik");
tujuh.close();
// tambahkan output disini
Serial.println("Valve hidup 7 detik");
digitalWrite(8,HIGH);//output hidup
delay(7000);
digitalWrite(8,LOW);//output mati
}
else
{
Serial.println("gagal membuka file test.txt");
}
delay(1000);
}
}
IV.
Kesimpulan
Pada proyek arduino yang dibuat dengan judul
“Penggerak Valve Menggunakan Data SD Card ” menggunakan data dalam SD card sebagai masukan dan valve
sebagai keluaran.
Proyek ini hanya bisa membaca judul dari file .txt tersebut dan tidak dapat membaca file yang terdapat di dalam file.
V.
Daftar Pustaka
https://www.inkling.com/read/arduino-cookbook-michael-margolis-2nd/chapter-2/recipe-2-8
http://arduino.cc/en/Main/arduinoBoardUno
gan bisa diskusi gak , lgi ngerjaian tugas akhir nih berkaitan dengan selenoid valve. klo bisa email ya gan nellyoktaviani15@gmail.com
BalasHapusGan boleh diskusi? Minta emailnya ya
BalasHapusemail saya azizacoz@gmail.com