-
아두이노 라이브러리 | 서보모터 Servo.hTechnology/Arduino 2024. 1. 19. 18:00
1. 아두이노 라이브러리
LED나 택트 스위치와 같이 간단한 전자 소자는 아두이노 플랫폼에서 지원하는 함수를 이용하여 쉽게 제어할 수 있지만, 초음파 센서와 서보모터 같이 특별한 기능을 가진 장치를 사용하기 위해서는 장치의 동작 원리와 제어 방법을 알아야 한다. 그러나 아두이노 플랫폼에서는 동작 원리와 제어 방법을 모르더라도 이러한 장치들을 간단하게 제어할 수 있도록 다양한 라이브러리를 지원하고 있다. 아래 링크로 접속하면 아두이노 플랫폼에서 지원하는 라이브러리에 대한 정보를 확인할 수있다.
Libraries - Arduino Reference
Libraries The Arduino environment can be extended through the use of libraries, just like most programming platforms. Libraries provide extra functionality for use in sketches, e.g. working with hardware or manipulating data. To use a library in a sketch,
www.arduino.cc
2. 서보모터
서보모터 서보모터(Servo motor)는 신호선을 통해 입력받은 디지털 신호에 따라 특정한 각도로 동작하는 구동기로, 정확한 동작 제어가 필요한 경우에 사용된다. 서보모터는 DC모터와 기어박스, 가변저항, 제어기로 구성되어 있으며, 신호선을 통해 디지털 신호를 받으면 제어기로 DC모터를 제어하여 신호에 따른 각도로 회전한다. 또한 가변저항을 포함하고 있기 때문에 현재 회전 각도가 어떠한지 확인할 수 있다. 일반적으로 서보모터에는 세 가닥의 전선이 있는데, 빨간색 전선은 서보모터에 전원을 공급하기 위한 전원선, 갈색 혹은 검은색 전선은 접지선, 주황색 혹은 흰색 전선은 서보모터에 신호를 전달하기 위한 신호선이다. 아두이노 플랫폼에서 자주 사용되는 5V 서보모터 SG-90은 아래 링크로 접속하면 구매할 수 있다.
TowerPro 호환 9g 미니 서보모터 SG-90
대표 미니 서보모터, 토크 : 1.8kg/cm(4.8V), Operating speed : 0.1sec/60degree(4.8v)
www.devicemart.co.kr
3. 제어 방법
서보모터 PWM 제어 서보모터도 PWM 신호를 받아 동작한다. 펄스의 한 주기 20 ms에서 1.0 ms동안 디지털 신호 HIGH를 유지하면 서보모터는 0도로 회전하고, 2.0 ms동안 디지털 신호 HIGH를 유지하면 180도로 회전한다. 0도와 180도 사이 각도는 디저털 신호 HIGH를 유지한 시간에 비례한다. 이와 같이 서보모터에 PWM 신호를 주어 제어하는 방법도 있지만, 아두이노 플랫폼은 사용자가 서보모터를 직관적으로 제어할 수 있도록 서보모터 라이브러리를 제공하고 있다. 아두이노 플랫폼에서 제공하는 서보모터 라이브러리를 사용하면 서보모터 신호선을 PWM 신호 출력이 가능한 디지털 입출력 핀과 연결할 필요가 없다. 다만 해당 라이브러리를 사용하면 PWM 신호 출력이 가능한 9번 핀과 10번 핀은 PWM 출력을 사용할 수 없게 되므로 주의하도록 하자. 아래 링크로 접속하면 아두이노 플랫폼에서 지원하는 서보모터 라이브러리와 이에 대한 설명을 확인할 수 있다.
Servo - Arduino Reference
Allows Arduino boards to control a variety of servo motors. This library can control a great number of servos. It makes careful use of timers: the library can control 12 servos using only 1 timer. On the Arduino Due you can control up to 60 servos. This li
www.arduino.cc
4. 예제
4.1. 회로 구성
회로 구성 4.2. 프로그램 작성
#include <Servo.h> // 서보모터 라이브러리 추가 Servo myServo; // myServo라는 이름의 서보모터 객체 생성 void setup() { myServo.attach(12); // 서보모터를 제어할 핀으로 12번 핀을 설정 Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600 bps) } void loop() { myServo.write(0); // 서보모터를 0도로 회전 Serial.print("Angle: "); // 시리얼 모니터에 문자열을 출력 // 시리얼 모니터의 현재 서보모터의 각도를 출력한 뒤 줄 바꿈 Serial.println(myServo.read()); delay(3000); // 3000 ms 대기 myServo.write(90); // 서보모터를 90도로 회전 Serial.print("Angle: "); Serial.println(myServo.read()); delay(3000); myServo.write(180); // 서보모터를 180도로 회전 Serial.print("Angle: "); Serial.println(myServo.read()); delay(3000); int i = 0; while (i <= 180) // 서보모터를 10도씩 회전 { myServo.write(i); Serial.print("Angle: "); Serial.println(myServo.read()); delay(1000); i += 10; } delay(1000); while (i >= 0) // 서보모터를 10도씩 역회전 { myServo.write(i); Serial.print("Angle: "); Serial.println(myServo.read()); delay(1000); i -= 10; } delay(1000); }
[함께 읽으면 좋은 페이지]
아두이노 | DC모터 PWM 제어
1. DC모터 DC모터는 직류(Direct Current, DC) 전원을 공급하면 구동축이 회전하는 구동기이다. 부가 기능이 없는 DC모터에는 두 개의 전극이 노출되어 있는데, 여기에 DC 전원을 연결하면 구동축이
vedacube.tistory.com
아두이노 프로젝트 | 마이크로 서보 로봇
1. 마이크로 서보 로봇 마이크로 서보 로봇 제조 공장에서 흔하게 볼 수 있는 로봇과, 로봇을 제어하기 위한 모형을 아두이노 플랫폼으로 구현해보자. 구현하고자 하는 로봇은 서보모터 4개로,
vedacube.tistory.com
아두이노 라이브러리 | 서보모터 정밀 제어
1. 서보모터 정밀 제어 TowerPro 호환 9g 미니 서보모터 SG-90대표 미니 서보모터, 토크 : 1.8kg/cm(4.8V), Operating speed : 0.1sec/60degree(4.8v)www.devicemart.co.kr 2. 예제2.1. 회로 구성 2.2. 프로그램 작성#include
vedacube.tistory.com
참고문헌
- 최훈. (2022). 팅커캐드 & 아두이노. 길벗캠퍼스.
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 | PIR 센서 모듈 HC-SR501 (0) 2024.02.02 아두이노 프로젝트 | 마이크로 서보 로봇 (0) 2024.01.26 아두이노 | DC모터 드라이버 L298N 모듈 (0) 2024.01.12 아두이노 | DC모터 드라이버 L293D 모듈 (1) 2024.01.05 아두이노 | DC모터 드라이버 L293D (0) 2024.01.05