본문 바로가기

PWM을 사용하여 LED를 점차 서서히 밝게 만들기 using 아두이노&랩뷰 컴파일러

반응형

랩뷰를 실행하고 새 VI를 더블 클릭한다.



프런트패널과 블럭다이어그램이 창이 나타난다. 블럭다이어그램창에서 도구>Arduino Compatible Cpmpiler for LabVIEW를 클릭한다.



아래와 같이 Arduino Compatible Cpmpiler for LabVIEW 창이 실행되면 File>Examples>Analog>Analog Output - PWM.vi 를 실행한다.



Analog Output - PWM 예제가 실행된다. 기존에 열려있는 빈 프런트패널과 블럭다이어그램 창은 꺼주면 된다. 예제에 대해 간단하게 설명되어 있다. PWM OUTPUT을 사용하여 LED의 빛의 밝기를 조절하는지 보여주는 예제이며, 모터의 스피드 조절에도 똑같이 적용된다고 한다. PWM은 모든 아두이노의 디지털핀에서 적용되는 것은 아니며 핀번호 옆쪽에 ~ 무늬가 있는 핀에만 PWM이 가능하다. 결선 방법은 위의 링크를 참조하면 된다. 결선 후 컴파일러 창으로 돌아가서 Compiler>Compiler and Download를 클릭하면 아두이노에 코드가 올라가고 LED가 서서히 밝아졌다가 꺼지고 다시 서서히 밝아지는 것을 반복한다.

[프런트패널]


[블럭다이어그램]
코드는 정말 간단하다. While 루프안에 Analog Write 함수가 있으며 그 함수에 핀번호와 PWM 값이 입력된다. 몫&나머지 함수에 연결되는 i는 uiteration이라는 글자의 약자로 While 루프가 몇 번 반복하고 있는지를 출력해주는 역할을 한다. 참고로 1이 아닌 0부터 시작한다. 밝아지는 속도를 천천히 하고 싶다면 기다림(ms)함수의 시간을 크게 하면 된다. 


참고로 몫& 나머지 함수를 좀 더 자세하게 설명하면 x값은 계속 증가할 것이고 y 값은 255로 고정되어 있다. 아래의 floor(x/y)는 나머지값이고 x-y*floor(x/y)는 나머지 값에다가 255를 곱한 값을 x에서 빼주는 것이다.그래서 x가 아무리 커져도 x-y*floor(x/y)는 0~255만 반복하게된다. 컨트롤러 및 인디게이터를 만들어서 한 개씩 넣어보면 이해가 된다.


반응형
-->