Broccoli's House

#3-(1) 랩뷰에서 아두이노로의 AD/DA 변환 본문

공부/캡스톤 디자인

#3-(1) 랩뷰에서 아두이노로의 AD/DA 변환

김콜리 2018. 1. 30. 15:47

3주차 - (1) 랩뷰 → 아두이노 AD/DA 변환




  • 하드웨어 세팅 : NI-6008, 아두이노 DUE, 전선
 - NI-6008과 아두이노를 컴퓨터에 연결한다.

 - NI-6008의 AO0를 아두이노의 아날로그 입력 포트 A0와 연결하고, GND 포트에 각각 전선을 연결한다.






  • 소프트웨어 세팅
 - 랩뷰에서 아날로그 <사인 웨이브폼> 블록을 가져다 놓는다.

 - <아날로그를 디지털로 변환> 블록으로 웨이브폼을 디지털로 변환한다. 출력되는 디지털 웨이브폼은 불리언 형태이기 때문에, <디지털을 2진수로 변환> 블록을 통해 2진수로 변경해준다. 

 - 출력된 12비트의 2진수(0~4095)를 아두이노 DUE의 정격전압 3.3V로 스케일링 해준다. 

 - 스케일링된 출력은 배열의 형태이기 때문에, 신호를 출력하여 아두이노에서 읽기 어렵다. 따라서 배열에서 각각의 원소를 차례대로 불러내어 DAQ 어시스턴트를 통해 신호를 출력한다. 


 - NI-6008에서 출력된 사인파 형태의 신호를 Arduino IDE에서 입력 받으면, 아두이노 DUE의 분해능 10비트(0~1023)로 받아들이게 된다. 따라서, 다시 정격 전압으로 변경해주는 코드를 추가하여 시리얼 모니터에 출력하도록 한다.






 
- PLX-DAQ 프로그램을 사용하여 아두이노로 측정된 값들을 엑셀에 로깅(Logging)한다.
     (https://www.youtube.com/watch?v=xzC4SDd6sJ0)


 - 로깅된 값을 엑셀 그래프로 띄워보면, 사인 함수의 형태를 보인다. 주기를 비교해보면 랩뷰에서 생성한 사인 함수는 주기 100ms, 아두이노에서 읽은 사인 함수의 주기는 102ms이다. 2ms의 근소한 차이는 아두이노가 읽어들일 때의 지연(delay)으로 생각된다.



<랩뷰의 출력 신호 : 주기 10ms>


<아두이노의 입력 신호 : 주기 10.2ms>


Comments