Aplikasi-003. Pintu Geser Otomatis (Seri Pemantauan Gerakan [I])

Abstrak:

Pintu Geser Otomatis ditemukan hampir di tiap bangunan yang banyak dilalui oleh orang. Pintu Geser Otomatis dianggap menambah efisiensi waktu tiap orang yang melaluinya. Pintu Geser Otomatis memiliki komponen utama berupa sensor pergerakkan manusia dan motor penggerak mekanik pintu. Pintu Geser Otomatis dalam aplikasi ini menggunakan sensor pergerakkan manusia yang mendeteksi pergerakkan berdasarkan pancaran radiasi infra merah yang adalah suhu khas dari manusia, dan motor DC sebagai penggerak mekanik pintunya.

DI-PIR Motion Detector adalah modul produksi DEPOK INSTRUMENTS yang komponen utamanya adalah sensor PIR (Passive Infra-Red), yaitu sensor yang dapat mendeteksi pergerakan manusia berdasarkan perubahan suhu lingkungan. Modul ini sangat baik digunakan untuk aplikasi-aplikasi yang memerlukan sensor yang dapat mendeteksi adanya gerakan manusia. Modul inilah yang menjadi sensor utama yang digunakan dalam Aplikasi ini. Untuk CPU (Central Processing Unit) –nya digunakan DI-Smart AVR System yang adalah sistem mikrokontroler yang berbasis ATmega8535(L). Dan sebagai driver / rangkaian penggerak motor digunakan DI-MDCD4 (DI-Motor DC Driver 4A), yaitu modul driver motor DC yang dapat digunakan untuk menggerakkan motor DC sampai dengan 4 Ampere.

Radius pendeteksian pergerakan manusia oleh sensor PIR pada Aplikasi 003 (Seri Pemantauan Gerakan [I]) – Pintu Geser Otomatis ini adalah 5 meter. Waktu tunda saat pintu terbuka adalah 1 menit, dimana waktu akan ter-reset jika terdeteksi kembali pergerakkan manusia. Dan pintu pun akan kembali membuka saat proses menutupnya pintu terdeteksi pergerakkan manusia.

Modul-Modul Depok Instruments yang Mendukung:

Blok Diagram:


Flowchart:


Skrip Program:

/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 1/18/2011
Author  :
Company :
Comments:

Chip type           : ATmega8535L
Program type        : Application
Clock frequency     : 7.372800 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 128
*****************************************************/

#include <mega8535.h>

#define M1 PORTC.0
#define DDRM1 DDRC.0

#define M2 PORTC.1
#define DDRM2 DDRC.1

#define PIR PIND.4
#define PORTPIR PORTD.4
#define DDRPIR DDRD.4

#define ls_buka PIND.3
#define PORTLSBUKA PORTD.3
#define DDRLS_BUKA DDRD.3

#define ls_tutup PIND.2
#define PORTLSTUTUP  PORTD.2
#define DDRLS_TUTUP DDRD.2

unsigned char posisi_program=0;

bit flagtimer=0;

// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
TCNT1H=0;
TCNT1L=0;
TCCR1B=0;
flagtimer=1;

}

void main(void)
{

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x10;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

DDRM1=1;
DDRM2=1;

PORTPIR=1;
PORTLSBUKA=1;
PORTLSTUTUP=1;

DDRPIR=0;
DDRLS_BUKA=0;
DDRLS_TUTUP=0;

// Global enable interrupts
#asm(“sei”)
M1=0;
M2=0;

while (1)
{
// Place your code here
if (posisi_program==0){
while (PIR!=0);

//BUKA
M1=0;
M2=1;
while (ls_buka!=0);
M1=0;
M2=0;
}
TCNT1L=0;
TCNT1H=0;
OCR1AH=0x8c;
OCR1AL=0xa0;
flagtimer=0;
TCCR1B=0x05;
while (1){
if (PIR==0){
TCCR1B=0x05;
TCNT1L=0;
TCNT1H=0;
flagtimer=0;
}
if (flagtimer==1) break;
};

//Tutup
M1=1;
M2=0;
while (1){
if (PIR==0){
//BUKA
M1=0;
M2=1;
while (ls_buka!=0);
M1=0;
M2=0;
posisi_program=1;
break;
}
if (ls_tutup==0){
M1=0;
M2=0;
posisi_program=0;
break;
}
};

};
}

Iklan

5 thoughts on “Aplikasi-003. Pintu Geser Otomatis (Seri Pemantauan Gerakan [I])

    1. Terima kasih atas pertanyaannya. Secara konsep (blok diagram) sama. Hanya berbeda pada pemrogramannya.

      Salam,
      Depok Instruments Support Team

      Suka

  1. ingin tanya pak, kenapa saya mencoba di CodeVision, namun ada error yang aneh seperti
    untuk TIMSK = 0×10; masih error karena diinginkan tanda ” ; “….

    Suka

    1. Bisa dengan menempelkan sensor suhu pada tubuh manusia tersebut, atau dapat dengan menggunakan sensor suhu yang berdasarkan pancaran radiasi panas.

      Salam,
      Depok Instruments Support

      Suka

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s