취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 

Digital Multimeter 의 값이 안정되었을 때 프로그램 적으로 인식하여 값을 읽고 싶습니다.

해결 완료!
솔루션으로 이동

안녕하세요. 여리君 입니다. 오랜만에 인사드리네요.

 

다름이 아니라, Digital Multimeter 를 사용한 시스템을 만들고 있습니다.

 

전압이나 전류를 측정하는데, 측정을 시작하면 한동안 변화하기 때문에 값의 변화 폭이 어느 정도 안정화 되었을 때 값을 읽으려 합니다.

 

이전 코드에서는 수십초를 기다렸다가 읽게 코드가 구성되어 있는데, 이걸 프로그램 적으로 구현 해서 시간 차를 줄여보려 합니다.

 

Shift Register 를 이용해 이전값을 읽어와서 비교하는 거야 쉽게 할 수 있는데요.

 

그 값을 어떻게 비교 하는지 고민입니다.

 

뭐 일단 미분... 정도 생각하고 있는데요.

 

함수를 보니.. 막막합니다. 뭐 방법이 있을까요?

 

그냥 이전 코드 그대로 넣어놓을까봐요.. ㅡ_ㅡ;

0 포인트
1/5 메시지
1,045 조회수
솔루션
승인자 여리君

이전값과의 변화값을 어레이로 넣은 후 Minimum 치로 비교하는 방법이 있습니다.

 

5

4 (-1)

3.5 (-0.5)

3.2 (-0.3)

3.1 (-0.1)

3.1 (0.0)

 

-1, -0.5, -0.3, -0.1, 0.0

이런 식으로 변화 하겠죠.

 

변위값을 어느 정도의 상수값으로 제한하고 또한 동시에 시간제한을 두어 측정을 완료하는 방법입니다.

측정값이 계속 변화하는 것을  방지하기 위해 시간제한까지 추가하는 겁니다.

 

 

 

 

 

0 포인트
2/5 메시지
1,001 조회수

반갑습니다. Kabson 님 . 오랜만이네요. 건강하시죠?

 

측정되는 Range 는 0~10Vdc, 4~20mA 사이 입니다.

 

문제는 정밀도인데, 소숫점 두자리까지 확인이 되어야 합니다.

 

기존에 측정 전에 계측기에서 전압을 인식해 올라가는 시간이 좀 있어서, 수초간 기다리는 작업을 진행 했던 것 같습니다.

 

그것 때문에 좀 더 빠르게 할 수 없는지 이야기가 나왔어서... 방법을 강구 중입니다.

 

지금 현재는 2초 후 측정을 해서 읽히는 값을 미분해 값이 ±0.005 안에 4번 들어오면 패스로 인식하게 해 두었습니다. 250msec 당 1샘플 설정했거든요.

 

제목 없음.png

 

구글링 해 보니 미분하려면 저 함수를 쓰면 된다고 나오더군요.

 

이전값과 측정값을 미분해 일정 범위 내에 들어오는걸 Shift Register 로 받아, 4번 유지  (1초간) 되면 사용자 이벤트가 발생하게 해 두었습니다.

 

이 방법 말고 다른 방법이 있을까요?

0 포인트
3/5 메시지
999 조회수
솔루션
승인자 여리君

이동평균을 사용해서 이동평균과 현재 값의 차가 얼마 이하가 되었을때 안정되었다고 볼 수도 있겠네요

RevolutionKwon_0-1615783312801.png

 

4/5 메시지
966 조회수

이동 평균 갯수 때문에 고민하다가 미분을 생각했습니다. 🙂

 

참고하겠습니다. 감사합니다.

0 포인트
5/5 메시지
960 조회수