[Arduino]03.PWM과 서보모터

안녕하세요 유랑입니다.




오늘은 PWM과 서보모터 구동에 대해서 배워보겠습니다.

PWM을 통해서 서보모터를 구동시킬 수 있기에 유의깊게 봐주세요.




1. PWM




1-1) Pulse Width Modulation


펄스 폭 변조라고 말하는 PWM은 펄스의 폭을 컨트롤 하는 주기 제어방법입니다.

출력되는 전압값을 일정한 비율(duty)동안은 High를 유지하고, 

나머지는 Low를 출력하여 아래와 같은 사각파의 출력을 만들어 냅니다.

PWM을 사용하면 0V와 5V 사이의 아날로그 값을 모사할 수도 있으며, 제어 및 통신에서도 많이 사용됩니다.







1-2) 하드웨어 연결



아두이노 우노에서 PWM은 3, 5, 6, 9, 10, 11번의 6개 핀을 사용 할 수 있고, 

디지털 핀 쪽의 물결표시(~)로 확인할 수 있다.

PWM을 사용하게 되면 led를 그냥 키는것 뿐만 아니라 duty를 통해 전압의 비율을 조절 해서 밝기를 조정가능하다. 

밑에있는 그림을 참고하여 하드웨어 구성을 해보자.

led가 아두이노 3번핀에 연결되어 있지만 다른 물결 표시가 있는 핀에 연결하여도 상관없다.







1-3) 소프트웨어



PWM을 사용하려면 해당 핀에 연결하여 analogWrite를 사용하여야 한다.

밑에 있는 코드는 0 ~ 255까지 값을 증감 혹은 감소시켜 led의 밝기를 조절한다.







2. 서보모터




2-1) Servo Motor



서보 모터의 위치는 펄서의 길이에 따라서 설정됩니다. 

서보는 매 20ms마다 펄스를 받게되는데 각도는 다음과 같습니다.

*1ms동안 high이면 각은 0

*1.5ms동안 high이면 중간위치에

*2ms동안 high이면 각은 180

여기서 사용한 서보 모터는 360도까지 회전하지 못하지만 가능한것도 있으니 사실 때 유의깊게 봐주세요.







2-2) 하드웨어 연결



이제 서보모터를 아두이노에 연결하여 구동시켜 봅시다.

서보모터는 연결선이 세개 있습니다. 

보통 갈색은 GND, 빨강색은 5V, 노란색은 SIG에 해당합니다.

다음과 같이 연결시켜 봅시다.

*서보모터 GND <-> 아두이노 GND

*서보모터 PWR <-> 아두이노 5V

*서보머터 SIG   <-> 아두이노 9번 Pin







2-3) 소프트웨어



서보모터를 쉽게 사용하기 위해서 서보 라이브러리라는 헤더파일을 사용하겠습니다.

헤더파일 안에는 서보모터를 위한 함수를 수식화 하였기에 보다 쉽게 사용가능합니다.

attach를 이용해 서보모터를 9번 핀에 연결시키고, write를 통해 원하는 만큼 위치 조정이 가능합니다.

여기서 모터는 0~180 안에서만 동작가능합니다.

모터의 동작원리는 앞에서 배운 PWM을 응용한겁니다.







3. 마무리



오늘 강의는 여기까지입니다.

이번에는 따로 과제가 없으니 PWM과 서보모터에 대해 복습해 보시길 바랍니다.

다음시간에는 스위치 사용법과 응용에 대해 진행하겠습니다.

감사합니다.








댓글

Designed by JB FACTORY