Arduino와 함께 하나 또는 두 개의 서보를 사용하는 것은 쉽지만 두 개 이상의 서보 모터를 사용하려면 어떻게해야합니까?
여기에서는 Arduino를 사용하여 다중 서보 모터 를 제어 하는 방법을 보여 드리겠습니다. 여러 서보 모터를 Arduino와 연결하는 것은 쉬운 것처럼 보이지만 모든 서보를 Arduino 공급 핀에 연결하면 모든 모터를 구동 할 수있는 충분한 전류가 부족하여 올바르게 작동하지 않습니다. 따라서 모터에 별도의 전원 공급 장치를 사용해야합니다. 일부 어댑터 (5v 2A) 또는 양질의 9v 배터리입니다.
필요한 재료
- 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에 연결 하기 전에이 서보 모터 테스터 회로의 도움으로 서보를 테스트 할 수 있습니다. 아래의 서보 프로젝트도 확인하십시오.
- Flex 센서에 의한 서보 모터 제어
Arduino 코드 설명
다중 서보 제어를위한 완전한 Arduino 코드 는 끝에 제공됩니다.
Arduino에는 서보 모터 용 라이브러리가 있으며 서보를 회전하기위한 모든 PWM 관련 작업을 처리합니다. 회전하려는 각도를 입력하기 만하면 됩니다. servo1.write (angle); 서보를 원하는 각도로 회전시킵니다.
그래서 여기서는 서보 모터 용 라이브러리를 정의하는 것으로 시작합니다.
#포함
아래 코드에서는 Servo1, Servo2, Servo3, Servo4 의 4 개 서보 를 모두 초기화 하고 있습니다.
서보 서보 1; 서보 서보 2; 서보 서보 3; 서보 서보 4;
그런 다음 Arduino로 모든 서보의 입력 핀을 설정합니다. 아래 코드와 같이 Servo1은 Arduino의 세 번째 핀에 연결됩니다. 사용자에 따라 핀을 변경할 수 있지만 PWM 핀이어야합니다. Arduino의 디지털 핀과 함께 서보를 사용하는 것은 신뢰할 수 없습니다.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
이제 void loop () 함수 에서 모든 서보를 0도에서 180 도로 회전 한 다음 180도 에서 0 도 까지 회전합니다. 아래 코드에서 사용되는 지연은 변수 'i'의 증가 또는 감소 속도에 영향을 미치므로 서보의 속도를 증가 또는 감소시키는 데 사용됩니다.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); 지연 (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); 지연 (10); } }
Arduino로 여러 서보 제어-작동:
우리 모두는 하나의 Arduino로 두 개 이상의 서보를 사용하는 동안 현재 문제에 직면합니다. 이에 대한 유일한 해결책은 적절한 정격 전류로 외부 전원 공급 장치를 연결하는 것입니다 (이 프로젝트에서는 9v 공급 장치에 2A를 사용했습니다). 외부 전원 공급 장치의 경우 어댑터, RPS (Regulated Power Supply Instrument) 또는 양질의 9v 볼트 배터리를 사용할 수 있습니다. 소형 서보에 전원을 공급하기 위해 랩톱 USB 포트를 사용할 수 있습니다. 외부 전원을 사용하려면 Arduino 접지를 외부 전원 접지로 단락하면됩니다.
아래 주어진 Arduino 코드를 사용하여 Arduino를 프로그래밍하고 회로도에 표시된대로 모든 서보 모터를 모터에 적절한 전원 공급 장치로 연결하십시오. 따라서 모든 서보는 인터럽트없이 함께 작동합니다.