Perancangan Dan Pembuatan Miniatur Smarthome Berbasis Mikrokontroler Atmega328

1

LISTING PROGRAM

1. Bahasa Pemrograman C
#include
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;
int var_sensor_pir = 0;

Universitas Sumatera Utara

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

}

Universitas Sumatera Utara

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)
{
analogWrite(pwm_pintu, 0);
}
// delay(1000);
}
void tutup_pintu()

{
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))
{
analogWrite(pwm_pintu, 0);
}
// delay(1000);
}
void tutup_jendela1()
{
myservo.write(80);
delay(100);

Universitas Sumatera Utara

4


}
void buka_jendela1()
{
myservo.write(130);

delay(4000);

}
void lock()
{
while (indeks==0)
{
digitalWrite(kolom1, HIGH);
digitalWrite(kolom2, HIGH);
digitalWrite(kolom3, LOW);
vbaris1 = digitalRead(baris1);
vbaris2 = digitalRead(baris2);
vbaris3 = digitalRead(baris3);
delay(30);

if (vbaris1 == 0)
{
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(100);
pinMode(input_pintu1, OUTPUT);
pinMode(input_pintu2, OUTPUT);
tutup_pintu();
indeks=1;
delay(1000);
}
if (vbaris3 == 0)
{
digitalWrite(13, HIGH);

Universitas Sumatera Utara

5


delay(500);
digitalWrite(13, LOW);
delay(100);
pinMode(input_pintu1, OUTPUT);
pinMode(input_pintu2, OUTPUT);
tutup_pintu();
tutup_jendela1();
digitalWrite(lampu, LOW);
indeks=1;
delay(1000);
}
}
}
void enter()
{
if (nilai==password
{
i=0; nilai=0;
pinMode(input_pintu1, OUTPUT);
pinMode(input_pintu2, OUTPUT);

Serial.println("PASS BETUL");
// digitalWrite(13, HIGH);
buka_pintu();
// deteksi();
indeks=0;
}
else
{
Serial.println("PASS SALAH");
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);

Universitas Sumatera Utara

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