산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

ServoTimer2 라이브러리 마스터: 서보 스윕 제어 심플 가이드

부품 및 소모품

서보 모터 (Tower Pro MG996R) ×1
아두이노 우노 (Arduino UNO) ×1
점퍼 와이어 (일반) ×1
UTSOURCE 전자 부품 ×1

프로젝트 소개

소개

최근 휴머노이드 로봇을 만들려고 시도했는데, 서보 모터 다루기가 필수였습니다. 모든 게 잘 작동했는데 로봇에 말하기 기능(TMRpcm 라이브러리 필요)을 추가하려니 문제가 생겼습니다.

TMRpcm.h, VirtualWire.h 같은 라이브러리는 아두이노 Timer1을 사용합니다. 동일한 타이머를 사용하는 두 장치를 동시에 사용할 수 없습니다. 그래서 로봇이 말하면 서보가 작동하지 않습니다. Servo.h와 TMRpcm 모두 Timer1을 사용하기 때문입니다.

둘 다 작동하게 하려면 서보용으로 다른 라이브러리가 필요한데, 그게 바로 ServoTimer2 라이브러리입니다. 이 라이브러리는 아두이노 Timer2를 사용합니다. 안타깝게도 인터넷에서 이 라이브러리 작동 원리와 코드 사용법을 설명한 튜토리얼을 찾지 못해, 저 같은 사람들이 이해할 수 있도록 튜토리얼을 만들기로 했습니다. 서보 모터 1개로 간단한 스윕 코드를 만들어보겠습니다.

영상을 보면 더 잘 이해하실 수 있습니다.

1단계: 부품 및 조립

메인 부품은 서보 모터입니다. 마이크로 서보 SG90을 사용했지만 어떤 모델이든 괜찮습니다.

서보 혼을 하드보드지에 붙여(각도 가시성 확보) 서보 모터에 장착합니다.

2단계: ServoTimer2 라이브러리 다운로드 및 아두이노에 추가

  1. 여기서 라이브러리 다운로드 후 아두이노 라이브러리 폴더에 붙여넣기
  2. 아두이노 IDE에서 스케치 → 라이브러리 포함 → .ZIP 라이브러리 추가 선택 후 라이브러리 폴더에서 파일 선택
  3. 이제 사용 준비 완료

3단계: 간단한 회로 구성

이게 가장 쉬운 부분입니다.

4단계: 코드

먼저 기존 Servo.h 라이브러리의 스윕 코드를 살펴봅시다. (모터가 0°→90°→1초 대기→180°→1초 대기)

#include <Servo.h>
Servo servo1;
void setup() {
  servo1.attach(6);
}
void loop() {
  servo1.write(0); delay(1000);
  servo1.write(90); delay(1000);
  servo1.write(180); delay(1000);
}

기존 라이브러리는 원하는 각도만 쓰면 서보가 알아서 이동합니다. 하지만 ServoTimer2 라이브러리는 펄스 폭(Pulse Width)을 직접 지정해야 합니다. 일반적으로 1500μs = 90°입니다. 최대 펄스 폭 2250μs ≈ 180°, 최소 750μs ≈ 0°지만 서보마다 다릅니다. 직접 값을 보내보며 확인하세요. 서보에 해가 되지 않습니다.

같은 동작을 ServoTimer2로 구현하면:

#include "ServoTimer2.h"
ServoTimer2 servo1;
void setup() {
  servo1.attach(6);
}
void loop() {
  servo1.write(750);  // 최소 펄스 폭 ≈ 0°
  delay(1000);
  servo1.write(1500); // 펄스 폭 ≈ 90°
  delay(1000);
  servo1.write(2250); // 최대 펄스 폭 ≈ 180°
  delay(1000);
}

이제 아두이노에 전원을 공급하고 각도기로 어떤 값에서 얼마나 회전하는지 확인하세요. 이렇게 하면 프로젝트에 적용할 수 있습니다. 즐거운 메이킹!

5단계: 아두이노 전원 켜고 실험

아두이노에 전원을 연결하고 각도기로 각 값에서 서보가 얼마나 회전하는지 측정하세요. 이 과정을 통해 여러분의 프로젝트를 완성할 수 있습니다. 즐거운 메이킹!

코드

서보 스윕 코드 (Servo.h)

C/C++

#include <Servo.h>
Servo servo1;
void setup() {
  servo1.attach(6);
}
void loop() {
  servo1.write(0); delay(1000);
  servo1.write(90); delay(1000);
  servo1.write(180); delay(1000);
}

ServoTimer2 스윕 코드

C/C++

#include "ServoTimer2.h"
ServoTimer2 servo1;
void setup() {
  servo1.attach(6);
}
void loop() {
  servo1.write(750);  // min pulse width for 0 degree
  delay(1000);
  servo1.write(1500); // pulse width for 90 degree
  delay(1000);
  servo1.write(2250); // max pulse width for around 180 degree
  delay(1000);
}

회로도

ServoTimer2 라이브러리 마스터: 서보 스윕 제어 심플 가이드

ServoTimer2 스윕 코드 GitHub: https://github.com/ashraf-minhaj/Arduino-ServoTimer2-basic-sweep-/tree/code-sweep

제조공정

  1. 몰리브덴이 현대 산업을 형성하는 방식: 용도, 이점, 공급 역학
  2. 라즈베리 파이와 아두이노로 로봇 만들기: 단계별 통합 가이드
  3. 심플 파이 로봇 – 라즈베리파이로 2WD 자율 로버 만들기
  4. 유리 섬유 생산 공정 완벽 가이드
  5. C언어 realloc() 활용법: 문법, 모범 사례, 실전 예제
  6. C언어 free() 함수 마스터하기: 실전 가이드와 예제
  7. 서미스터(NTC) 온도 센서 아두이노 활용 완전 정복 - 수식부터 구현까지
  8. SolidWorks에서 프로그레시브 컷어웨이 애니메이션 만들기 - 단계별 튜토리얼
  9. 성공적인 프로토타입 구축: 신속 제품 개발을 위한 단계별 가이드
  10. 커터 그라인더(Cutter Grinder) 마스터하기: 실전 기술 가이드