자기장을 측정할 수 있는 홀센서를 아두이노 아날로그 핀과 연결한뒤 매트랩을 이용하여 실시간 데이터를 3D그래프로 나타냈다.
매트랩을 아두이노와 연결하기 위해 매트랩의 아두이노 하드웨어 애드온을 설치해 주었다. 아날로그 신호를 읽을 수 있도록 매트랩 코드를 짠 뒤 bar3을 이용하여 3차원 막대그래프로 만들었다.
기능적으로는 만들어졌지만 최적화되지 못한것이 몇가지 있다.
1) 실시간 데이터를 받는 과정에서 반복횟수를 정하고 for 루프가 돌아가도록 만들었다. 이것을 시간이 흐르는 동안으로 만들어야할 것 같다.
2) 데이터를 업데이트 시킬때 for 루프 안에서 아날로그값을 계속 불러오고 bar3그래프를 반복적으로 그리게되는데 bar3은 그대로 있는 상황에서 값만 업데이트하는 방법을 찾아봐야겠다.
arduinoObj = arduino("COM4", "Mega2560") % 하드웨어 자동생성으로 코드만듦
configurePin(arduinoObj, "A0", "AnalogInput");
configurePin(arduinoObj, "A1", "AnalogInput");
configurePin(arduinoObj, "A2", "AnalogInput");
A0 = readVoltage(arduinoObj, "A0"); % 아두이노에서 아날로그값 불러오기
A1 = readVoltage(arduinoObj, "A1");
A2 = readVoltage(arduinoObj, "A2");
A3 = readVoltage(arduinoObj, "A3");
A4 = 1;
A5 = 1;
Z = [A0, A1, A2;
A3, A4, A5];
x = 1:1:1000; % 반복되는 횟수
n = numel(x);
figH = figure;
for i = 1:n
if ~ishghandle(figH) % figure를 닫으면 종료되는 코드
break
end
A0 = readVoltage(arduinoObj, "A0");
A1 = readVoltage(arduinoObj, "A1");
A2 = readVoltage(arduinoObj, "A2");
A3 = 1;
A4 = 1;
A5 = 1;
Z = [A0, A1, A2;
A3, A4, A5];
bar3(Z*1000) % 바차트를 이용해서 3D 그래프로 표시하기
pause(0.1)
end
clear arduinoObj
반응형
'만들기 > 랩뷰(labview)' 카테고리의 다른 글
ni labview와 dso1012a 오실로스코프 연결오류( 50% 해결) (0) | 2023.01.11 |
---|---|
enumeration conflict 열거형이 충돌합니다. (0) | 2022.09.15 |
[랩뷰] LINX에서 L298N 드라이버로 DC모터 제어하기 (0) | 2022.01.22 |
LINX와 아두이노 메가는 잘 연결되지 않는다. (0) | 2022.01.21 |
[랩뷰] LINX 로 랩뷰에서 아두이노 연결하여 servo 모터제어하기(sg90) (0) | 2022.01.21 |