첫 사진은 NI 9401을 이용한 hc-sr04 초음파센서 코드입니다. distance 값이 10 이하이면 서보모터가 작동하고 3~5초간 시간 지연을 줘서 그만큼 늦게 올라오게끔 코딩하고 싶습니다.
high time control로 서보모터의 각도를 제어하는데 저 high time은 맨 처음 사진 while문 안에 있는 case문에서 distance가 10 이하인것이 true일 때의 값으로 설정하려고 합니다.
따라서 이렇게 플랫시퀀스를 이용해 앞 시퀀스가 감지부, 뒤쪽이 동작부로 만들어, true일 때 whlie문이 종료되게 설정하고 그 때의 값을 high time에 넣어주면 논리적인 오류는 없는 것인가요? 서보모터 동작 후 원래 hightime 값으로 되돌아오게 하려면 어떻게 해야하는지도 궁금하네요.
일단 서보 모터가 어떻게 동작하는 모터인지 모르겠네요.
서보모터는 대충 위치제어 모드, 속도 제어 모드가 있는데
모드에 따라서 입력으로 넣어주는 값도 다릅니다.
질문의 느낌상 위치 제어를 하려고 하시는 것 같은데,
펄스(사각 파형 1개)를 원하는 만큼 출력하는 방식이 있고(예를 들면 펄스 1개에 1도씩 움직임)
펄스의 high, low 시간의 비율로 회전시키는 방식이 있고
(원하는 위치에서 멈춤 high, low 시간을 동일하게 주거나(+,- 전압일 때,) 아예 꺼버리거나(+,0 전압일 때)
그냥 전압으로 회전시키는 방식(원하는 위치에서 멈춤. 멈출려면 0V 를 출력함) 등이 있습니다.
-----------
LabVIEW는 그냥 코딩의 한 형태일 뿐, 센서와 제어의 원리는 일반적인 사항을 그대로 따릅니다.
따라서, 도움을 받으시려면 좀 더 자세히 알려주시거나
위의 서보모터 동작원리를 좀 더 확인해 보시는 것이 좋을 것 같습니다.