실험 1. 메카트로닉스실험

실험 1.1 Encoder 실험

실험목적: 회전각도를 측정하는 증분식 엔코더의 기능실험

준비물: 증분식 엔코더 및 step motor 실험 셋

그림 1.1.1 증분식 엔코더 및 스텝 모터 실험 세트 회로도

그림 1.1.2 증분식 엔코더 및 스텝 모터 실험 세트

그림 1.1.3 증분식 엔코더 및 스텝모터 실험 target  board

그림 1.1.4 엔코더 스텝모터 실험셋트 배치도

실험방법:

(1) 그림 1.1.2 의 엔코더 실험세트를 적색 선을 +5V, 흑색선을  GND에 연결

(2) 실험세트의 A와 B  (저항과 LED 사이) 각각에 오실로스코프에 연결

(3) 엔코더의 축을 시계방향으로 천천히 회전 시키면서 오실로스코프의 파형을

관찰하고 그리시오. 또한  파형과 LED의 표시를 비교

(4) 엔코더의 축을 반시계방향으로 천천히 회전 시키면서 오실로스코프의 파형을

관찰하고 그리시오. 또한  파형과 LED의 표시를 비교

(5) Z (저항과 LED 사이) 에 오실로스코프를 연결하고 파형을 관찰하시오.

(6) 관찰된 파형들의 기능과 역할을 토의

(7) 관찰된 파형을 이용하여 회전각도를  4배로 정밀하게 측정할 수 있는 방안은 ?

실험 1.2 스텝모타 실험

실험목적: Microcontroller를 이용하여 스텝모터를 구동하는 실험

준비물: 스텝 모터 실험세트, AVR용 USB-ISP V03.5, IBM-PC

PIC18C84강의 내용(메카트로닉스강좌), CodeVisionAVR C Compiler

실험방법:

1) 그림 1.1.2 와 같이 스텝 모터 실험세트를 구성(결선)

USB-ISP 가 IBM-PC의 USB 포트에 정확히 꽂혀 있는지 확인

2) 스텝 모터 구동 프로그램 개발

(1) IBM-PC에서 스텝 모터 구동프로그램을 작성

* Windows-XP

바탕화면 -> CodeVision C Compiler 실행

File -> New -> Source 선택 -> OK

Tools -> CodeWizardAVR -> chip선택을 Atmega128로 선택 (Clock : 16MHz)

File -> Generate, Save and Exit 선택

* 파일이름 작성 후 저장 ( C Compiler files (*.c) )

* 파일이름 작성 후 저장 ( Project files (*.prj) )

* 파일이름 작성 후 저장 ( CodeWizardAVR project files (*.cwp) )

위와 같이 3종류의 확장자를 갖는 파일을 저장한다.

프로그램 작성;

smotor.txt 참조{ #include등, C언어의 기초문법이용} 하여 소스 창에 프로그램

작성 한다.

delay루틴을 이용하여 스텝간의 간격을 길게 한다(약 1초).

이용가능 delay루틴;delay_ms(), delay_us()

delay 시간 계산: ( )내에 있는 숫자 milli-second

또는 ( )내에 있는 숫자 micro-second

(2) CodeVision C Compiler에서 스텝 모터 구동프로그램을 컴파일 실행

* Windows-CodeVision C Compiler

Project -> Compile실행 후 오류 확인 후 OK

Project -> Build 실행 후 오류 확인 후 OK

(3) Micro controller 프로그래밍

프로그래밍; 프로그램 개발과정 (2)에서 Build 까지 완료된 내용을

MCU Atmega128의 프로그램 메모리에 넣는 과정

(그림 1.1.5, 그림 1.1.6, 그림 1.1.7 참조)

그림 1.1.5  AVR용 USB-ISP

그림 1.1.6  USB-ISP와 Atmega128 module 연결 모습

그림 1.1.7  USB-ISP와 IBM-PC와 연결 모습

(a) AVR용 USB-ISP를 IBM-PC의 USB 포트에 장착 그리고 난 후

다른 쪽을 Atmega128 Module의 ISP Port에 장착

(b) 프로그램 down load

* Windows-CodeVision C Compiler

CodeVisionAVR에서 Tool -> Chip Programmer 실행

팝업 창에서 Program -> Erase Chip 이후

Program -> FLASH선택

이와 같이 하면 프로그래밍 완료

3) 회전시킬 step수를 입력하는 스위치 ( SW1 DIP 스위치의 b0~b3 )을 이용,

이진수로 step수 설정(위;1)

MCU Atmega128 Module의 J1의 pin 1,2,3,4 의 전압을 측정하시오.

회전방향을 결정하는 스위치 (SW2 DIP 스위치의 가장 왼쪽 )을 이용 방향설정

MCU Atmega128 Module의 J1의 pin 6 의 전압을 측정하시오.

회전을 시작시키는 스위치 (SW3 PUSH Button 스위치)를 잠깐 눌렀다 놓는다.

MCU Atmega128 Module의 J1의 pin 8 의 전압을 SW3를 누르기전과 누르고	있을 때의 전압을 측정하시오.

회전되는 step의 수를 세어서, 설정해준 step수를 비교한다.

4) step수를 십진수 6 (이진수;0110)으로 설정하고,

각 step에서 켜져 있는 LED를 다음 표에 표시

(step 입력 스위치: off, on, on, off )

	시계방향(0)				반시계방향(1)				비고
스텝순번	빨강	녹색	노랑	주황	빨강	녹색	노랑	주황
1
2
3
4
5
6

5)  과정 2)의 방법으로 프로그램수정

delay 루틴을 변경하여 step간의 간격을 작게 (빠르게)한다.

6) 과정 3)을 시행

7) 과정 4)를 시행, 정상적으로 구동되는지를 확인.

8) 과정 5)~ 7)을 반복하여 정지 상태에서 출발하여 정상적으로 회전이 되지 않는

현상이 일어날 때까지 step간격을 빠르게 해본다.

이때의 delay time을 주파수로 환산하고, delay time과 주파수를 기록(최대자기동주        파수확인)

9) step모터의 구동원리와 특성에 대하여 토의

프로그램 분석

10) 다음의 기능을 갖도록 프로그램을 개발하여 동작시키시오.

a) 시작스위치 SW3 (push button)이 눌려질 때까지 아무 동작 없이 기다린다.

b) 시작스위치 SW3 (push button)이 눌려지면,

시계방향으로 10 step 회전, 5초간 정지, 반시계방향으로 5 step 회전

11) 다음의 기능을 갖도록 프로그램을 개발하여 동작시키시오.

a) 시작스위치 SW3 (push button)이 눌려질 때까지 아무 동작 없이 기다린다.

b) 시작스위치 SW3 (push button)이 눌려지면,

스텝 모터가 1회전 하도록 프로그램을 개발하여 동작시키시오.

1 step 각도가 얼마인가 ?