Selasa, 28 Januari 2014

PENGGERAK VALVE MENGGUNAKAN DATA SD CARD

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.
§ PWM: 3, 5, 6, 9, 10, dan 11. Memberikan 8-bit PWM output dengan fungsi analogWrite().
§ 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:
§ AREF. Referensi tegangan untuk input analog. Digunakan dengan analogReference().
§ 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)
( Silahkan download gratis drivernya di http://www.2shared.com/file/zJpzANX1/driver_valve.html )



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


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

2 komentar:

  1. gan bisa diskusi gak , lgi ngerjaian tugas akhir nih berkaitan dengan selenoid valve. klo bisa email ya gan nellyoktaviani15@gmail.com

    BalasHapus
  2. Gan boleh diskusi? Minta emailnya ya
    email saya azizacoz@gmail.com

    BalasHapus