การติดตั้งเซนเซอร์



The last week

การต่ออินฟราเรดเซนเซอร์กับ บอร์ด AVR butterfly


ทำการเลือกสัญญาณจากตัวรับเซนเซอร์โดยเลือกขา common และ NC จากรีเลย์ ดังรูป
ทำการใส่สัญญาณจากตัวเซนเซอร์เข้าสู่พอร์ต AVR butterfly โดยเลือกให้ PIN B0 ต่อเข้ากับขาสวิซท์ NC และให้ PIN GND ต่อเข้ากับ ขา common ของเซนเซอร์อินฟราเรดตัวรับตามลำดับ


ทำการต่อไฟเลี้ยงให้กับบอร์ด AVR butterflyโดย ในการทดลองนั้นเราใช้ไฟเลี้ยงแบบป้อนไฟตลอดเนื่องจากต้องใช้เป็นเวลานาน โดยใช้ regulator และ หม้อแปลง ต่อตามลำดับ


Regulator

การใช้หม้อแปลงต่อเพื่อทำการแปลงไฟจาก 220 volt ให้เป็นไฟเพียง 12 volt เพื่อนำมาใช้ได้กับบอร์ดเซนเซอร์

หม้อแปลงไฟฟ้า

การทำงานด้าน Software


ทำการเขียนโปรแกรมด้วย code ภาษาซี โดยใช้โปรแกรม AVR studio เพื่อให้การนับค่าจากตัวเซนเซอร์นั้นสามารถแสดงผลได้บนหน้าจอ LCD ของบอร์ด AVR Butterfly

โดยสามารถแสดง code ได้ดังนี้





File........: logger.c

Target......: ATmega169

Compiler....: AVR-GCC 4.1.1; avr-libc 1.4.5

***************************************

%% ทำการ include header file ที่เกี่ยวข้อง

#include

#include

#include

#include

#include
#include "logger.h"

#include "usart.h"

#include "LCD_driver.h"

#include "dataflash.h"

#include "BCD.h"

#include "ADC.h"

#include "button.h"
***************************************

Delay(1000);
Initialization();
char num[10];

DDRB=0x00;
int count=0,realcount=0;

num[0]='0';
num[1]='1';
num[2]='2';
num[3]='3';
num[4]='4';
num[5]='5';
num[6]='6';
num[7]='7';
num[8]='8';
num[9]='9';

%% ใช้งาน loop while เพื่อทำให้การเก็บค่าจากเซนเซอร์เก็บได้อย่างต่อเนื่อง
while(1)
{

if(PINB == 255)
{
realcount++;
while(PINB==255)
{

}
Delay(300);
%% ภาคส่วนของการใช้คำสั่งให้จอ LCD แสดงค่าเป็นตัวเลขดิจิตัลสี่หลัก
} count=realcount;
LCD_WriteDigit(num[count/1000],0);
count=count%1000;
LCD_WriteDigit(num[count/100],1);
count=count%100;
LCD_WriteDigit(num[count/10],2);
count=count%10;
LCD_WriteDigit(num[count],3);

}

Delay(1000); Initialization(); char num[10]; DDRB=0x00;int count=0,realcount=0;
num[0]='0';num[1]='1';num[2]='2';num[3]='3';num[4]='4';num[5]='5';num[6]='6';num[7]='7';num[8]='8';num[9]='9';
while(1){
if(PINB == 255){realcount++; while(PINB==255) {
}Delay(300);
} count=realcount; LCD_WriteDigit(num[count/1000],0); count=count%1000; LCD_WriteDigit(num[count/100],1); count=count%100; LCD_WriteDigit(num[count/10],2); count=count%10; LCD_WriteDigit(num[count],3);

}
}

การทดลองและระยะเวลาในการทดลอง

ในการทดลองนั้นเราใช้เซนเซอร์อินฟราเรด นับจำนวนผู้คนที่ขึ้นและลงอาคารวิศวกรรมศาสตร์โดยใช้ลิฟต์ของอาคาร คณะวิศวกรรมศาสตร์ มหาวิทยาลัยธรรมศาสตร์ ในแต่ละวัน เป็นเวลาทั้งสิ้น สามวัน คือวันศุกร์ที่ 24, วันเสาร์ที่ 25 และวันอาทิตย์ที่ 26 สิงหาคม 2550 และทำการบันทึกจำนวนคนที่ใช้ลิฟต์ตั้งแต่เวลา 9.00 น. ในตอนเช้าจนถึง 18.00 น. ในตอนเย็น โดยทำการเก็บค่าครั้งละหนึ่งชั่วโมง เพื่อนำผลข้อมูลที่ได้มาทำการเปรียบเทียบต่อไป

บริเวณที่ติดตั้งเซนเซอร์



เซนเซอร์ตัวรับ เซนเซอร์ตัวส่ง

ซึ่งผลการทดลองที่บันทึกได้สามารถแสดงได้ดังนี้

แสดงตารางข้อมูลวันศุกร์ที่ 24 สิงหาคม 2550



แสดงตารางข้อมูลวันเสาร์ที่ 25 สิงหาคม 2550

แสดงตารางข้อมูลวันอาทิตย์ที่ 26 สิงหาคม 2550


หมายเหตุ- ข้อมูลในเวลา9.00 - 13.00 น.ของวันที่ 24 และข้อมูลในเวลา 9.00 น. - 12.00 น.ของวันที่25นั้นพบปัญหาในการติดตั้งตัวเซนเซอร์ จึงไม่สามารถทำการเก็บข้อมูลในช่วงเวลาดังกล่าวได้

จากตารางแสดงผลข้อมูลข้างต้นสามารถวิเคราะห์ผลการทดลองได้ดังนี้

สรุปผลการทดลอง จากกราฟเราจะสามารถเห็นได้ว่า ในวันที่ 24 ส.ค. 2550 นั้น จะเห็นได้อย่างชัดเจนว่า ในเวลาช่วง 15.00-16.00 น. มีจำนวนผู้ใช้ลิฟต์มากที่สุดในช่วงเวลาบ่ายเหตุที่เป็นอย่างนี้เนื่องจาก ช่วงเวลาดังกล่าวเป็นเวลาที่เลิกงาน ส่วนเวลาตั้งแต่ 13.00-14.00น.ถึง14.00-15.00น.จะมีผู้ใช้ลิฟต์มากขึ้นเนื่องจาก ใกล้เวลาเลิกงาน ส่วนเวลาตั้งแต่ 16.00-17.00น.ถึง17.00-18.00น.จะมีผู้ใช้ลิฟต์ลดขึ้นเนื่องจาก เป็นเวลาหลังเลิกงาน ส่วนในวันที่ 25 ส.ค. 2550 นั้น จะเห็นได้ว่าตลอดช่วงเวลาบ่ายมีผู้ใช้ลิฟต์น้อย เนื่องจากเป็นวันหยุด แต่จะเห็นได้อย่างชัดเจนว่าเวลา 14.00-15.00น.และช่วงเวลาตั้งแต่ 16.00-18.00น.มีการใช้ลิฟต์มาก เนื่องจาก มีการทำงานของแม่บ้าน และ ในวันที่ 26 ส.ค. 2550 นั้น จะเห็นได้ว่าตลอดช่วงเวลาทั้งวันมีผู้ใช้ลิฟต์น้อย เนื่องจากเป็นวันหยุด และจะเห็นได้อย่างชัดเจนว่าจำนวนผู้ใช้ลิฟต์แทบจะคงที่ตลอดทั้งวันแสดงว่าเกิดกิจกรรมน้อยมากในตึกคณะวิศวกรรมศาสตร์ จะเห็นได้ว่าวันปกติมีผู้ใช้ลิฟต์มากกว่าวันหยุด เสาร์-อาทิตย์

ปัญหาของการทำการทดลองครั้งนี้มีหลายปัจจัยแต่จะสามรถจำแนกเป็นข้อใหญ่ๆได้ดังนี้

1.ไม่สามารถเขียนโปรแกรมให้เก็บข้อมูลลง Data Flash ได้ทำให้ต้องมีการจดบันทึกค่า

2.Sensor ที่นำมาใช้ไม่สามารถนับเข้าหรือนับออกได้อย่างใดอย่างหนึ่ง ทำให้ในการวิเคราะห์ไม่สามารถรู้ว่าเข้าหรือออกจากลิฟต์

3.เวลาในการเก็บตัวอย่างข้อมูลน้อยเกินไป เนื่องเขียนโปรแกรมช้า4.ผู้ทำการทดลองไม่ชำนาญในการเขียนโปรแกรม


1 ความคิดเห็น:

MahoMaho กล่าวว่า...

เป็นรายงานที่ดีมากเลย ได้ความรู้เพิ่มขึ้นเยอะเลยละ
พอดีต้องทำวงจรที่ใช้พวก Photoresistor เพื่อไปตรวจวัดเร็วรอบของมอเตอร์นะครับ

ถ้าไม่เป็นการรบกวนอยากจะขอแบบวงจรหน่อยนะครับ

ยังไงก็รบกวนติดต่อกลับที่ dulyakij@hotmail.com หน่อยนะครับ

ขอบคุณครับ