주요 콘텐츠

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

NI 장치를 사용하여 펄스 폭 변조 신호 생성

이 예제에서는 스테퍼 모터를 구동하기 위해 펄스 폭 변조 신호를 생성하는 방법을 보여줍니다.

카운터 출력 채널 생성

daq를 사용하여 DataAcquisition을 생성합니다. addoutput를 사용하여 PulseGeneration 측정 유형의 카운터 출력 채널을 추가하고, addinput를 사용하여 카운터 출력 채널에서 생성된 펄스를 모니터링하는 아날로그 입력 채널을 추가합니다. 이 예제에서는 펄스 생성을 위해 CompactDAQ Chassis NI c9178과 ID cDAQ1Mod5를 가진 NI 9402 모듈을 사용하고, 전압 입력을 위해 ID cDAQ1Mod1을 가진 NI 9205를 사용합니다.

dq = daq("ni");
addinput(dq,"cDAQ1Mod1", "ai0", "Voltage");
ctr = addoutput(dq,"cDAQ1Mod5", "ctr0", "PulseGeneration");
dq.Channels
ans = 

    Index    Type      Device       Channel    Measurement Type           Range                 Name      
    _____    ____    ___________    _______    _________________    __________________    ________________

      1      "ai"    "cDAQ1Mod1"    "ai0"      "Voltage (Diff)"     "-10 to +10 Volts"    "cDAQ1Mod1_ai0" 
      2      "co"    "cDAQ1Mod5"    "ctr0"     "PulseGeneration"    "n/a"                 "cDAQ1Mod5_ctr0"

카운터 출력 채널의 터미널을 결정하세요

출력 신호를 올바른 단자에 연결하려면 카운터 채널의 Terminal 속성을 조사하십시오. 터미널은 하드웨어에 의해 결정됩니다.

ctr.Terminal
ans =

    'PFI0'

클록 카운터 출력

카운터 출력 채널 0을 사용하여 터미널 PFI0에서 고정 펄스 폭 변조 신호를 생성합니다. 0.5초 후에 75% 듀티 사이클로 모터를 작동시킵니다.

ctr.Frequency = 10;
ctr.InitialDelay = 0.5;
ctr.DutyCycle = 0.75;

% Starting in foreground returns data for input channels only. 
% The data variable will contain one column of data.
start(dq, "Duration", seconds(1));

while dq.Running
    pause(0.1);
end

data = read(dq, seconds(1));
plot(data.Time, data.Variables);