이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
디지털 출력을 이용한 스테퍼 모터 제어
R2026a이 예제는 디지털 출력 포트를 사용하여 스테퍼 모터를 제어하는 방법을 보여줍니다.
디지털 출력을 지원하는 장치 찾기
daqlist를 사용하여 장치를 검색합니다. 이 예제에서는 ID가 Dev2인 National Instruments™ ELVIS II를 사용합니다.
d = daqlist
d =
12×5 table
VendorID DeviceID Description Model DeviceInfo
________ ___________ __________________________________ _____________ ____________________
"ni" "cDAQ1Mod1" "National Instruments NI 9205" "NI 9205" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod2" "National Instruments NI 9263" "NI 9263" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod3" "National Instruments NI 9234" "NI 9234" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod4" "National Instruments NI 9201" "NI 9201" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod5" "National Instruments NI 9402" "NI 9402" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod6" "National Instruments NI 9213" "NI 9213" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod7" "National Instruments NI 9219" "NI 9219" [1×1 daq.DeviceInfo]
"ni" "cDAQ1Mod8" "National Instruments NI 9265" "NI 9265" [1×1 daq.DeviceInfo]
"ni" "Dev1" "National Instruments PCIe-6363" "PCIe-6363" [1×1 daq.DeviceInfo]
"ni" "Dev2" "National Instruments NI ELVIS II" "NI ELVIS II" [1×1 daq.DeviceInfo]
"ni" "Dev3" "National Instruments PCIe-6363" "PCIe-6363" [1×1 daq.DeviceInfo]
"ni" "Dev4" "National Instruments PCIe-6363" "PCIe-6363" [1×1 daq.DeviceInfo]
d{10, "DeviceInfo"}
ans =
ni: National Instruments NI ELVIS II (Device ID: 'Dev2')
Analog input supports:
7 ranges supported
Rates from 0.0 to 1250000.0 scans/sec
16 channels ('ai0' - 'ai15')
'Voltage' measurement type
Analog output supports:
-5.0 to +5.0 Volts,-10 to +10 Volts ranges
Rates from 0.0 to 2857142.9 scans/sec
2 channels ('ao0','ao1')
'Voltage' measurement type
Digital IO supports:
39 channels ('port0/line0' - 'port2/line6')
'InputOnly','OutputOnly','Bidirectional' measurement types
Counter input supports:
Rates from 0.1 to 80000000.0 scans/sec
2 channels ('ctr0','ctr1')
'EdgeCount' measurement type
Counter output supports:
Rates from 0.1 to 80000000.0 scans/sec
2 channels ('ctr0','ctr1')
'PulseGeneration' measurement type
하드웨어 설정 설명
이 예제는 Portescap 20M020D1U 모터(5V, 18도 단극 스텝퍼)를 사용합니다. 디지털 I/O 시스템에서 생성된 TTL 신호는 Texas Instruments ULN2003AIN(고전압, 고전류 달링턴 트랜지스터 어레이)에 의해 증폭되며, 이 회로도에 표시된 바와 같습니다.

디지털 출력 전용 채널 추가
DataAcquisition을 생성하고 포트 0의 라인 0-3에 4개의 디지털 채널을 추가합니다. 측정 유형을 OutputOnly로 설정합니다. 이들은 스테퍼 모터의 4개 제어 라인에 연결됩니다.
dq = daq("ni"); addoutput(dq,"Dev2","port0/line0:3","Digital")
Warning: Added channel does not support clocked sampling: clocked operations are disabled. Only on-demand operations are allowed.
모터 스텝 정의
4비트 패턴의 순서를 설명하는 Portescap 모터 배선도를 참조하십시오. 이 패턴을 모터에 순차적으로 전송하여 시계 반대 방향으로 움직이게 하십시오. 각 스텝마다 모터를 18도 회전시킵니다. 4스텝의 각 사이클마다 모터가 72도 회전합니다. 이 사이클을 다섯 번 반복하여 모터를 360도 회전시킵니다.
step1 = [1 0 1 0]; step2 = [1 0 0 1]; step3 = [0 1 0 1]; step4 = [0 1 1 0];
모터 회전
write를 사용하여, 모터를 시계 반대 방향으로 72도 회전시키기 위한 시퀀스를 출력합니다.
write(dq,step1); write(dq,step2); write(dq,step3); write(dq,step4);
이 시퀀스를 50회 반복하여 모터를 시계 반대 방향으로 10회 회전시킵니다.
for motorstep = 1:50 write(dq,step1); write(dq,step2); write(dq,step3); write(dq,step4); end
모터를 시계 방향으로 72도 회전시키기 위해, 스텝의 순서를 반대로 합니다.
write(dq,step4); write(dq,step3); write(dq,step2); write(dq,step1);
모든 출력 끄기
모터를 사용한 후에는 모든 라인을 차단하여 모터가 자유롭게 회전할 수 있도록 합니다.
write(dq,[0 0 0 0]);