서보모터 MG996R 연동하여 사용하였습니다.
예제 코드로 동작 시 역회전은 하지않고 정회전으로 계속 돕니다.
이유를 알 수 있을까요?
또한 servo.h 라이브러리를 사용하여 사용하여도 같은 현상입니다.
답변 부탁드립니다.
#include "HCPCA9685.h" // 설치한 헤더 파일
#define I2CAdd 0x40
HCPCA9685 HCPCA9685(I2CAdd);
void setup() {
Serial.begin(9600);
HCPCA9685.Init(SERVO_MODE); // 쉴드를 서보모드로 초기화
HCPCA9685.Sleep(false);
}
void loop() {
unsigned int Pos; // 각도 조정을 위한 변수
for(Pos = 10; Pos < 450; Pos++) { // Pos가 10부터 449까지 증가할 때
HCPCA9685.Servo(4,Pos); // 연결된 서보모터를 Pos만큼 움직이기
delay(1);
Serial.println(Pos, DEC);
}
for(Pos = 450; Pos >= 10; Pos--) { // Pos가 450부터 10까지 감소할 때
HCPCA9685.Servo(4,Pos); // 연결된 서보모터를 Pos만큼 움직이기
delay(1);
Serial.println(Pos, DEC);
}
}
위의 코드로 동작했습니다.
보드에서 공급되는 전압, 전류로는 정상제어가 안되더라구요. 혹시 전원공급하셨는데 그러시는건가요?
동일 환경에서 테스트 해본 결과 올려주신 코드 실행했을 때 정주행 역주행 다 잘 되는 것으로 확인했거든요