• Tidak ada hasil yang ditemukan

BAB 3 PERANCANGAN SISTEM

3.9 Diagram Alir (Flowchart)

Keterangan:

Cara kerja diawali dengan mulai kemudian melakukan inisialisasi dan dilanjutkan dengan pembacaan keadaan sensor SHT 11, Loud Cell dan Heater, proses pembacaan ini akan dikirim ke mikrokontroller ATMega 8535, selanjutnya LCD menampilkan nilai setiap sensor. Sampel yang di keringkan setiap keadaan suhu (40 0C, 45 0C, dan 50 0C) adalah sebesar 150 gr. Pada saat proses pengeringan sampel, dicatat perubahan massa yang terjadi selama 15 menit sekali. Apabila tidak terjadi perubahan massa selama 15 menit, maka sampel dianggap sudah kering dan proses pengeringan selesai.

BAB 4

PENGUJIAN ALAT DAN PROGRAM

4.1 Pengujian Power Supply

Pengujian rangkaian power supply bertujuan untuk mengetahui tegangan yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan keluaran dari power supply menggunakan multimeter digital. Setelah dilakukan pengukuran maka diperoleh tegangan keluaran sebesar 4,28 volt. Dengan begitu dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak. Jika diukur, hasil dari keluaran tegangan tidak murni sebesar +5 Volt. Hasil tersebut dikarenakan beberapa faktor, diantaranya kualitas dari tiap-tiap komponen yang digunakan nilainya tidak murni. Selain itu, tegangan jala-jala listrik yang digunakan tidak stabil. Pada pengujian Power Suplay, tegangan yang dibutuhkan sebesar 5 volt, pertama masuk tegangan AC sebesar 220 volt dari PLN, kemudian disalurkan ke travo sehingga tegangan menjadi 12 volt AC, disaring lagi ke dioda sehingga menjadi 12 volt DC, kemudian dihubungkan dengan IC 7805 sehingga tegangan menjadi 5 volt DC.

Gambar 4.1 Pengujian Power Supply 4.2 Pengujian rangkaian Heater

Pengujian heater bertujuan untuk mengetahui panas yang dihasilkan heater tersebut terhadap bahan, untuk mengeringkan rumput laut dalam sistem pengeringan. Dalam penelitian ini digunakan heater buatan yang dirangkai dalam sistem pengeringan.

Sifat panas yang dihasilkan berupa daya listrik yang menimbulkan energy panas, kemudian panas ini ditransmisikan dalam bentuk radiasi yang akan mengeringkan

rumput laut. Adapun program yang diisikan ke mikrokontroller adalah sebagai berikut:

#include <mega8535.h>

#include <stdio.h>

#include <stdlib.h>

void main(void) {

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (1<<DDB1) | (0<<DDB0);

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (1<<DDC0);

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (1<<PORTC0);

DDRD=(1<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

while (1) { PORTB.1=1;

delay_ms(5000);

PORTB.1=0;

delay_ms(5000);

} //end while

} //end void main

Berikut data pengujian heater pada alat pengering rumput laut:

Tabel 4.2 Pengujian Heater

4.3 Pengujian Rangkaian Sensor SHT 11

SHT11 module merupakan modul sensor suhu dan kelembaban relatif dari sensirion. Modul ini dapat digunakan sebagai alat pengindera suhu dan kelembaban dalam sistem pengeringan rumput laut. Pengujian ini bertujuan untuk mengukur sensitifitas dan cara kerja sensor yang digunakan. Berikut program yang digunakan untuk menguji rangkaian sensor:

char inp;

typedef union { unsigned int i;

float f;

} value;

enum {TEMP,HUMI};

#define DATA_OUT PORTD.5

#define DATA_IN PIND.5

#define SCK PORTD.4

#define noACK 0

#define ACK 1

//adr command r/w

#define STATUS_REG_W 0x06 //000 0011 0

#define STATUS_REG_R 0x07 //000 0011 1

#define UKUR_SUHU 0x03 //000 0001 1

#define UKUR_HUMI 0x05 //000 0010 1

#define RESET 0x1e //000 1111 0

#define heater PORTB.1

#define tb_up PINB.0

#define tb_down PINB.2 unsigned int nilaisuhu[2]={0,0};

//Untuk menulis data ke SHT11 char tulis_SHT(unsigned char bytte) {

unsigned char i,error=0;

DDRD = 0b10110000;

for (i=0x80;i>0;i/=2) //shift bit {

if (i & bytte)

DATA_OUT=1;

else DATA_OUT=0;

SCK=1; //clk

delay_us(5); //delay 5 us SCK=0;

}

DATA_OUT=1;

DDRD = 0b10010000; // DATA Output SCK=1; //clk #9 ack

delay_us(2);

error=DATA_IN; //cek ack (DATA akan di pull down oleh SHT11) delay_us(2);

SCK=0;

return error; //cek jika ada error }

//Untuk membaca data dari SHT11 char baca_SHT(unsigned char ack) {

unsigned char i,val=0;

DDRD = 0b10010000; // DATA Input for (i=0x80;i>0;i/=2) //shift bit

{ SCK=1; //clk delay_us(2);

if (DATA_IN) val=(val | i); //baca bit delay_us(2);

SCK=0;

}

DDRD = 0b10110000; // DATA Output

DATA_OUT=!ack; //"ack==1" pull down DATA-Line SCK=1; //clk #9 ack

delay_us(5); //delay 5 us

SCK=0;

DATA_OUT=1; //DATA-line return val;

}

void start_SHT(void) {

DDRD = 0b10110000; // DATA Output DATA_OUT=1; SCK=0; //Inisial state delay_us(2);

SCK=1;

delay_us(2);

DATA_OUT=0;

delay_us(2);

SCK=0;

delay_us(5);

SCK=1;

delay_us(2);

DATA_OUT=1;

delay_us(2);

SCK=0;

DDRD = 0b10010000; // DATA Input }

void reset_SHT(void) {

unsigned char i;

DDRD = 0b10110000; // DATA output DATA_OUT=1; SCK=0; //Inisial state for(i=0;i<9;i++) //9 SCK cycle { SCK=1;

delay_us(1);

SCK=0;

delay_us(1);

}

start_SHT(); //start transmisi data DDRD = 0b10010000; // DATA Input }

//Mengecek status register sensor

char StatusReg_SHT(unsigned char *p_value, unsigned char *p_checksum) {

unsigned char error=0;

start_SHT(); //start transmisi data

error=tulis_SHT(STATUS_REG_R); //mengirim command ke sensor *p_value=baca_SHT(ACK); //baca status register (8-bit)

*p_checksum=baca_SHT(noACK); //baca checksum (8-bit) return error; //error=1 jika tidak ada respon dari sensor }

//Membaca data hasil pengukuran

char ukur_SHT(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)

{

unsigned error=0;

unsigned int temp=0;

start_SHT(); //start transmisi data

switch(mode){ //mengirim command ke sensor case TEMP : error+=tulis_SHT(UKUR_SUHU); break;

case HUMI : error+=tulis_SHT(UKUR_HUMI); break;

default : break;

}

DDRD = 0b10010000; // DATA input

while (1) {

if(DATA_IN==0) break;

//tunggu hingga sensor selesai melakukan pengukuran }

if(DATA_IN) error+=1;

// jika sudah timeout (2 detik)

switch(mode){ //mengirim command ke sensor case TEMP : temp=0;

temp=baca_SHT(ACK);

temp<<=8;

nilaisuhu[0]=temp;

temp=0;

temp=baca_SHT(ACK);

nilaisuhu[0]|=temp;

break;

case HUMI : temp=0;

temp=baca_SHT(ACK);

temp<<=8;

nilaisuhu[1]=temp;

temp=0;

temp=baca_SHT(ACK);

nilaisuhu[1]|=temp;

break;

default : break;

}

*p_checksum =baca_SHT(noACK); //baca checksum return error;

}

const float C1=-4.0;

const float C2=+0.0405;

const float C3=-0.0000028;

const float T1=+0.01;

const float T2=+0.00008;

float hitung_SHT(float p_humidity, float *p_temperature) {

float rh_lin; // rh_lin: Kelembaban linear

float rh_true; // rh_true: Suhu untuk kompensasi kelembaban float t_C; // t_C : nilai Suhu

t_C=*p_temperature*0.01-40;

//mengubah nilai Suhu menjadi derajat Celcius [°C]

rh_lin=C3*(p_humidity)*(p_humidity) + C2*(p_humidity) + C1;

//mengubah nilai kelembaban dalam % [%RH]

rh_true=(t_C-25)*(T1+T2*(p_humidity))+rh_lin;

//mengkompensasikan nilai suhu dan kelembaban[%RH]

if(rh_true>100)rh_true=100;

if(rh_true<0.1)rh_true=0.1;

*p_temperature=t_C;

return rh_true;

}

/**************End program sht11*************/

void main(void) {

value humi_val,temp_val;

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (1<<DDB1) | (0<<DDB0);

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (1<<DDC0);

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (1<<PORTC0);

DDRD=(1<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

lcd_init(16);

while (1) {

//delay_ms(500);

error=0;

error+=ukur_SHT((unsigned char*)( &humi_val.i),&checksum,HUMI);

//mengukur kelembaban

error+=ukur_SHT((unsigned char*) (&temp_val.i),&checksum,TEMP);

//mengukur suhu

error += StatusReg_SHT(&inp, &checksum);

if(error!=0) {

reset_SHT(); //jika ada error, reset koneksi lcd_gotoxy(0,0);

lcd_putsf("Error");

} else

{

humi_val.f=(float)nilaisuhu[1];

//mengubah integer menjadi float

temp_val.f=(float)nilaisuhu[0];

humi_val.f=hitung_SHT(humi_val.f,&temp_val.f);

//menghitung suhu, kelembaban //menampilkan pada LCD lcd_gotoxy(8,0);

ftoa(temp_val.f,2,buf);

lcd_putsf("T:");

lcd_puts(buf);

lcd_putsf("C");

lcd_gotoxy(10,1);

ftoa(humi_val.f,0,buf);

lcd_putsf("RH:");

lcd_puts(buf);

lcd_putsf("%");

}

} //end while

} //end void main

Berikut hasil pengujian sensor SHT 11 yang ditampilkan pada LCD:

Gambar 4.3 Pengujian sensor SHT 11

4.4 Pengujian Rangkaian Load Cell dan Hx711

Load cell sebagai sensor berat yang mengirimkan data berat terhadap objek yang diukur. HX711 adalah modul timbangan, yang memiliki prinsip kerja mengkonversi perubahan yang terukur dalam perubahan resistansi dan mengkonversinya ke dalam besaran tegangan melalui rangkaian yang ada. Modul melakukan komunikasi dengan mikrokontroller melalui TTL232. Pada sistem ini Modul HX711 di hubungkan langsung dengan load cell. Load cell mengirimkan hasil timbang berupa sinyal berbentuk analog maka akan diubah menjadi sinyal digital, DOUT dan PD_SCK mendapat input dari load cell dimana weight sensor mobile akan diubah dari sinyal analog menjadi sinyal analog dengan berbentuk pulsa. Pengujian ini dilakukan dengan mencoba memberikan objek pada sensor dan membaca data pada LCD 16x2 dari mikrokontroller. Berikut program pengujian cara kerja Load cell dan HX711 :

#include <mega8535.h>

#include <alcd.h>

#include <stdio.h>

#include <stdlib.h>

#include <delay.h>

#include <math.h >

/**************Start program Load Cell*************/

#define HX711_SCK PORTD.7

#define HX711_DT PIND.6

#define HIGH 1

#define LOW 0 char text[20];

// Declare your global variables here long HX711_Buffer = 0;

long Weight_Maopi = 0,Weight_Shiwu = 0;

int Weight = 0;

unsigned long HX711_Read(void) {

unsigned long count;

unsigned char i;

//int Flag = 0;

HX711_DT= HIGH;

delay_us(1);

HX711_SCK=LOW;

delay_us(1);

count=0;

while(HX711_DT);

for(i=0;i<24;i++) {

HX711_SCK=HIGH;

delay_us(1);

count=count<<1;

HX711_SCK= LOW;

delay_us(1);

if(HX711_DT) count++;

}

HX711_SCK= HIGH;

count ^= 0x800000;

delay_us(1);

HX711_SCK= LOW;

delay_us(1);

return(count);

}

void Get_Maopi() {

HX711_Buffer = HX711_Read();

Weight_Maopi = HX711_Buffer/100;

}

unsigned int Get_Weight() {

HX711_Buffer = HX711_Read();

HX711_Buffer = HX711_Buffer/100;

Weight_Shiwu = HX711_Buffer;

Weight_Shiwu = Weight_Shiwu - Weight_Maopi;

Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/7.35+0.05);

return Weight_Shiwu;

}

/**************End program Load Cell*************/

void main(void) {

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (1<<DDB1) | (0<<DDB0);

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (1<<DDC0);

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (1<<PORTC0);

DDRD=(1<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

Get_Maopi();

lcd_init(16);

lcd_clear();

while (1) {

delay_ms(500);

Weight = Get_Weight();

lcd_gotoxy(0,1);

ftoa(Weight,1,text);

lcd_putsf("W:");

lcd_puts(text);

lcd_putsf(" gr ");

} //end while

} //end void main

Berikut hasil pengujian sensor Loud Cell dan HX711 yang di tampilkan pada LCD:

Gambar 4.4 Pengujian sensor Loud cell dan Hx711

4.5 Pengujian Rangkaian LCD

Bagian ini hanya terdiri dari sebuah LCD dot matriks 2 x 16 karakter yang berfungsi sebagai tampilan hasil pengukuran dan tampilan dari beberapa keterangan.

LCD dihubungkan langsung ke Port C dari mikrokontroler yang berfungsi mengirimkan data hasil pengolahan untuk ditampilkan dalam bentuk alfabet dan numerik pada LCD.

Adapun program yang diisikan ke mikrokontroller untuk menampilkan karakter pada display LCD adalah sebagai berikut:

#include <mega8535.h>

#include <alcd.h>

#include <stdio.h>

#include <stdlib.h>

void main(void) {

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (1<<DDB1) | (0<<DDB0);

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (1<<DDC0);

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (1<<PORTC0);

DDRD=(1<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

lcd_init(16);

lcd_clear();

while (1) {

lcd_gotoxy(3,0);

lcd_putsf("Yoga");

lcd_gotoxy(1,1);

lcd_putsf("S1 Fisika");

delay_ms(1000);

lcd_clear();

} //end while

} //end void main

Berikut hasil pengujian LCD pada alat pengering rumput laut:

Gambar 4.5 Pengujian LCD 4.6 Pengujian Rangkaian Keseluruhan

Pengujian sistem secara keseluruhan dilakukan dengan merancang alat pengering dengan merangkai semua komponen yang terkait, dimana mikrokontroller ATMega 8535 sebagai pusat pengelola sistem secara keseluruhan. Setelah rancangan perangkat keras dilakukan, selanjutnya dilakukan pengujian langsung dengan power supply sebagai sumber tegangan, maka sistem akan bekerja dan untuk menjalankan rancangan sistem tersebut menggunakan bahasa pemrograman C yang sudah diprogram dengan ketentuan panas dan suhu yang diinginkan.

Pengujian dilakukan dengan sampel rumput laut jenis Sargassum sp yang akan dikeringkan kedalam sistem pengeringan dengan variasi suhu 40 0C, 45 0C, dan 50 0C. Pada waktu pengujian rumput laut yang diamati adalah rumput laut basah dengan massa sebesar 150 gram. Rumput laut tersebut kemudian dikeringkan menggunakan sistem dengan waktu pengambilan data selama 15 menit sekali.

Rumput laut mengalami penurunan massa setiap 15 menit sekali akibat pengaruh

suhu dalam wadah. Apabila massa rumput laut tidak mengalami penurunan selama 15 menit, maka rumput laut dianggap sudah kering. Suhu, kelembapan, dan massa ditampilkan langsung oleh LCD.

4.6.1 Hasil Pengujian Suhu 40 0C

Tabel 4.6.1 Pengujian Suhu 40 0C Waktu (Menit) Perubahan Massa (Gram)

0 150

Jika ditampilkan dalam bentuk grafik,akan terlihat seperti dibawah ini :

Gambar 4.6.1 Grafik Perubahan Massa Rumput laut vs Waktu 40 0C

100

4.6.2 Hasil Pengujian Suhu 45 0C

Tabel 4.6.2 Pengujian Suhu 45 0C Waktu (Menit) Perubahan Massa (Gram)

0 150

Jika ditampilkan dalam bentuk grafik,akan terlihat seperti dibawah ini :

Gambar 4.6.2 Grafik Perubahan Massa Rumput laut vs Waktu 45 0C

100

4.6.3 Hasil Pengujian Suhu 50 0C

Tabel 4.6.3 Pengujian Suhu 50 0C Waktu (Menit) Perubahan Massa(Gram)

0 150

Jika ditampilkan dalam bentuk grafik,akan terlihat seperti dibawah ini :

Gambar 4.6.3 Grafik Perubahan Massa Rumput laut vs Waktu 50 0C

Berdasarkan ketiga pengujian tersebut dapat ditentukan rata-rata massa akhir rumput laut adalah: 28,3 + 28,3 + 27,5

Sehingga dapat dihitung kadar air rumput laut dengan menggunakan persamaan berikut ini:

Kadar air basis kering = 𝑎−𝑏

𝑎 𝑥 100%

Keterangan: a = Massa awal sampel (gram) b = Massa akhir sampel (gram) Kadar air basis kering = 150− 28,03

150 𝑥 100%

= 121,97

150 𝑥 100%

= 81, 31%

Jadi kadar air yang tersisa dari dalam rumput laut kering = 100% - 81, 31%

= 18, 69%

Jadi didapatkan kadar air dalam rumput laut adalah 18,69%. Hasil ini mendekati nilai rumput laut kering kawat (20-30%).

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil perancangan alat hingga pengujian dan pembahasan sistem maka penulis dapat menarik kesimpulan, antara lain :

1. Telah berhasil dirancang suatu alat yang mampu mengeringkan rumput laut berdasarkan perubahan massa menggunakan elemen pemanas (heater) yang sistemnya dikontroll menggunakan sensor suhu dan kelembaman (SHT 11), dan Loud Cell yang kemudian dikendalikan oleh mokrokontroller ATMEGA 8535 dari seluruh sistem dan ditampilkan di LCD.

2. Prinsip kerja alat pengering rumput laut berdasarkan perubahan massa ini adalah menggunakan elemen pemanas berupa (Heater), kemudian sensor SHT 11 mengukur suhu dan kelembapan dalam sistem. Dan Loud Cell sebagai sensor berat mengukur perubahan massa yang terjadi selama proses pengeringan berlangsung yang kemudian nilai besar suhu dan kelembapan serta perubahan massa ditampilkan pada LCD. Pengeringan dianggap selesai apabila tidak ada lagi perubahan massa selama 15 menit.

5.2 Saran

Setelah melakukan penelitian, diperoleh beberapa hal yang dapat dijadikan saran untuk dilakukan penelitian lebih lanjut yaitu:

1. Membuat penampang rumput laut yang dapat berputar sehingga proses pengeringan lebih merata.

2. Pada alat perlu ditambahkan Sd Card sebagai pencatat perubahan massa secara otomatis sehingga meningkatkan keakuratan data.

3. Pada alat perlu ditambahkan sensor pendeteksi kadar air di oven pengering, untuk mendapatkan pengukuran kandungan air dalam alat pengering rumput laut.

DAFTAR PUSTAKA

Andriawan, N. K. 2018. Rancang Bangun Sistem Pengeringan Rumput Laut Berbasis Arduino Uno di Kabupaten Takalar. [skripsi]. Makassar: Universitas Islam Negeri Alauddin Makassar.

Anggadiredja, J. T., Zatnika, A., Purwoto, H. dan Istini, S. 2009. Rumput Laut.

Jakarta (ID): Penebar Swadaya.

Djaeni, M., Sasongko, S. B., Van Boxtel, A. J. B. (2013). Enhancement of Energy Efficiency and Food Product Quality Using Adsorption Dryer with Zeolite.

International Journal of Renewable Energy Development, 2(2), 81-86.

Fithriani, D., Assadad, L., & Siregar, Z.A. (2016). Karakteristik dan Model Matematika Kurva Pengeringan Rumput Laut Eucheuma cottonii. Jurnal Pascapanen dan Bioteknologi Kelautan dan Perikanan, 11(2), 159-170.

doi:10.15578/ jpbkp.v11i2.290

Goeritno, Arif., Dwi, J. N., Rakhmad Yatim. (2014). Implementasi Sensor SHT11 untuk Pengkondisian Suhu dan Kelembaban Relatif Berbantuan Mikrokontroler. Jakarta: Seminar Nasional Sains dan Teknologi.

Matondang, M., A. (2018). Perancangan Sistem Penghitung dan Pemilah Buah Otomatis dengan Menggunakan Sensor Laser Dioda dengan Tampilan PC.

[Skripsi]. Medan: Universitas Sumatera Utara.

Nuryanto, Rudi. (2015). Pengukur berat dan Tinggi Badan Ideal Berbasis Arduino.

[Karya Ilmiah]. Surakarta: Universitas Muhammadiyah Surakarta.

Ristiawan, M., Eko A. (2016). Otomatisasi Pengatur Suhu dan Waktu pada Penyangrai Kopi (Roaster Coffee) Berbasis Atmega 16 pada Tampilan LCD (Liquid Crystal Display). Gema Teknologi Vol. 19.

Sari, Denni Kartika, Dkk. 2017. Pengaruh Suhu dan Waktu Pengeringan Terhadap Mutu Rumput Laut Kering. Banten: Jurnal Teknika ISSN 1693-024X.

Sofyan, I. 2001. Rancangan Awal Alat Pengering Energi Matahari (Solar Dryer) untuk Pengering Rumput Laut. [skripsi]. Bogor (ID): Institut Pertanian Bogor.

Tumanggor, S. 2018. Sistem Pengeringan Biji Padi Berbasis Mikrokontroller Atmega 8. [skripsi]. Medan: Universitas Sumatera Utara.

LAMPIRAN

Gambar 1. Rumput Laut Sargassum Sp

Gambar 2. Tampilan pada LCD

Gambar 3. Keseluruhan Alat

Gambar 4. Hasil Pengeringan Rumput Laut

Gambar 5. Rangkaian Lengkap

PROGRAM LENGKAP

/*******************************************************

This program was created by the CodeWizardAVR V3.12 Advanced Automatic Program Generator

© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

AVR Core Clock frequency: 16.000000 MHz Memory model : Small

// Declare your global variables here

long HX711_Buffer = 0;

long Weight_Maopi = 0,Weight_Shiwu = 0;

int Weight = 0;

unsigned long HX711_Read(void) {

return Weight_Shiwu;

//Untuk menulis data ke SHT11 char tulis_SHT(unsigned char bytte)

DATA_OUT=1;

//Untuk membaca data dari SHT11 char baca_SHT(unsigned char ack) // menghasilkan sinyal awal untuk transmisi data

// _____ ________

SCK=0; // reset: DATA-line=1 dengan 9 SCK cycle di awal

// _____________________________________________________ //Untuk mereset koneksi dengan SHT11

void reset_SHT(void)

char StatusReg_SHT(unsigned char *p_value, unsigned char *p_checksum) {

unsigned char error=0;

start_SHT(); //start transmisi data

error=tulis_SHT(STATUS_REG_R); //mengirim command ke sensor *p_value=baca_SHT(ACK); //baca status register (8-bit)

*p_checksum=baca_SHT(noACK); //baca checksum (8-bit) return error; //error=1 jika tidak ada respon dari sensor }

//Membaca data hasil pengukuran

char ukur_SHT(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)

{

//tunggu hingga sensor selesai melakukan pengukuran }

float hitung_SHT(float p_humidity, float *p_temperature)

rh_lin=C3*(p_humidity)*(p_humidity) + C2*(p_humidity) + C1;

//mengubah nilai kelembaban dalam % [%RH]

// Declare your local variables here // Input/Output Ports initialization // Port A initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

// Port B initialization

//port B.0 dan portb.2 dipakei untuk tombol up & down heater //portB.1 dipakai untuk output heater

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (1<<DDB1) | (0<<DDB0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (1<<PORTB2) | (0<<PORTB1) | (1<<PORTB0);

// Port C initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=Out DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (1<<DDC0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=1

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (1<<PORTC0);

// Port D initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(1<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected

TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02)

| (0<<CS01) | (0<<CS00);

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off

// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off

TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);

TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0<<AS2;

TCCR2=(0<<WGM20) | (0<<COM21) | (0<<COM20) | (0<<WGM21) | (0<<CS22)

| (0<<CS21) | (0<<CS20);

TCNT2=0x00;

OCR2=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

// External Interrupt(s) initialization // INT0: Off

// INT1: Off // INT2: Off

MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

MCUCSR=(0<<ISC2);

// USART initialization // USART disabled

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

// Analog Comparator initialization // Analog Comparator: Off

// The Analog Comparator's positive input is // connected to the AIN0 pin

// The Analog Comparator's negative input is // connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC)

| (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME);

// ADC initialization // ADC disabled

ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

// SPI initialization // SPI disabled

SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

// TWI initialization // TWI disabled

TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

// Alphanumeric LCD initialization // Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTC Bit 7

}

if(hitung>=50){

lcd_gotoxy(0,1);

lcd_putsf("mulai operasi");

delay_ms(2000);

if (set_suhu>=60) set_suhu=60;

if (set_suhu<=40) set_suhu=40;

error+=ukur_SHT((unsigned char*)( &humi_val.i),&checksum,HUMI);

//mengukur kelembaban

error+=ukur_SHT((unsigned char*) (&temp_val.i),&checksum,TEMP);

//mengukur suhu

error += StatusReg_SHT(&inp, &checksum);

if(error!=0) {

reset_SHT(); //jika ada error, reset koneksi lcd_gotoxy(0,0);

lcd_putsf("Error");

} else {

humi_val.f=(float)nilaisuhu[1];

//mengubah integer menjadi float

temp_val.f=(float)nilaisuhu[0];

humi_val.f=hitung_SHT(humi_val.f,&temp_val.f);

//menghitung suhu, kelembaban //menampilkan pada LCD lcd_gotoxy(8,0);

ftoa(temp_val.f,2,buf);

lcd_putsf("T:");

lcd_puts(buf);

lcd_putsf("C");

lcd_gotoxy(10,1);

ftoa(humi_val.f,0,buf);

lcd_putsf("RH:");

lcd_puts(buf);

lcd_putsf("%");

}

if (temp_val.f<set_suhu) heater=1;

else heater=0;

} //end while } //end void main

Dokumen terkait