AVR 자율과제 엘레베이터 제어장치
- 최초 등록일
- 2009.12.08
- 최종 저작일
- 2006.05
- 12페이지/ 한컴오피스
- 가격 3,000원
소개글
AVR을 이용하여 엘레베이터
제어장치를 설계
목차
1. 개요
2. 구성
3. 동작조건
4. 프로그램 구현에 대한 설명
5. 플로차트
6. 회로도면
7. 하드웨어 외형
8. 고찰
9. 프로그램
본문내용
1. 개요
Atmega8515와 LED, Switch를 이용하여 간단한 8층 엘리베이터 콘트롤 러를 제작하여 구동하여 본다.
2. 구성
각 층에 호출 버튼과 그 버튼이 눌러진 것을 표시하는 LED를 구현한다.
층의 이동은 LCD로 표시하며(B Port의 LED도 같이 표시) 각 층간의 이 동과 층의 정차는 적당한 Delay를 준다.
3. 동작조건
1) 초기동작시 엘리베이터는 1층에서 시작한다.
2) 엘리베이터의 입력 버튼을 눌렀을 시에는 목적층에 도착시까지 LED는
점등상태로 있게 한다.
3) 엘리베이터 이동시와 도착시의 시간을 적당히 준다.
4) 이동중에 이동경로 상에 다른 층에서의 호출이 있을 경우 경유하고 이 동후에 경로는 목적층에 도착후에 다시 그 층을 목적층으로 설정하여 이동한다.
4. 프로그램 구현에 대한 설명
1) 동작시에도 계속되는 입력을 검출
- 처음 시작시부터 동작을 하는 도중, 동작 종료 후 등 모든 상황에서 의 입력을 받아야 했기 때문에 지연함수를 구현하여 지연함수 중에 입
력을 계속하여 받을 수 있게 삽입하고 각 부분마다 입력 함수를 호출하
하여 어느 때에 입력이 들어와도 동작 가능하게 하였다.
2) 입력에 대한 표시 및 목적층 도착시까지 LED의 점등
- 입력과 출력 포트를 따로 사용할 수 있었지만 원래 B포트는 다른 용
도로 사용하려고 하였기 때문에 A포트 만을 사용할 수 있었다. 그래서
입력을 받음과 동시에 그 PIN을 출력으로 설정하여 LED를 점등하고 목
적층에 도착과 더불어 다시 입력을 받을 수 있게 구현하였다.
3) 입력된 숫자를 카운트 하여 운행 횟수를 계산
- 스위치가 입력된 숫자만큼 운행을 해야하기 때문에 입력된 횟수를 카
운트 해야만 했다. 횟수의 카운트는 계속입력을 받기 때문에 함수의 호
출 수를 카운트 하면 안되었고 전의 입력과 스위치가 눌러진 후의 입력
이 다름을 검출하여 계산하였다. 이부분에서 꽤 많은 오류가 발생하여
많은 고생을 하였다.
4) 운행 도중에 들어온 입력에 대한 처리
- 운행 도중에 들어온 입력은 이동경로 중의 입력이라면 그 목적층에
경유 후 목적층으로 이동하여야 하며 최상위나 하위층일 경우 입력 순서
에 상관없이 이동방향의 최상위나 하위까지 운행후 다시 다음 층을 운행
해야 했으므로 연산의 복잡도가 높았다. 우선 전체 표시는 LCD였으므로
각층의 운행은 Shift를 하여 해결하였고 현재의 층을 나타내는 변수와 입
력을 나타내는 변수를 비트비교해가며 동작을 수행하게 만들었다.
우선 현재의 층과 입력의 크기를 비교하여
현재의 층이 더 크면 하층으로 이동
참고 자료
없음