이 튜토리얼에서는 ARDUINO UNO로 서보 모터 를 제어 할 것 입니다. 서보 모터는 정확한 샤프트 이동이나 위치가 필요한 곳에 사용됩니다. 고속 애플리케이션에는 제안되지 않습니다. 이는 저속, 중간 토크 및 정확한 위치 적용을 위해 제안됩니다. 이 모터는 로봇 팔 기계, 비행 제어 및 제어 시스템에 사용됩니다.
서보 모터는 다양한 모양과 크기로 제공됩니다. 서보 모터에는 주로 전선이 있으며, 하나는 양 전압 용이고 다른 하나는 접지 용이고 마지막 하나는 위치 설정 용입니다. 적색선은 전원, 흑색 선은 접지, 황색 선은 신호에 연결됩니다.
서보 모터는 DC 모터, 위치 제어 시스템, 기어의 조합입니다. DC 모터의 샤프트 위치는 PWM 신호 인 SIGNAL 핀의 듀티 비를 기반으로 서보의 제어 전자 장치에 의해 조정됩니다.
간단히 말해서 제어 전자 장치가 DC 모터를 제어하여 샤프트 위치를 조정합니다. 샤프트 위치에 관한 데이터는 SIGNAL 핀을 통해 전송됩니다. 제어 장치에 대한 위치 데이터는 서보 모터의 Signal 핀을 통해 PWM 신호 형태로 전송되어야합니다.
PWM (Pulse Width Modulated) 신호의 주파수는 서보 모터 유형에 따라 다를 수 있습니다. 여기서 중요한 것은 PWM 신호의 DUTY RATIO입니다. 이 의무에 따라 제어 전자 장치가 샤프트를 조정합니다.
아래 그림과 같이 샤프트를 9시 시계로 이동하려면 작동 시간이 1/18이어야합니다. 18ms 신호에서 1ms의 ON 시간 및 17ms의 OFF 시간.
샤프트가 12o 클럭으로 이동하려면 신호의 ON 시간이 1.5ms이고 OFF 시간은 16.5ms 여야합니다. 이 비율은 서보의 제어 시스템에 의해 디코딩되고이를 기반으로 위치를 조정합니다. 여기에있는이 PWM은 ARDUINO UNO를 사용하여 생성됩니다.
회로 구성 요소
하드웨어: ARDUINO UNO, 전원 공급 장치 (5v), 100uF 커패시터, 버튼 (2 개), 1KΩ 저항 (2 개), 서보 모터 (테스트 필요).
소프트웨어: arduino IDE (Arduino nightly).
Arduino 서보 모터 회로도 및 설명
정상적인 경우에는 주파수를 조정하고 서보의 정확한 위치 제어를 위해 필요한 듀티 비를 얻기 위해 컨트롤러의 레지스터로 이동해야합니다. ARDUINO에서는 이러한 작업을 수행 할 필요가 없습니다.
ARDUINO에는 헤더 파일이 호출되거나 포함되면 그에 따라 주파수 및 듀티 비율을 설정하는 사전 정의 된 라이브러리가 있습니다. ARDUINO에서는 필요한 서보의 위치를 지정하기 만하면 PWM이 UNO에 의해 자동으로 조정됩니다.
서보의 정확한 위치를 얻기 위해 우리가해야 할 일은:
|
먼저 PWM 신호의 주파수를 설정하고이를 위해“#include
이제 서보 "Servo sg90sevo"의 이름을 정의해야합니다. 여기서 'sg90servo'는 선택한 이름이므로 물약을 작성할 때이 이름을 사용할 것입니다.이 기능은 제어 할 서보가 많을 때 유용합니다. 이것으로 8 개의 서보를 제어 할 수 있습니다.
이제 UNO에 서보의 신호 핀이 연결된 위치 또는 PWM 신호를 생성해야하는 위치를 알려줍니다. 이를 위해“Sg90.attach (3);”가 있습니다. 여기서는 PIN3에서 서보의 신호 핀을 연결 한 UNO를 알려줍니다.
왼쪽은 모두 위치를 설정하는 것입니다.“Sg90.write (30);”를 사용하여 서보의 위치를 설정합니다.이 명령에 의해 서보 핸드가 30도 이동합니다. 그런 다음 서보의 위치를 변경해야 할 때마다”Sg90.write (needed_position_ angle);”명령을 호출해야합니다. 이 회로에는 두 개의 버튼이 있습니다. 하나는 서보의 위치를 높이는 버튼이고 다른 하나는 서보의 위치를 낮추는 버튼입니다.
의 Arduino 서보 모터 제어 튜토리얼 아래 C 코드를 단계적으로 설명한다.