• Tidak ada hasil yang ditemukan

Perancangan Sistem Pengontrol dan Monitor Intensitas Cahaya Ruangan Berbasis Perintah Suara pada Sistem Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Sistem Pengontrol dan Monitor Intensitas Cahaya Ruangan Berbasis Perintah Suara pada Sistem Android"

Copied!
10
0
0

Teks penuh

(1)

LISTING PROGRAM

1.

Program Mikrokontroller Arduino Uno A

#include <TimerOne.h>

volatile boolean zero_cross=0; // variable kondisi zero-cross int AC_pin = 5; // Output pwm ke triac (kanan) int dim = 0; // Dimming level (0-128) 0 = on, 198 = 0ff

int inc=1; // counting up or down, 1=up, -1=down

int freqStep = 60; // This is the delay-per-brightness step in microseconds.

// data pembanding intensitas dimmer int maxDim = 190;

Serial.begin(9600); // membuka gate komunikasi arduino ke bluetooth dengan kecepatan transfer data 9600

pinMode(AC_pin, OUTPUT); // Set the Triac pin as output

attachInterrupt(0, zero_cross_detect, RISING); // Attach an Interupt to Pin 2 (interupt 0) for Zero Cross Detection. daftar interup

Timer1.initialize(freqStep); // Initialize TimerOne library for the freq we need

Timer1.attachInterrupt(dim_check, freqStep); //aktifkan interup

}

void zero_cross_detect() {

zero_cross = true; // set the boolean to true to tell our dimming function that a zero cross has occured

i=0;

digitalWrite(AC_pin, LOW); // turn off TRIAC (and AC) }

(2)

if(zero_cross == true) {

if(Serial.available() > 0){ char a = Serial.read(); berupa angka yang akan mengontrol dimmer

dataCheck = "";

if(millis() > timeser + 500) //update tiap 500 milisecond {

convertToDim();

// Serial.println("dataCheck >>>>>>>> " + String(dataCheck_2));

// Serial.println("dataDim >>>>>>>> " + String(dataDim)); // Serial.println(" ");

timeser = millis(); //restart counter timer }

}

void convertToDim(){

int dataDim1 = dataCheck_2.toInt();

float dataDim2 = (maxDim-minDim) * dataDim1/100.0; dataDim = maxDim - dataDim2;

// convert data to dim lamp

if(dataCheck_2 != prevDataCheck_2){ //Serial.println("Dimming Now"); dim = dataDim;

prevDataCheck_2 = dataCheck_2; }

(3)

2.

Program Mikrokontroller Arduino Uno B

#include <TimerOne.h>

String dataCheck;

String dataCheck_2;

String prevDataCheck_2;

bool firstChar = false;

unsigned long timeser;

volatile int i=0; // counter interup

volatile boolean zero_cross=0; // variable kondisi zero-cross

int AC_pin = 5; // Output pwm ke triac (kanan)

int dim = 0; // Dimming level (0-128) 0 = on, 198 = 0ff

int inc=1; // counting up or down, 1=up, -1=down

int freqStep = 60; // This is the delay-per-brightness step in microseconds.

// data pembanding intensitas dimmer

int maxDim = 190;

int minDim = 10;

int dataDim;

// fungsi pengkondisian awal

void setup()

{

Serial.begin(9600); // membuka gate komunikasi arduino ke bluetooth dengan kecepatan transfer data 9600

pinMode(AC_pin, OUTPUT); // Set the Triac pin as output

(4)

Timer1.initialize(freqStep); // Initialize TimerOne library for the freq we need

Timer1.attachInterrupt(dim_check, freqStep); //aktifkan interup

}

void zero_cross_detect() {

zero_cross = true; // set the boolean to true to tell our dimming function that a zero cross has occured

i=0;

digitalWrite(AC_pin, LOW); // turn off TRIAC (and AC)

}

// Turn on the TRIAC at the appropriate time

void dim_check() {

if(zero_cross == true) {

if(i>=dim) {

digitalWrite(AC_pin, HIGH); // turn on light

i=0; // reset time step counter

zero_cross = false; //reset zero cross detection

}

else {

i++; // increment time step counter

}

}

}

//sistem looping

void loop ()

{

if(Serial.available() > 0){

char a = Serial.read();

(5)

else if(a != '#' && firstChar == true){

dataCheck += (String)a;

}

else if(a == '#'){

dataCheck_2 = dataCheck;

dataCheck = "";

firstChar = false;

//Serial.println("#|" + dataCheck_2 );

}

else {

}

}

printData();

}

void printData(){

if(millis() > timeser + 500)

{

convertToDim();

// Serial.println("dataCheck >>>>>>>> " + String(dataCheck_2));

// Serial.println("dataDim >>>>>>>> " + String(dataDim));

// Serial.println(" ");

timeser = millis();

}

}

void convertToDim(){

int dataDim1 = dataCheck_2.toInt();

float dataDim2 = (maxDim-minDim) * dataDim1/100.0;

(6)

// convert data to dim lamp

if(dataCheck_2 != prevDataCheck_2){

//Serial.println("Dimming Now");

dim = dataDim;

prevDataCheck_2 = dataCheck_2;

}

else{}}

3.

Pemrograman Aplikasi Android

(7)
(8)
(9)
(10)

Referensi

Dokumen terkait

Puji dan syukur penulis ucapkan kepada Allah SWT, yang hanya karena rahmat dan karunia-Nya, penulis dapat menyelesaikan Tugas Akhir dengan judul “Penentuan Model Terbaik

Prinsip kemandirian dalam proses pendidikan dikembangkan dalam sistem among. Among atau ngemong mempunyai arti yang sangat dalam di dalam proses pendidikan yang berkaitan

Pembahasan pada Aspek pengetahuan ketiga informan sudah mengerti mengenai DM, Aspek manifestasi klinis ke 3 informan mengalami gejala yang sama, Aspek etiologi penyebab

harga bahan baku yang dapat menyebabkkan posisis agroindustri Mandiri Jaya berada pada kondisi tidak layak. Berikut adalah hasil perhitungan analisis sensitivitas

Berdasarkan data dari diagram di atas, diketahui bahwa nilai rata- rata dari semua indikator Relaxation pada kepuasan GS ( Gratification Sought) cenderung lebih rendah

Hasil penelitian ini adalah (1) Berdasarkan jawaban angket yang disebarkan oleh peneliti kepada siswa kelas XI IPS di SMA Taman Mulia tentang status sosial ekonomi

Hasil penelitian menunjukkan bahwa ekstrak daun kelor sebagai imunostimulan dapat meningkatkan respon imun udang vannamei dan konsentrasi terbaik adalah perlakuan D

Selama periode Mei 2016 – April 2017, CV Sumber Pinus Jaya tidak terdaftar sebagai importir dan tidak melakukan kegiatan impor bahan baku. Bukti penggunaan