에듀이노-아두이노 전문 교육쇼핑몰 에듀이노-코딩교육 전문 쇼핑몰
뒤로가기

묻고답하기

제목

서보모터 관련 문의

작성자 임재훈(ip:)

작성일 2021-05-14

조회 601

평점 0점  

추천 추천하기

내용

MG996R 제품 받았습니다.

모터를 제어하기 위해 3가지 방법으로 테스트하였습니다.


1. UNO R3 와 MG996R 만을 사용

 ㄱ. 5V, GND, PWM(9) 연결 시 USB 통신 끊김 현상 발생 

 ㄴ. 3.3V, GND, PWM(9) 연결 시 정회전으로만 동작

 ㄷ. 소스 코드

    #include <Servo.h>


    Servo myServo;

    int pos=0;


    void setup() {

      Serial.begin(9600);

      myServo.attach(9);

    }


    void loop() {

     myServo.write(150);

     Serial.write("정회전");

     delay(1000);

     myServo.write(50);

     Serial.write("역회전");

     delay(1000);

     myServo.write(90);

     Serial.write("정지");

     delay(5000);

    }


-> 결과 : 역회전으로 동작하지않음, 정회전으로만 계속하여 돎


2. 위의 1번의 ㄱ,ㄴ 은 동일


  ㄷ. 아두이노 예제 코드 sweep 사용


-> 결과 : 역회전으로 동작하지않음, 정회전으로만 계속하여 돎 


3. 16채널 모터 제어보드, UNO R3, MG996R 사용 

   ㄱ. 제어보드와 우노 연결

   ㄴ. 제어보드 0번 채널 사용 (이 때, 6V 전압 인가)

   ㄷ. 소스 코드 2개

    

#include "HCPCA9685.h"  // 설치한 헤더 파일

#define I2CAdd 0x40

 

HCPCA9685 HCPCA9685(I2CAdd);

unsigned int Pos;     // 각도 조정을 위한 변수

 

void setup() {

  HCPCA9685.Init(SERVO_MODE);   // 쉴드를 서보모드로 초기화

  HCPCA9685.Sleep(false);

  Serial.begin(9600);

}

 

void loop() {

  HCPCA9685.Servo(1, 150);           // 연결된 서보모터를 Pos만큼 움직이기

  Serial.println("정회전");

  delay(3000);

  HCPCA9685.Servo(1, 0);

  Serial.println("역회전");

  delay(3000);

  HCPCA9685.Servo(1, 90);

  Serial.println("정지");

  delay(3000);

}


#include "HCPCA9685.h"  // 설치한 헤더 파일
#define I2CAdd 0x40
 
HCPCA9685 HCPCA9685(I2CAdd);  
 
void setup() {
  HCPCA9685.Init(SERVO_MODE);   // 쉴드를 서보모드로 초기화
  HCPCA9685.Sleep(false);
}
 
void loop() {
  unsigned int Pos;     // 각도 조정을 위한 변수
  for(Pos = 10; Pos < 450; Pos++) {   // Pos가 10부터 449까지 증가할 때
    HCPCA9685.Servo(0,Pos);           // 연결된 서보모터를 Pos만큼 움직이기
    delay(1);
  }
 
  for(Pos = 450; Pos >= 10; Pos--) {  // Pos가 450부터 10까지 감소할 때
    HCPCA9685.Servo(0,Pos);           // 연결된 서보모터를 Pos만큼 움직이기
    delay(1);
  }
}



구글링하여 찾아보니 90도를 기준으로 정지, 90도 초과이면 정회전, 90도 미만이면 역회전으로 나와있습니다.

하지만 멈추지않고 계속하여 정회전만 반복하여 회전합니다. 

또한 아두이노 예제 코드 sweep를 사용하였음에도 정회전으로만으로 동작합니다.


모터가 제어 불능 상태입니다. 답변 부탁드립니다.


첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

  • 작성자 아공생

    작성일 2021-05-18

    평점 0점  

    스팸글 외부전원이 적은것 같습니다! 9V~12V 전압을 공급해주시고,
    MG996R에 필요한 동작 전압 전류를 확인해보셔야할 것 같아요. 저도 테스트 하면서 보드 전류로는
    제어 안된다는걸 알았습니다...
댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호 :

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

왼쪽의 문자를 공백없이 입력하세요.

에게만 댓글 작성 권한이 있습니다.

댓글 입력

이름

비밀번호

내용

/ byte

왼쪽의 문자를 공백없이 입력하세요.

에게만 댓글 작성 권한이 있습니다.

고객센터

    1670-9626

  • 팩스.063-902-6678
  • 이메일.eduino@robodyne.co.kr
  • Kakao. 에듀이노
  • 운영시간 : AM 10:00 ~ PM 16:30
  • 점심시간 : PM 12:00 - PM 13:00 토/일/공휴일 휴무
  • 고객센터 연결하기
입금계좌
  • 예금주: (주)로보다인시스템
  • 국민. 754801-01-760296
  • 농협. 301-0234-1423-01
  • IBK기업은행. 506-080015-01-016
배송 안내
  • 배송 방법 : 택배
  • 배송 지역 : 전국지역
  • 배송 비용 : 조건부 무료 : 주문 금액 100,000원 미만일 때 배송비 3,000원을 추가합니다.
  • 배송 기간 : 1일 ~ 2일
  • 배송 안내 :
    - 제주도, 산간벽지나 도서지방은 별도의 추가금액을 지불하셔야 하는 경우가 있습니다.
    고객님께서 주문하신 상품은 입금 확인후 배송해 드립니다. 다만, 상품종류에 따라서 상품의 배송이 다소 지연될 수 있습니다.
교환/반품 안내
교환 및 반품이 가능한 경우
- 상품을 공급 받으신 날로부터 7일이내 단, 가전제품의
  경우 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우에는 교환/반품이 불가능합니다.
- 공급받으신 상품 및 용역의 내용이 표시.광고 내용과
  다르거나 다르게 이행된 경우에는 공급받은 날로부터 3월이내, 그사실을 알게 된 날로부터 30일이내

교환 및 반품이 불가능한 경우
- 고객님의 책임 있는 사유로 상품등이 멸실 또는 훼손된 경우. 단, 상품의 내용을 확인하기 위하여
  포장 등을 훼손한 경우는 제외
- 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우
  (예 : 가전제품, 식품, 음반 등, 단 액정화면이 부착된 노트북, LCD모니터, 디지털 카메라 등의 불량화소에
  따른 반품/교환은 제조사 기준에 따릅니다.)
- 고객님의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 단, 화장품등의 경우 시용제품을
  제공한 경우에 한 합니다.
- 시간의 경과에 의하여 재판매가 곤란할 정도로 상품등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품등의 포장을 훼손한 경우
  (자세한 내용은 고객만족센터 1:1 E-MAIL상담을 이용해 주시기 바랍니다.)

※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.
  (색상 교환, 사이즈 교환 등 포함)
«
»