Anda di halaman 1dari 18

BAB 4

PENGUKURAN DAN ANALISA

4.1. Analisa Hardware

Gambar alat secara keseluruhan

36
4.1.1. Mikrokontroler Arduino UNO

Bagian ini merupakan pemroses keseluruhan dari sistem ini. Rutin yang

dikerjakan ditulis dalam bahasa c yang selanjutnya didownload pada memori internal

yang tersedia melalui USB kabel.

Mikrokontroler ini buatan Arduino yang menggunakan IC Atmega328P Atmel, ,

di dalamnya terdapat 32 Kbytes Flash Memory, 14 jalur digital I/O di mana 6 buah

diantaranya menyediakan fasilitas PWM, 8 jalur input analog, 2 Kbytes SRAM, dan

37
dilengkapi dengan EEPROM 1 Kbyte . Sementara clock speed mencapai 16 Mhz.

Microcontroller ini beroperasi pada tegangan DC 5 volt. Arus DC per pin I/O

adalah 40 mA. Dalam pengujian didapat hasil pengukuran seperti tabel di bawah ini :

38
4.1.2. Sensor Air

Pada rangkaian sensor Air terdapat tiga kaki sensor yang utama yaitu Vcc, Ground

dan Data. Adapun titik pengukuran yang diakukan pada titik Data adalah sebagai berikut:

Gambar pengukuran pada saat ada air

39
Gambar pengukuran pada saat tidak ada air

Adapun hasil yang didapat adalah:

Tabel 4.2. Pengukuran Sensor Air

Kondisi sensor Pengukuran tegangan


Ada air 4,293
Tidak ada air 1.818

Sumber : hasil pengukuran dengan menggunakan Multimeter

4.1.3. LDR

40
Tabel 4.3. Data Pengukuran Rangkaian LDR

Kondisi Pengukuran tegangan


Ada cahaya 4,639 V
Tidak ada cahaya 0.88
Sumber : hasil pengukuran dengan menggunakan Multimeter

Gambar pengukuran pada saat ada cahaya

41
Gambar pengukuran pada saat ada cahaya

4.1.4. Relay motor DC

42
Gambar pada saat motor DC OFF

43
Gambar pada saat motor DC putaran maju

44
Gambar pada saat motor DC putaran mundur

Tabel 4.4. Data Pengukuran relay motor DC

Kondisi Relay motor maju Relay motor mundur


0 On On
1 Off Off
Sumber : hasil pengukuran dengan menggunakan Logic Probe

45
4.1.5. Relay Lampu

Gambar pada saat lampu ON

46
Gambar pada saat lampu OFF

Tabel 4.4. Data Pengukuran relay lampu

Kondisi Kondisi lampu


0 On
1 Off
Sumber : hasil pengukuran dengan menggunakan Logic Probe

4.1.3. Relay Fan

47
Gambar pada saat Fan ON

48
Gambar pada saat Fan OFF

Tabel 4.5. Data Pengukuran Magnetic Contact

Kondisi fan Pengukuran tegangan


ON 12.38
OFF 0.058
Sumber : hasil pengukuran dengan menggunakan Logic Probe

4.2. Analisa Software

49
Dalam pemrograman Arduino menggunakan software arduino IDE dapat

digolongkan menjadi beberapa bagian.

1. Header file

Header file adalah library file yang telah tersedia di dalam Arduino IDE. Library

ini akan digunakan untuk untuk membantu pemrograman berdasarkan perangkat

yang digunakan. Sintaks penulisan dimulai dengan #include kemudian diikuti

nama header library dengan diapit tanda< >. Biasanya tampilan warnanya

adalah oranye.

2. Deklarasi dan Penamaan Pin

Deklarasi dalam hal ini adalah pendaftaran penggunaan I/O. I/O yang digunakan

dapat diberi inisialisasi nama terlebih dahulu tujuannya adalah mempermudah

dalam proses pemrograman nantinya. Tanpa deklarasi ini maka pin yang dipanggil

dalam rutin program tidak akan dideteksi dan menampilkan pesan error.

3. Class

Class adalah sebuah rutin yang dapat bekerja pada waktu bersamaan dengan

subrutin yang sedang dieksekusi. Class penggunaannya memang jarang namun

jika kasus memerlukan operasi kerja yang bersifat multitasking (proses kerja lebih

dari satu) maka class ini adalah salah satu solusinya.

4. Void setup

Pada bagian ini adalah adalah setting kondisi awal dari perangkat I/O yang telah

dideklarasi sebelumnya. Dan saat program dijalankan maka semua proses kerja

berawal dari bagian ini.

50
5. Void Loop

Bagian ini adalah yang menjadi inti utama dari program secara keseluruhan.

Setelah melalui eksekusi void setup maka void loop menjadi bagian yang akan

dieksekusi secara terus menerus berdasarkan kondisi program yang sudah dibuat.

Pada bagian inilah logika pemrograman dapat dikreasikan sedemikian rupa.

6. Function

Function adalah bagian rutin yang dibuat untuk mempermudah dalam pembacaan

program. Function dibuat berdasarkan kepentingan program Misalnya jika sebuah

function dibuat maka function ini dapat dipanggil pada bagian void loop.

7. Comment

Comment adalah bagian yang tidak ikut dieksekusi oleh mikrokontroller.Tujuan

comment dibuat adalah untuk mempermudah dalam pembacaan dan pemeriksaan

program. Sintaks penulisannya adalah // diikuti isi comment. Simbol ini hanya

dapat digunakan untuk comment dalam satu baris. Tetapi jika comment lebih dari

satu baris maka digunakan format /* isi comment */ .

#define Ldr_Sense A0
#define Water_Sense 5 //active high
#define Limit_IN 7 //active low
#define Limit_OUT 6 //active low
#define DC_Motor_IN 8 //active low
#define DC_Motor_OUT 9 //active low
#define Fan 10 //active low
#define Lamp 11 //active low

bool Ldr_Status = false;

Bagian ini adalah deklarasi dan penamaan pin I/O yang digunakan. Deklarasi

dimulai dari sensor hingga output. Jumlah baris dan kolom ditentukan di sini. Kemudian

deklarasi kondisi LDR.

51
void setup() {
// INPUT //
pinMode (Ldr_Sense,INPUT);
pinMode (Water_Sense,INPUT);
pinMode (Limit_IN,INPUT_PULLUP);
pinMode (Limit_OUT,INPUT_PULLUP);

// OUTPUT //
pinMode (DC_Motor_IN,OUTPUT);
digitalWrite(DC_Motor_IN,HIGH);
pinMode (DC_Motor_OUT,OUTPUT);
digitalWrite(DC_Motor_OUT,HIGH);
pinMode (Fan,OUTPUT);
digitalWrite(Fan,HIGH);
pinMode (Lamp,OUTPUT);
digitalWrite(Lamp,HIGH);
}

Rutin ini adalah pengkondisian pin input dan juga output. Termasuk nilai awal

dari masing- masing I/O.

void pemanasan()
{
if (digitalRead(Limit_IN) == LOW){
digitalWrite(DC_Motor_IN,HIGH);
digitalWrite(DC_Motor_OUT,HIGH);
digitalWrite(Fan,LOW); //ON
digitalWrite(Lamp,LOW); //ON
}
else{
digitalWrite(DC_Motor_IN,LOW);
digitalWrite(DC_Motor_OUT,HIGH);
}
}

void penjemuran()
{
if(digitalRead(Limit_OUT) == LOW){
digitalWrite(DC_Motor_IN,HIGH);
digitalWrite(DC_Motor_OUT,HIGH);
}
else {
digitalWrite(Fan,HIGH); //OFF
digitalWrite(Lamp,HIGH); //OFF
digitalWrite(DC_Motor_IN,HIGH);
digitalWrite(DC_Motor_OUT,LOW);
}
}
Rutin ini adalah fungsi yang dibuat yang nantinya akan dipanggil pada bagian

void loop. Terdiri dari 2 rutin yaitu mode pemanasan dan mode penjemuran.

52
Rutin utama dimulai dari void loop. Karena sintaks program yang cukup panjang
maka akan dikabarkan persub bagian.

void loop() {

//////////////////////// Read Ldr /////////////////////


int dataLdr = analogRead(Ldr_Sense);
if(dataLdr >= 900) Ldr_Status = false; // tanpa cahaya
else if(dataLdr < 900) Ldr_Status = true; // ada cahaya
//////////////////////////////////////////////////////

Rutin utama dimulai dari baca kondisi sensor LDR secara ADC(bukan digital).

// 1. Ldr_Status = true && Water_Sense = ON(ada air/LOW) /*Proses


pemanasan */
if(Ldr_Status == true && digitalRead(Water_Sense) == LOW)
{
pemanasan();
}
Baca sensor Air data andingkan data. Jika LDR mendeteksi cahaya dan
mendeteksi ada air maka mode pemanasan.

// 2. Ldr_Status = true && Water_Sense = OFF /*Proses penjemuran */


else if(Ldr_Status == true && digitalRead(Water_Sense) == HIGH)
{
penjemuran();
}
Baca sensor Air data andingkan data. Jika LDR mendeteksi cahaya dan
mendeteksi tidak ada air maka mode penjemuran..

// 3. Ldr_Status = false && Water_Sense = ON /*Proses pemanasan */


else if(Ldr_Status == false && digitalRead(Water_Sense) == LOW)
{
pemanasan();
}
Baca sensor Air data andingkan data. Jika LDR mendeteksi tidak ada cahaya dan
mendeteksi ada air maka mode pemanasan.
// 4. Ldr_Status = false && Water_Sense = OFF /*Proses pemanasan */
else // if(Ldr_Status == false && digitalRead(Water_Sense) == HIGH)
{
pemanasan();
}
}
Baca sensor Air data andingkan data. Jika LDR mendeteksi tidak ada cahaya dan
mendeteksi tidak ada air maka mode pemanasan.

53

Anda mungkin juga menyukai