Aplikasi Fuzzy Logic Untuk Perancangan Alat Pengaturan Otomatis Intensitas Penerangan Ruangan Berbasis Mikrokontroler Atmega 8535

30

Lampiran 1

Gambar Skematik Rangkaian Keseluruhan Alat

Universitas Sumatera Utara

31

Lampiran 2

Gambar Perangkat Keras Alat

Universitas Sumatera Utara

32

Lampiran 3

Lampiran 4


Universitas Sumatera Utara

33

Kode Program
#include
#include
#include
#include
#include
///***********************definisi alamat sensor intensitas cahaya********************//
#define TSL256x_address
0x29
#define TSL256x_write_mode
0x29
#define TSL256x_read_mode
0x30
#define control_reg
0x00

#define timing_reg
0x01
#define thresh_low_low_reg
0x02
#define thresh_low_high_reg 0x03
#define thresh_high_low_reg 0x04
#define thresh_high_high_reg 0x05
#define interrupt_reg
0x06
#define CRC_reg
0x08
#define ID_reg
0x0A
#define data_0_low_reg
0x0C
#define data_0_high_reg
0x0D
#define data_1_low_reg
0x0E
#define data_1_high_reg

0x0F
#define TSL256x_CMD
0x80
char buflcd[32];
float defuz, pwm;
float lux;
float temp;
float intensitas [4];
float rule [5][5];
//fungsi untuk memberi perintah ke sensor agar bekerja
void TSL256x_write(unsigned char reg, unsigned char value)
{
i2c_start();
i2c_write(TSL256x_write_mode | 0);
i2c_write(reg);
i2c_write(value);
i2c_stop();
}

Universitas Sumatera Utara


34

//inisialisasi sensor
void TSL256x_init()
{
delay_ms(200);
TSL256x_write(control_reg, 0x03);
TSL256x_write(timing_reg, 0x00);
TSL256x_write(interrupt_reg, 0x00);
TSL256x_write(control_reg, 0x00);
}
//proses membaca sensor
unsigned char TSL256x_read_byte(unsigned char reg)
{
unsigned char value = 0;
i2c_start();
i2c_write(TSL256x_write_mode | 0 );
i2c_write(TSL256x_CMD | reg);
i2c_start();

i2c_write(TSL256x_write_mode | 1 );
value = i2c_read(0);
i2c_stop();
return value;
}
//proses konversi pembacaaan sensor
unsigned int TSL256x_read_word(unsigned char reg)
{
unsigned char hb = 0;
unsigned char lb = 0;
unsigned int value = 0;
lb = TSL256x_read_byte(reg);
hb = TSL256x_read_byte(reg + 1);
value = hb;
value