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
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