MoonNote

반응형
     

 

 

 

실습 구성

◾ NI Data Acquisition Device : USB-6212

◾ DAQmx Driver, matplotlib, numpy

 

 

실습 방법

◾ NI DAQ 장비를 이용한 Analog Input Continuous Sampling(HW Timing) 예제 제작

◾ AO 1채널과 AI 1채널을 물리적으로 연결

 출력은 NI MAX 테스트 패널에서 업데이트하고 입력받은 데이터를 Matplotlib로 디스플레이

* matplotlib쪽 스터디 되는대로 수정 필요할 수도 있음. 현재 실제 매Cycle마다 N채널 데이터처럼 그림

 

 

'''
Copyleft © MoonNote

작성자 : MoonNote
블로그 주소 : MoonNote.tistory.com
'''

import nidaqmx
import numpy as np
import matplotlib.pyplot as plt

from ast import Break
from nidaqmx.constants import TerminalConfiguration, AcquisitionType, Edge

plt.grid()
plt.ylim(-10, 10)
plt.ion()
sampling_rate = 1000
Read_data = 100
i = 0
data = np.zeros((1,1), dtype = np.float64)

with nidaqmx.Task() as task :
    
    task.ai_channels.add_ai_voltage_chan("Dev1/ai0", "", terminal_config = TerminalConfiguration.RSE)
    task.timing.cfg_samp_clk_timing(sampling_rate, "", active_edge=Edge.RISING, sample_mode=AcquisitionType.CONTINUOUS, samps_per_chan=Read_data)
    task.start()
    
    try:
        while True:

            x = np.arange(i, i+Read_data, 1, dtype=float)
            data = task.read(Read_data, 10)

            plt.plot(x, data, color='b')
            plt.pause(0.001)

            i = i + Read_data
    except KeyboardInterrupt:
        Break
        print('close the program')

 

 

 

테스트 영상

 

 

 

 

 

 

 

 

※ 이 글이 도움이 되었다면 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.

공유하기

facebook twitter kakaoTalk kakaostory naver band