• Tidak ada hasil yang ditemukan

Perancangan Dan Pembuatan Miniatur Smarthome Berbasis Mikrokontroler Atmega328

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Dan Pembuatan Miniatur Smarthome Berbasis Mikrokontroler Atmega328"

Copied!
11
0
0

Teks penuh

(1)

LISTING PROGRAM

1. Bahasa Pemrograman C

#include <Servo.h>

Servo myservo;

int pos = 70;

int baris1 = A0;

int baris2 = A1;

int baris3 = A3;

int kolom1 = 12;

int kolom2 = 7;

int kolom3 = 6;

int vbaris1 = 0;

int vbaris2 = 0;

int vbaris3 = 0;

int switch_pintu_tutup = 0;

int switch_pintu_buka = 0;

float nilai=0, password=1234;

char temp[12], array[10], i=0;

int indeks=0;

int input_pintu1 = 1;

int input_pintu2 = 0;

int pwm_pintu = 5;

int sensor_ldr = A4;

int var_sensor_ldr = 0;

int sensor_pir = A5;

(2)

int switch1 = 10;

int switch2 = 11;

int lampu = A2;

void setup() {

myservo.attach(9);

pinMode(kolom1, OUTPUT);

pinMode(kolom2, OUTPUT);

pinMode(kolom3, OUTPUT);

pinMode(sensor_ldr, INPUT);

pinMode(input_pintu1, OUTPUT);

pinMode(input_pintu2, OUTPUT);

pinMode(pwm_pintu, OUTPUT);

pinMode(13, OUTPUT);

pinMode(sensor_pir, INPUT);

pinMode(baris1, INPUT);

digitalWrite(baris1, HIGH);

pinMode(baris2, INPUT);

digitalWrite(baris2, HIGH);

pinMode(baris3, INPUT);

digitalWrite(baris3, HIGH);

pinMode(lampu, OUTPUT);

pinMode(switch1, INPUT);

digitalWrite(switch1, HIGH);

pinMode(switch2, INPUT);

digitalWrite(switch2, HIGH);

tutup_jendela1();

//Serial.begin(9600);

(3)

void buka_pintu()

{

digitalWrite(input_pintu1, LOW);

digitalWrite(input_pintu2, HIGH);

analogWrite(pwm_pintu, 250);

switch_pintu_buka = digitalRead(switch1);

switch_pintu_tutup = digitalRead(switch2);

if(switch_pintu_buka==0)

{

digitalWrite(input_pintu1, HIGH);

digitalWrite(input_pintu2, LOW);

analogWrite(pwm_pintu, 250);

switch_pintu_buka = digitalRead(switch1);

switch_pintu_tutup = digitalRead(switch2);

if((switch_pintu_tutup==0))

(4)

}

while (indeks==0)

{

digitalWrite(kolom1, HIGH);

digitalWrite(kolom2, HIGH);

digitalWrite(kolom3, LOW);

vbaris1 = digitalRead(baris1);

vbaris2 = digitalRead(baris2);

vbaris3 = digitalRead(baris3);

(5)

delay(500);

pinMode(input_pintu1, OUTPUT);

pinMode(input_pintu2, OUTPUT);

Serial.println("PASS BETUL");

// digitalWrite(13, HIGH);

buka_pintu();

Serial.println("PASS SALAH");

digitalWrite(13, HIGH);

delay(500);

(6)

delay(100);

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

delay(100);

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

delay(100);

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

delay(100);

i=0; nilai=0;

indeks=1;

}

}

void simpan_dlm_1variabel()

{

if (i==1){nilai=array[i];} if (i>=2 &&

i<=8)

{

nilai=(nilai*10)+array[i];

}

}

void scan()

{

var_sensor_ldr = analogRead(sensor_ldr);

(7)

if(var_sensor_pir == 1&&var_sensor_ldr<600) {

digitalWrite(lampu, LOW); //lampu akan mati

digitalWrite(13, LOW);

delay(1000);

var_sensor_ldr = analogRead(sensor_ldr);

var_sensor_pir = digitalRead(sensor_pir);

myservo.write(150);

delay(20);

}

if(var_sensor_pir == 1&&var_sensor_ldr>650)

{

digitalWrite(lampu, HIGH);

digitalWrite(13, HIGH);

delay(1000);

var_sensor_ldr = analogRead(sensor_ldr);

var_sensor_pir = digitalRead(sensor_pir);

myservo.write(80);

delay(20);

}

vbaris1 = digitalRead(baris1);

vbaris2 = digitalRead(baris2);

vbaris3 = digitalRead(baris3);

digitalWrite(kolom1, LOW);

digitalWrite(kolom2, HIGH);

digitalWrite(kolom3, HIGH);

(8)

{

enter();delay(100);

}

if(vbaris3==0)

{

delay(100);

}

delay(20);

vbaris1 = digitalRead(baris1);

vbaris2 = digitalRead(baris2);

vbaris3 = digitalRead(baris3);

digitalWrite(kolom1, HIGH);

digitalWrite(kolom2, LOW);

digitalWrite(kolom3, HIGH);

if(vbaris1==0)

{

// Serial.println("1");

delay(100);

i++;array[i]=1; simpan_dlm_1variabel();

}

if(vbaris2==0)

{

// Serial.println("2");

delay(100);

i++;array[i]=2; simpan_dlm_1variabel();

(9)

if(vbaris3==0)

{

// Serial.println("3");

delay(100);

i++;array[i]=3; simpan_dlm_1variabel();

}

delay(20);

vbaris1 = digitalRead(baris1);

vbaris2 = digitalRead(baris2);

vbaris3 = digitalRead(baris3);

digitalWrite(kolom1, HIGH);

digitalWrite(kolom2, HIGH);

digitalWrite(kolom3, LOW);

if(vbaris1==0)

{

// Serial.println("4");

delay(100);

i++;array[i]=4; simpan_dlm_1variabel();

}

if(vbaris2==0)

{

// Serial.println("5");

delay(100);

i++;array[i]=5; simpan_dlm_1variabel();

}

if(vbaris3==0)

{

(10)

delay(100);

i++;array[i]=6; simpan_dlm_1variabel();

}

delay(20);

}

void loop() {

// put your main code here, to run repeatedly:

lock();

scan();

(11)

Referensi

Dokumen terkait

Mikrokontroler AT89S51 berfungsi untuk mengolah data digital yang dikirimkan oleh ADC0804, selanjutnya mikrokontroller akan menampilkan nilai suhu yang terukur pada

Untuk memastikan suhu alat bekerja dengan akurat, maka perlu dipastikan dengan melakukan pengujian dan perbandingan sensor yang akan digunakan dengan sensor suhu yang lainnya, maka

Penelitian perancang robot pencari korban bencana alam dengan kontrol wireless modulasi FM (Frequency Modulation) – FSK (Frequency Shift Keying) oleh [4].

Desain mekanik sistem ini terdiri dari sensor suhu LM35. Pada alat musschenbroeck terdapat kedudukan sensor. Desain set eksperimen muai panjang digital dapat

Penelitian yang dapat dikembangkan dalam penelitian selanjutnya adalah menggabungkan metode deep learning, terutama pada model CNN yang merepresentasikan

Ketika bt_01 di tekan maka tombol off dengan Backgorundcolour yang awalnya abu-abu maka akan menset text menjadi ON dengan warna hijau, lalu program akan

Pada Gambar 13, kecepatan 1 alat standar merupakan waktu yang dibutuhkan benda untuk melewati sensor 1 yang diukur dengan

Hasil pengujian menunjukkan bahwa RTC yang dirancang dapat bekerja dengan baik dengan menunjukkan tanggal dan waktu sesuai dengan hasil settingan oleh user dan penggunaan alat