저는 Arduino와이 포럼에 처음 왔으며이 튜토리얼 외에도 첫 번째 Arduino 프로젝트입니다.Arduino 및 RC 송신기
저는 rc 송신기/수신기와 Arudino를 사용하여 서보를 제어하려고합니다. RC 수신기에 서보를 직접 연결하는 대신 Arduino를 사용하는 이유는 RC가 1000Hz ~ 2000Hz의 PWM을 생성 할 수 있지만 내 서보의 전체 동작 범위를 얻으려면 600Hz ~ 2400Hz의 PWM이 필요하기 때문입니다 . 내가 시도한 것은 pulseIn()에서 값을 읽은 다음이 값을 아래의 코드 (서보 라이브러리를 사용)로 작성된대로 0에서 180도까지 매핑하는 것입니다.
그러나이 코드를 사용하면 모터 동작이 이상합니다. 라디오 송신기 제어 스틱을 이동 범위 내에서 움직이면 모터는 0도에서 45도까지 회전하고 다시 45에서 0, 0에서 45까지 회전하고 0에서 180도까지 스위핑하는 대신 다시 0으로 돌아갑니다. 누구든지 도움이나 조언을 제공해 줄 수 있습니까?
는 https://robotics.stackexchange.com/에 대한 자세한 아두 이노/서보 행운을 가질 수있다, 참고로 당신에게#include <Servo.h>
Servo myservo;
int ch1;
int ch2;
int ch3;
int degree;
void setup() {
pinMode(7, INPUT);
myservo.attach(9);
Serial.begin(9600);
}
void loop() {
ch3 = pulseIn(7, HIGH, 25000);
degree = ((ch3-1250)* 180)/700;
Serial.print("Channel 3:");
Serial.println(ch3);
myservo.write(degree);
delay(5); // waits 5ms for the servo to reach the position
}
서보는 _width_ modulated 신호로 제어됩니다. 너비 단위는 빈도가 아닌 시간입니다. 위의 질문에서 입력 값은 1000 - 2000 마이크로 초입니다. 원하는 출력은 전체 각도 회전을 얻기 위해 600-2400 마이크로 초입니다. 질문에 'Hz'를 추가하는 수정이 잘못되었습니다. – jdr5ca