삼성 아틱 710S와 SG90 서보모터 제어하기

메이커 2018-09-11 (화) 09:23 6년전 3749  

아틱보드에서 PWM을 이용한 SG90 모터 제어


본 튜토리얼의 전체 PDF는 다음의 링크에서 참고하실 수 있습니다. 

 

https://goo.gl/JVMp9q 

 

SG90이라는 서보모터는 PWM을 통해서 원하는 각도로 모터의 축을 회전하는 기능을 합니다. 이 때, 사용하는 PWMPulse Width Modulation으로 1.5V, 3.1V와 같은 전압을 빠르게 05V를 일정한 비율로 빠르게 조정하면서 아날로그와 비슷한 신호를 디지털 신호로 만드는 역할을 합니다.

우리가 사용하는 아틱 보드 및 마이크로컨트롤러가 디지털 장비이기 때문에 출력을 논리적으로는 01, 전기적으로는 0V3.3V 혹은 0V5V로 발생하게 되는데, PWM 기능으로 인해 아날로그 출력을 하게 됩니다.

이러한 PWM을 이용하게 되면, SG90 뿐만 아니라, LED의 밝기를 점점 희미하게 혹은 밝게 만드는 디밍 (dimming) 기능도 구현할 수 있습니다.

 

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536644
 

 

SG90Duty Cycle에 따라서 다음과 같은 회전을 하게 됩니다.

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536644
 

 

먼저, PuTTY에 접속해서 리눅스 명령어로 회전하는 것을 확인해보도록 하겠습니다.

그 전에, PWM과 관련된 시스템 파일을 보겠습니다.

 

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536644
 

 

위의 폴더를 보면 pwm2라는 폴더가 있습니다.

다시, pwm2 폴더로 이동합니다.

 

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536644
 

 

그리고 PWM을 사용하기로 설정합니다. (echo 1 > enable)

서보모터를 제어하기 위해서 주기는 20,000,000ns, , 20ms이고 (echo 20000000 > period), 1~2msduty_cycle0도에서 180도로 회전하는 것으로 데이터시트에 표기되어 있습니다 (echo 1000000 > duty_cycle).

 

1f7c3ee5d7e718d5cf0b1a77c77892dc_1536644
1f7c3ee5d7e718d5cf0b1a77c77892dc_1536644
 

 

 

위와 같이 실행시, 0~180도로 회전하는 것을 확인할 수 있습니다.

 

메카리워즈 Image Map


모바일 버전으로 보기