공부중
[Arduino] 모터 본문
728x90
1. 이론
1. DC 모터 (직류 모터)
- 설명: DC 모터는 직류 전원을 사용하여 작동합니다. 전압을 모터에 적용하면 모터 샤프트가 회전하기 시작합니다. 회전 속도는 공급되는 전압과 모터의 사양에 의존합니다.
- 제어 방법: DC 모터는 간단한 온/오프 제어부터 PWM(Pulse Width Modulation) 신호를 이용한 속도 제어까지 다양하게 제어할 수 있습니다. 또한, 모터 드라이버나 H-브리지 회로를 사용하여 회전 방향을 변경할 수 있습니다.
2. 서보 모터
- 설명: 서보 모터는 정확한 위치 제어가 가능하여 주로 원하는 각도로 정밀하게 회전해야 하는 어플리케이션에 사용됩니다. 서보는 내부적으로 위치 피드백 메커니즘을 가지고 있어 명령된 위치로 정확하게 이동할 수 있습니다.
- 제어 방법: 서보 모터는 PWM 신호를 사용하여 제어되며, PWM의 펄스 폭을 조절하여 모터 샤프트의 각도를 조절합니다. 아두이노의 Servo 라이브러리를 통해 쉽게 제어할 수 있습니다.
3. 스테퍼 모터
- 설명: 스테퍼 모터는 전기적 입력 펄스에 따라 정확한 각도로 회전하는 모터입니다. 각 펄스마다 일정한 각도로 회전하며, CNC 기계나 3D 프린터 등에서 많이 사용됩니다.
- 제어 방법: 스테퍼 모터는 각 스텝의 크기를 제어할 수 있는 펄스를 통해 제어되며, 시퀀스에 따라 코일을 활성화하여 모터 샤프트를 원하는 위치로 정밀하게 이동시킵니다.
2. 서보 모터 예제
#include <Servo.h> // 서보 라이브러리 포함
Servo servo; // 서보 객체 생성
int servoPin = 11; // 서보 모터가 연결된 핀 번호
int angle = 0; // 서보 위치를 저장할 변수 (도 단위)
void setup() {
servo.attach(servoPin); // 서보 모터를 핀에 연결
}
void loop() {
// 0도에서 180도까지 서보를 움직임
for(angle = 0; angle < 180; angle++) {
servo.write(angle); // 서보를 angle 각도로 회전
delay(15); // 각각의 위치에서 잠시 대기
}
// 180도에서 0도로 서보를 움직임
for(angle = 180; angle > 0; angle--) {
servo.write(angle); // 서보를 angle 각도로 회전
delay(15); // 각각의 위치에서 잠시 대기
}
}
3. 가변저항으로 서보모터 제어
#include <Servo.h> // 서보 라이브러리 포함
Servo servo; // 서보 객체 생성
int servoPin = 11; // 서보 모터가 연결된 핀 번호
void setup() {
servo.attach(servoPin); // 서보 모터를 핀에 연결
}
void loop() {
int servoAngle = analogRead(A0)/5;
servo.write(servoAngle); // 0~180
}
728x90
'프로그래밍 > Arduino' 카테고리의 다른 글
[Arduino] multi task (0) | 2025.01.25 |
---|---|
[Arduino] ESP32 드라이버 설치 및 연결 (0) | 2025.01.25 |
버스 공공데이터 활용 (0) | 2025.01.25 |
[Arduino] RGB LED, PWM (0) | 2025.01.24 |
[Arduino] 초음파 센서 (0) | 2025.01.24 |