리니어 스케일 2007390012 김한수
제작목표 및 목적 목적 목표 2011년도 센서계측 이론 및 실습 프로젝트 (적외선센서를 이용한 길이측정장비) 리니어스케일을 제작하여 물체의 정확한 길이를 측정한다
리니어스케일 원리 AVR 1 or 0 lm358 lm358 수광 센서 발광센서 수광 센서 발광센서 반사광 반사광 반사 흡수 0.05mm 50mm
동작원리 해설 흰색 = 반사 = 인터럽트 5볼트 0볼트 검정색= 흡수
동작 화면 센서부 측정할물체 수 광 발 광
재료 1.LCD 2.수광,발광 다이오드(적외선센서) LCD ATMEGA128 4.ATMEG128(MPU) 3.리니어스케일 격자무늬판 리니어 스케일 센서부
AVR 프로그램(1) LCD를사용 빛이 반사될 때마다 이 부분이 실행 되어 값이 증가한다 #include <mega128.h> #include <stdio.h> #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <lcd.h> float mm; interrupt [EXT_INT4] void ext_int4_isr(void) { if(PINB.0==PINB.1) mm=mm+0.48; else mm=mm-0.48; } interrupt [EXT_INT5] void ext_int5_isr(void) mm=mm-0.05; mm=mm+0.05; LCD를사용 빛이 반사될 때마다 이 부분이 실행 되어 값이 증가한다
AVR 프로그램(2) 각 포트와 INT부분을 설정하는 구문 LCD로 화면에 출력하는 구문 void main(void) { PORTB=0x00; DDRB=0x00; // INT4 Mode: Any change // INT5 Mode: Any change EICRA=0x00; EICRB=0x05; EIMSK=0x30; EIFR=0x30; ACSR=0x80; SFIOR=0x00; lcd_init(16); #asm("sei") while (1) char back[16]; lcd_gotoxy(0,0); lcd_puts(back); sprintf(back,"%.2f",mm); }; } 각 포트와 INT부분을 설정하는 구문 LCD로 화면에 출력하는 구문
측정데이터 ※각각 3번 측정 실제길이(단위cm) 50원 = 2.1cm 100원 = 2.4cm 라이터 = 7.7cm
후기 문제점 & 개선사항 리니어 스케일과 인덱스 스케일과의 하드웨어 구상 ` ->오실로로 직접 확인해보는 것이 정확하다 ` ->오실로로 직접 확인해보는 것이 정확하다 발광 다이오드 빛을 제외한 빛을 차단 ->센서 부분에 케이스를 씌워줌으로써 외부빛 차단 가변저항에 따른 센서의 민감도 ->오실로스코프로 측정후 정확한 파형의 출력 리니어 스케일의 카운터 값 ->코드비전상의 한칸당 카운터 값 변경