공부중

[Arduino] 모터 본문

프로그래밍/Arduino

[Arduino] 모터

복습 2025. 1. 25. 02:23
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