BASIC4MCU | 질문게시판 | 아두이노우노 엔코더모터 서보모터 코드
페이지 정보
작성자 팔쟁이 작성일2023-09-07 20:53 조회1,813회 댓글1건본문
#include <Servo.h>
int motor1_ena = 3;
int motor1_in1 = 4;
int motor1_in2 = 5;
Servo myServo;
void setup() {
pinMode(motor1_ena, OUTPUT);
pinMode(motor1_in1, OUTPUT);
pinMode(motor1_in2, OUTPUT);
digitalWrite(motor1_in1, HIGH);
digitalWrite(motor1_in2, LOW);
analogWrite(motor1_ena, 255);
myServo.attach(8);
myServo.write(0);
}
void loop() {
// 모터 2와 서보모터 정지
myServo.write(0);
// 모터 1 천천히 회전
digitalWrite(motor1_in1, HIGH);
digitalWrite(motor1_in2, LOW);
analogWrite(motor1_ena, 150);
delay(800);
// 모터 1 빠르게 반대방향으로 회전
digitalWrite(motor1_in1, LOW);
digitalWrite(motor1_in2, HIGH);
analogWrite(motor1_ena, 255);
delay(400); /
myServo.write(90);
delay(400);
}
현재 캡스톤디자인으로 로봇팔이 진자운동과 같이 스윙을 해서 그리퍼의 물병을 던지는 것을 개발 중에 있습니다. 구체적으로, 1축 어깨부분에 d&g 기어형 엔코더 모터가 왕복 스윙을 하고, 그리퍼에 달린 서보모터가 문을 개폐하면 그리퍼안에 물병이 빠져나가서 수평거리 1.5m를 포물선을 그리며 날아가게 하는 것이 저희 목표입니다. 하지만 현재 제어가 매우 어려워 오픈루프로 코드를 구성해보고 있는데, 이조차도 되지않아서 여기 질문글에 남겨봅니다... 엔코더모터가 왕복스윙을 하고 적절한 타이밍에 서보모터가 열리는 단순한 코드를 구현하고싶은데, 위 코드로 해봐도 잘 되지않아서 많이 힘듭니다. 코드를 어떻게 수정해야할지 잘 모르겠습니다..!
댓글 1
조회수 1,813master님의 댓글
master 작성일서보모터가 90도 회전하는데 400ms 정도 걸리지 않나요?