주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

디지털 출력을 이용한 스테퍼 모터 제어

이 예제는 디지털 출력 포트를 사용하여 스테퍼 모터를 제어하는 방법을 보여줍니다.

디지털 출력을 지원하는 장치 찾기

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]);