학습목표    1

학습주제    1

예습내용    1

실습방법    1

        1

중요함수    1

아나로그 출력

학습목표

아나로그 출력을 알아 보고 응용한다.

학습주제

6024E 보드에는 ACH0~15 까지 16개의 아나로그 출력 포트가 있다. 이를 제어 하는 함수를 알아보고 응용한다.

예습내용

1.        ACH0~15, AIGND 포트를 알아본다.

2.        AO_VWrite(iDevice, iChan, dVoltage1); 함수와 변수를 알아본다.

3.        삼색 LED 만든 제품을 살펴 본다.

http://www.led.com/   http://www.led.co.kr/

    http://www.sign-board.com/     http://jeiladcom.co.kr/   http://www.seoulsemicon.co.kr/

 http://www.kwangled.co.kr/

실습방법

   

아래 그림은 삼색 LED이다. 부과되는 전압에 따라 녹색과 적색의 혼합된 색이 발생한다.

1:녹색 2:접지 3:적색

 

1. 아나로그 전압의 출력

다음은 키보드를 한번 치면 2.5V(dVoltage1) 출력하고 또한번 치면 0V(dVoltage2) 출력되는 프로그램이다.

예제1

#include "stdafx.h"

#include "nidaqex.h"

 

int main(int argc, char* argv[])

{

i16 iDevice = 1;

    i16 iChan = 0;

    f64 dVoltage1 = 2.5;

    f64 dVoltage2 = 0.0;

   

    /* 'dVoltage1' 출력 */

    printf(" 아무키나 치면 %lf volt 출력 됩니다.\n", dVoltage1);

NIDAQWaitForKey(0.0);

AO_VWrite(iDevice, iChan, dVoltage1);

 

    /* 'dVoltage2' 출력 */

    printf(" 아무키나 치면 %lf volt 출력 됩니다.\n", dVoltage2);

NIDAQWaitForKey(0.0);

AO_VWrite(iDevice, iChan, dVoltage2);

 

return 0;

}

2. 연속적인 아나로그 출력

다음은 0~5V까지 자동으로 출력하는 프로그램이다. 이를 오실로스코프로 확인 하시오.

예제2

#include "stdafx.h"

#include "nidaqex.h"

 

int main(int argc, char* argv[])

{

i16 iDevice = 1;

    i16 iChan = 0;

    f64 dVoltage = 0.0;

   

    for(dVoltage=0.; dVoltage<=5;dVoltage=dVoltage+0.2) {

              printf(" %lf volt 출력 됩니다.\n", dVoltage);

              AO_VWrite(iDevice, iChan, dVoltage);

              NIDAQDelay(0.5);

}

    return 0;

}

2. 아나로그 출력과 삼색LED 동작

아래는 0에서 5V까지 0.2V 간격으로 동작하게 프로그램이다. 이를 해석하고 삼색LED 연결하여 색을 관찰 하시오.

예제3

#include "stdafx.h"

#include "nidaqex.h"

 

int main(int argc, char* argv[])

{

i16 iDevice = 1;

    i16 iChan1 = 0, iChan2 = 1;

    f64 dVoltage1 = 0.0, dVoltage2 = 0.0;

   

    // 다음 출력을 오실로스코프로 확인 하시오.

    /* First output 'dVoltage1' volts. */

    for(dVoltage1=1.8; dVoltage1<=5;dVoltage1=dVoltage1+0.2) {

              for(dVoltage2=1.8; dVoltage2<=5;dVoltage2=dVoltage2+0.2) {

           printf(" %lf %lf volt 출력 됩니다.\n", dVoltage1, dVoltage2);

                 AO_VWrite(iDevice, iChan1, dVoltage1);

                 AO_VWrite(iDevice, iChan2, dVoltage2);

                 NIDAQDelay(0.1);

              }

}

 

    return 0;

}

처음

   

예제3 응용하여 2개의 노브를 만들고 이를 녹색과 적색 단자에 연결하여 색의 조합을 만드시오.

중요함수

status = AO_VWrite (deviceNumber, chan, voltage)

 

Purpose

 

Accepts a floating-point voltage or current value, scales it to the proper binary number, and writes that number to an analog output or current channel to change the output voltage or current.

 

Parameters

 

Direction  Name      Type        Description

Input       deviceNumber        i16          assigned by Measurement & Automation Explorer

chan       i16          analog output channel number

voltage    f64          floating-point value to be scaled and written

Parameter Discussion

 

chan is the analog output channel number.

 

Range:    0 or 1 for the AO-2DC, Lab and 1200 Series analog output, and MIO devices.

 

0 through 5 for AT-AO-6.

0 through 9 for AT-AO-10.

0 through 49 for the VXI-AO-48XDC.

0 through 15 for 6704 voltage channels.

16 through 31 for 6704 current channels.

0 through 3 for PCI-6711.

0 through 7 for PCI-6713 and DAQCard-6715.

 

voltage is the floating-point value to be scaled and written to the analog output channel. The range depends on the type of device, on the jumpered output polarity, and on whether you apply an external voltage reference.

 

Default ranges (bipolar, internal voltage reference):

MIO device and 671X device:  -10 to +10 V.

AT-AO-6/10:           -10 to +10 V.

Lab and 1200 Series analog output devices:        -5 to +5 V.

Default ranges (unipolar, internal voltage reference):

 

AO-2DC device:      0 to +10 V.

 

If you set the output type to current by calling AO_Change_Parameter, the floating-point value indicates the current in amps, for an AO-2DC device, or milliamps for the VXI-AO-48XDC.

 

Default ranges (unipolar, internal voltage reference):

 

AO-2DC device:      0 to 0.02 A.

VXI-AO-48XDC:      0 to 20.47 mA.

 

Default range for the 6704 devices:

 

Voltage Channels   -10.24 to +10.24 V.

Current Channels    0 to 24.47 mA.

 

Using This Function

 

AO_VWrite scales voltage to a binary value and writes that value to the DAC in the analog output channel. If the analog output channel is configured for immediate update, the output voltage or current changes immediately. Otherwise, the output voltage or current changes when NI-DAQ issues an update command or pulse.

 

If you have changed the output polarity for the analog output channel from the factory setting of bipolar to unipolar, you must call AO_Configure with this information for AO_VWrite to correctly scale the floating-point value to the binary value.

 

You can use AO_VWrite to calibrate the VXI-AO-48XDC. On this device, AO_VWrite writes to channel number 48 affect the voltage or current offset calibration, depending on the output type of this channel as set by the calibration. Additionally, it writes to channel number 49 affect the voltage or current gain calibration, again depending on the output type as set by the AO_Change_Parameter function.