Download presentation
Presentation is loading. Please wait.
1
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부
2
계측제어계의 구성요소
3
1개의 LED의 출력 인터페이스
4
1개의 스위치의 입력인터페이스
5
COMI-SD104 디지털 출력함수 (1) BOOL COMI_DO_PutOne (HANDLE hDevice, int ch, int status) : 하나의 채널에 대하여 디지털 출력을 내보냅니다. -. hDevice : 디바이스 핸들 -. ch : 디지털 출력 채널 번호 -. status : 디지털 출력 Status (0은 OFF, 1은 ON)
6
COMI-SD104 디지털 출력함수 (2) BOOL COMI_DO_PutAll (HANDLE hDevice, DWORD dwStatuses) : 모든 디지털 출력 채널에 대하여 출력을 내보낸다. -. hDevice : 디바이스 핸들 -. ch : 디지털 출력 채널 번호 -. status : 전채널의 출력 상태를 지시하는 32비트값. COMI-SD104는 8개의 디지털출력 채널만 제공되므로 하위 8비트만 사용된다.
7
LED 및 7세그먼트 실험 1
8
실험목적 LED 순차 점등 회로 및 7 세그먼트 출력 회로를 구성하고 구동 프로그램을 작성, 구동시킴으로써 디지털신호의 출력 원리 및 방법을 이해한다.
9
LED 출력 인터페이스
10
LED 구동 프로그램 OnLedStart OnLedEnd
11
프로그램 설명 XXXXDlg.h 헤더파일에 디바이스 핸들 변수 선언 class CASISTDlg : public CDialog
{ public: //user parameter HANDLE m_hDevice; }; XXXXDlg.cpp 소스파일에 Comidas.h 인클루드
12
라이브러리 및 디바이스 로딩
13
라이브러리 및 디바이스 언로딩
14
void CASISTDlg::OnLedStart()
{ SetTimer (0, 10, NULL); // OnTimer 함수를 0.01초 간격으로 실행한다. }
15
void CASISTDlg::OnTimer(UINT nIDEvent)
{ for (int i=0 ; i<8 ; i++) COMI_DO_PutAll (m_hDevice, 0x01<<i); Sleep(200); } CDialog::OnTimer(nIDEvent);
16
void CASISTDlg::OnLedEnd() { KillTimer (0); // OnTimer 함수를 종료한다.
COMI_DO_PutAll (m_hDevice, 0xff); Sleep (200); COMI_DO_PutAll (m_hDevice, 0x00); }
17
7세그멘트 구동 인터페이스
18
74LS48과 7세그먼트와의 인터페이스
19
7세그먼트 구동 프로그램 On7segDisplay On7segReset Int m_7value
20
프로그램 설명 void CASISTDlg::On7segDisplay() { UpdateData (TRUE);
// 화면에서 숫자를 입력 받는다. COMI_DO_PutAll (m_hDevice, m_7value); // 7세그먼트에 숫자를 출력한다. }
21
void CASISTDlg::On7segReset()
{ m_7value = 0; // 멤버변수에 0을 입력한다. COMI_DO_PutAll (m_hDevice, m_7value); // 7세그먼트에 0을 출력한다. UpdateData(FALSE); // 화면에 0을 출력한다. }
22
스테핑 모터 실험 2
23
실험목적 스테핑 모터의 구동회로를 구성하고 구동 프로그램을 작성, 구동시킴으로써 스테핑 모터의 구동 원리와 디지털 신호의 출력 원리 및 방법을 이해한다.
24
스테핑 모터 구동 인터페이스
25
스테핑 모터 구동 프로그램 OnStepmotorStart OnStepmotorEnd OnHighSpeed OnLowSpeed
26
프로그램 설명 void CASISTDlg::OnStepmotorStart() { SetTimer (0, 10, NULL); }
void CASISTDlg::OnStepmotorEnd() KillTimer (0);
27
void CASISTDlg::OnHighSpeed()
{ m_vel = 10; // 전역변수 m_vel } void CASISTDlg::OnLowSpeed() m_vel = 100;
28
void CASISTDlg::OnTimer(UINT nIDEvent)
{ for (int j=0 ; j<4 ; j++) COMI_DO_PutAll (m_hDevice, 0x01<<j); Sleep (m_vel); } CDialog::OnTimer(nIDEvent);
29
전역변수의 지정 class CASISTDlg : public CDialog { ………...
전역변수는 Head File에서 지정한다. (예 : ASISTDLG.H) class CASISTDlg : public CDialog { ………... public: //user parameter HANDLE m_hDevice; int m_vel; };
Similar presentations