Reporting Date: November. 19, 2024
AC 모터와 DC 모터의 전반적인 개념과
서보 모터를 제어하는 실습에 대해 다루고자 한다.
목차01 AC 모터
⌎1. AC 모터의 장단점
⌎2. AC 모터의 저전압 범위
⌎3. 3상 교류 전원 모터
⌎4. AC 모터의 종류02 DC 모터
⌎1. DC 모터의 장단점
⌎2. DC 모터의 저전압 범위
⌎3. 브러시리스 직류 모터
⌎4. 스테핑 모터
⌎5. 서보 모터
모터의 종류
01 AC 모터
교류(Alternating Current) 전원을 사용하여
회전 운동(기계적 에너지)을 생성하는 전동기.
전류가 교대로 방향을 바꾸는 교류 전기를 통해 자기장을 생성하고,
이를 이용해 로터(Rotor)를 회전시켜 동력을 전달한다.
구조가 간단하고 유지보수가 용이하며, 효율성과 내구성이 높아
산업용 기계, 가전제품, HVAC 시스템 등 다양한 분야에서 널리 사용된다.
1. AC 모터의 장단점
① AC 모터의 장점
높은 전력 효율을 제공하며, 저비용으로 고출력을 얻을 수 있다.
유지보수가 쉽고 수명이 길며, 가전제품, 산업 장비, 팬, 펌프,
컨베이어 등 다양한 곳에 사용된다.
또한, 브러시가 없는 간단한 구조를 가지고 있으며,
이로 인해 생산 비용이 낮은 경우가 많다.
② AC 모터의 단점
DC 모터에 비해 정밀한 속도 제어가 어렵다.
단, 인버터와 같은 속도 제어 장치(VFD)를 추가하면 개선된다.
동작 속도가 입력 주파수에 의존하므로, 주파수를 변경해야 속도 제어가 가능하다.
전압 변동이나 고조파 왜곡에 민감할 수 있으며, 특히 유도 모터는 기동 시
토크가 낮아 부하를 견디기 어렵다.
2. AC 모터의 저전압 범위
국제 표준(IEC 60364), RMS 기준 50 ~ 1,000V.
한국 전기설비 규정(KESC), 50V ~ 750V 범위를 저압으로 정의한다.
① 110V
주로 저전압 단상 교류로, 미국, 캐나다, 일본 등
일부 국가에서 가정용 및 상업용 전력으로 사용된다.
감전 위험이 상대적으로 낮고, 소형 가전제품 및 전자기기에 적합하지만
동일한 전력을 전달하려면 높은 전류가 필요하므로 더 굵은 전선이 요구되며,
전력 손실이 더 크다는 단점이 있다.
② 220V
대부분의 유럽, 아시아, 아프리카 국가에서 표준 전압으로 사용된다.
주로 단상 교류로 공급되며, 일부 고출력 장비에서는 삼상 전원으로도 사용된다.
높은 전압으로 전력 전달 효율이 좋고, 고출력 가전제품(에어컨, 세탁기 등)에 적합하다.
그러나 110V에 비해 감전 위험이 높다.
③ 340V
주로 삼상 전력 시스템에서 나타나는 피크 전압으로,
교류 전력의 전압 파형에서 최대값을 의미한다.
교류 전압의 RMS(Root Mean Square) 값이 220V인 경우,
피크 전압은 311V이며, 편의상 약 340V로 표기한다.
삼상 교류 시스템에서는 일반적으로
220V의 선간 전압에 해당하는 피크 전압으로 간주된다.
삼상 인버터를 통해 모터를 구동하거나 전력 변환 장치에서 사용된다.
3. 3상 교류 전원 모터
(Three-phase AC Motor)
① 3상 전원은 교류 전원(AC)의 한 형태이다.
교류 전원은 시간이 지남에 따라 주기적으로 변화하는 전압/전류를 의미하며,
각 교류 전원이 120도 위상 차이를 가지는 3개의 전력선(위상, phase)으로 구성된 시스템이다.
이것은 모터의 고정자(Stator)에 연결된
3개의 위상 전원이 회전하는 자기장을 생성한다.
생성된 자기장은 회전자(로터)를 회전시켜 동작하는 원리이다.
② 3상 전원은 오직 교류 전원으로만 구현 가능하다.
DC 전원(직류)은 일정한 전압을 제공하므로 위상 개념이 없다.
반면, 교류는 시간에 따라 전압이 주기적으로 변화하므로
위상 차이를 만들어낼 수 있다.
3상 전원은 단상 전원보다 전력을 더 효율적으로 전달하고,
3상 교류는 균일한 회전 자기장을 생성해 모터의 동작이 부드럽다.
4. AC 모터의 종류
① 유도 모터 (Induction Motor)
고정자에 공급되는 교류 전류에 의해 생성된 자기장과,
회전자에서 유도된 전류 사이의 상호작용으로 동작하는 모터.
별도의 전원을 회전자에 공급하지 않아도 동작할 수 있는 점이 특징이다.
고정자의 교류 전류가 회전하는 자기장을 생성하며,
회전자에 전자기 유도를 통해 전류를 발생시킨다.
회전자에 유도된 전류와 고정자의 자기장이 상호작용하여
전자기력을 발생시키고, 이로 인해 회전자가 회전한다.
회전자는 고정자의 자기장보다 느리게 회전하며,
이 속도 차이를 슬립(Slip)이라고 한다.
슬립이 없으면 유도가 발생하지 않아
회전력이 생성되지 않는다.
② 동기 모터 (Synchronous Motor)
고정자의 교류 전류에 의해 생성된 자기장과,
회전자의 자기장이 정확히 동기화되어 동일한 속도로 회전하는 모터.
회전자에 별도의 직류 전원을 공급하여 동작한다.
고정자의 교류 전류가 회전하는 자기장을 생성하며,
이 자기장은 고정된 주파수에 따라 동기 속도로 회전한다.
동기 속도는 다음 공식으로 계산된다.
회전자에 직류 전류를 공급하여 고정된 자기장을 생성한다.
고정자의 회전 자기장과 회전자의 자기장이 정확히
동기화되어 같은 속도로 회전한다.
고정자의 자기장과 회전자의 자기장이
동기화 상태를 유지하므로 슬립이 없다.
02 DC 모터
직류(Direct Current) 전원을 사용하여
회전 운동(기계적 에너지)을 생성하는 전동기.
전기자(Armature)에 흐르는 전류와 고정자의 자기장 사이의
상호작용으로 회전력을 생성되며, 전압의 극성에 따라 회전 방향이 결정된다.
속도와 토크를 쉽게 제어할 수 있는 특징이 있다.
1. DC 모터의 장단점
DC 모터 장점
① 정밀한 위치 제어가 가능하다.
전압과 전류에 비례하여 회전 속도와 위치를 조절 가능하기 때문이다.
특히 속도와 위치를 직관적으로 제어할 수 있다는 점에서 유리하다.
② 피드백 장치 없이 속도 제어는 가능하다.
엔코더나 센서 같은 추가적인 피드백 시스템을 갖출 경우
위치 제어도 정확하게 이루어진다.
DC 모터 단점
① 고속 회전에 제한이 있다.
이는 브러시와 전기자 사이의 마찰로 인해 마모와 발열이 발생할 수 있기 때문이다.
고속 회전 시 효율이 떨어지고, 브러시의 수명이 줄어드는 문제가 발생한다.
② 큰 토크를 제공하기 위해 복잡한 설계 필요하다.
큰 토크를 제공하려면 큰 전류가 필요하며,
이로 인해 전선 두께나 전력 소비가 커지고 설계가 복잡해질 수 있다.
특히 큰 출력 토크를 요구하는 애플리케이션에서는 다양한 설계와 시스템이 필요할 수 있다.
2. DC 모터의 저전압 범위
국제 표준(IEC 60364), 120V ~ 1,500V 범위를 저압으로 간주한다.
한국 전기설비 규정(KESC)에 경우, 별도로 정의되어 있지 않다.
① 1.5V ~ 3V
대부분의 배터리 기반 소형 전자 기기에서 사용된다.
1.5V는 AA, AAA 건전지(리모컨, 시계, 장난감 등).
3V는 CR2032 리튬 버튼형 배터리 (전자시계, 일부 센서).
② 5V
USB 2.0 및 3.0의 표준 전압.
스마트폰, 태블릿, 소형 전자 기기의 충전에서 가장 일반적으로 사용된다.
③ 9V ~ 12V
Qualcomm Quick Charge과 같은
고속 충전 기술에서 적용되는 전압.
9V는 사각 배터리 (휴대용 라디오, 간단한 전자 장치),
12V는 자동차 키 배터리, 소형 무선 기기 등으로 사용된다.
④ 12V ~ 48V
저전압에서 고효율이 요구되는 시스템에 적합하다.
자동차 배터리, LED 조명에서 기본 전압으로 사용하며,
시동 모터와 조명 시스템에 전력을 공급한다.
전기 자전거는 일반적으로 24V 배터리를 사용하며,
모터 구동 및 속도 제어한다.
태양광 패널에서 생성된 전력은 저장 가능한
배터리의 용량에 따라 활용 방식이 달라진다.
12V 패널은 소형 가전제품(휴대용 충전기, LED 랜턴)에 사용되며,
24V 패널은 캠핑카 용품(냉장고, 조명, 물 펌프)에 적합하다.
48V 패널은 대규모 시스템 및 산업용
(에어컨, 전기 자동차(EV), 캠핑카(RV) 대형 보트)에서 활용된다.
태양광 패널의 출력은 일반적으로
컨버터(인버터)를 통해 AC로 변환되어 사용된다.
3. 브러시리스 직류 모터
(Brushless DC Motor)
① 브러시가 없는 구조의 직류 모터.
전자적으로 전류를 스위칭하여 회전자와 고정자 사이의 자기장을 생성하여 동작하며,
일반적인 DC 모터와 달리 브러시가 없어 마찰과 소음을 줄이고, 더 높은 효율과 긴 수명을 제공한다.
② 고정자는 여러 개의 전기 코일로 구성되어 전류를 통해 자기장을 생성하며,
회전자는 자석으로 구성되어 생성된 자기장과 상호작용하여 회전한다.
회전자의 위치를 감지해 고정자 권선에 전류를 순차적으로 공급하고,
이를 통해 부드럽고 효율적인 회전을 유도한다.
③ 직류 전원을 기반으로 설계되었지만,
전자적으로 교류 전류처럼 동작하도록 제어된다.
보통 DC 전원을 인버터 회로를 통해 3상 교류처럼 동작하도록 변환하여 사용된다.
따라서 BLDC 모터는 직류 및 교류 시스템 모두에서 활용 가능하지만,
내부적으로는 전력 전자 장치를 통해 제어된다.
4. 스테핑 모터
(Stepping Motor)
① 입력 신호에 따라 정확한 각도로 회전한다.
입력된 펄스 신호에 따라 일정한 각도(스텝)로 회전하며,
이 특징 덕분에 정밀한 위치 제어가 가능하다.
② 고정자에 여러 개의 전기 코일이 배치되어 있으며,
이 코일에 전류를 순차적으로 공급해 자기장을 생성한다.
회전자는 자기장에 반응하여 고정자의 방향으로 회전하며,
입력된 펄스 신호에 따라 정해진 각도만큼 회전한다.
예를 들어, 1.8°/스텝 모터라면 1회전(360°)에 200개의 펄스가 필요하다.
스텝당 회전 각도가 정해져 있어 엔코더와 같은
별도의 피드백 장치가 없어도 개방형 루프 시스템으로 정밀한 제어가 가능하다.
③ 각도 제어가 정확하여 로봇 팔, 프린터, CNC 머신 등에 사용된다.
또한, 전원이 공급되는 동안 고정된 위치를 유지할 수 있으며,
펄스 신호의 주파수를 조절해 회전 속도를 제어한다.
④ 그러나 속도가 빨라지면 토크가 줄어드는 경향이 있으며,
전류가 계속 흐르므로 전력 소모가 비교적 크다.
개방형 루프 방식이므로 과부하나
미스스텝이 발생하면 위치 오차가 생길 수 있다.
5. 서보 모터
(Servo Motor)
정밀한 위치 제어가 가능한 전동기.
일반적인 모터와 달리, 위치 센서, 제어 회로, 기어박스 등을 포함하여
특정 각도나 위치를 정확하게 설정하고 유지할 수 있도록 설계된다.
전기 신호에 따라 회전각을 제어하며,
피드백 시스템(위치 센서)을 통해 동작 상태를 감지한다.
힘과 정밀도를 동시에 요구하는 기계에 적합하여,
로봇 공학, 자동화 시스템, 항공기 서보 시스템에서 사용된다.
서보 모터의 장점
① 전기 신호에 따라 정확한 위치와 속도를 제어할 수 있는 장치이다.
위치 센서가 내장되어 있어 회전자의 현재 위치를 실시간으로 감지하고,
이를 바탕으로 제어 신호를 전송하여 정확한 위치 조정을 수행한다.
이 시스템은 피드백 제어를 통해 모터의 위치를 정밀하게 맞추고
지속적으로 속도와 방향을 조절할 수 있게 해준다.
② 작은 크기 대비 높은 출력 토크를 제공할 수 있으며,
일정한 토크를 유지하면서 작동하는 것도 가능하다.
이는 서보 모터의 제어 회로가 동기화를 통해 모터가 부하에 맞게 토크를 조절하고,
불필요한 진동이나 토크 변화를 방지하는 방식으로 작동하기 때문이다.
서보 모터의 단점
① 스테핑 모터에 비해 상대적으로 높은 가격대를 가지고 있다.
위치 센서, 제어 회로, 기어박스 등 복잡한 구성 요소를
포함하고 있어 생산 비용이 더 많이 들기 때문이다.
따라서 예산이 제한된 프로젝트에서는
스테핑 모터가 더 경제적인 선택이 될 수 있다.
② 정밀한 위치 제어와 피드백 시스템을 요구하므로,
이를 위한 복잡한 제어 회로가 필요하다.
이는 더 많은 전자 회로 설계와 프로그래밍 작업이 요구되며,
제어 회로의 설계와 유지보수가 상대적으로 어려울 수 있다.
03 PWM
(펄스 폭 변조, Pulse Width Modulation)
주기적인 펄스를 사용하여 신호의 평균 전압을 조절하는 방법.
이 방식은 디지털 신호의 "ON" 시간과 "OFF" 시간을
비율로 조절하여 아날로그 신호처럼 동작하게 만든다.
1. 듀티 사이클
(Duty Cycle)
High 상태(1)와 Low 상태(0)의 비율을 나타낸다.
주기 전체에서 High 상태가 차지하는 비율(%)을 표현한 것으로,
주기가 1일 때, High 상태가 주기의 70%를 차지하고, Low 상태가 30%를 차지한다.
즉, 7:3 비율이며, 듀티 사이클은 70%이다.
2. 듀티 사이클의 활용
① 모터에 전달되는 평균 전력을 조절할 수 있으며,
높을수록 모터에 더 많은 전력이 공급되어 회전 속도가 빨라진다.
또한, PWM 신호의 극성을 변경하면, 모터의 회전 방향을 반대로 바꿀 수 있다.
② LED에 공급되는 평균 전력을 변경할 수 있으며,
높을수록 LED가 더 밝게 빛난다.
③ 오디오 시스템에 적용하여,
신호의 크기(볼륨)나 음색을 제어할 수 있다.
3. PWM의 장단점
PWM의 장점
① 신호가 완전히 켜지거나 꺼지기만 하는 스위칭 방식으로 동작하여,
전력 손실이 적고 효율적인 전력 제어가 가능하다.
② 듀티 사이클을 조정하여 출력의 전압과
속도, 밝기 등을 정밀하게 제어할 수 있다.
PWM의 단점
① 고주파 스위칭을 사용하므로 일부 장치에서
전자기파 간섭(EMI)이나 고주파 잡음이 발생할 수 있다.
② 계단형 파형을 가지므로, 출력이 부드럽지 않거나 불규칙할 수 있다.
이로 인해 부드러운 아날로그 신호가 필요한 경우, 필터링이 추가적으로 필요할 수 있다.
04 타이머 및 카운터
프로세서 내부에서 시간을 측정하거나
신호를 카운트할 때 사용하는 주요 하드웨어 구성 요소.
이를 통해 정밀한 시간 제어 및 주기적인 신호 처리가 가능하다.
타이머와 카운터에는 여러 모드가 존재하며, 각각의 모드는 다양한 용도로 활용된다.
1. 정상 모드
(Normal Mode)
타이머가 0에서 최대값(예: 255)까지
카운트한 뒤 0으로 다시 돌아가는 단순 동작.
일반적인 I/O 핀에서 신호 출력 없이 내부에서만 카운트를 수행하며,
간단한 시간 측정을 하거나 오버플로우를 이용한 이벤트 트리거를 할 수 있다.
2. CTC 모드
(Clear Timer on Compare Match)
카운터 값이 비교 레지스터(OCR) 값과 일치하면
타이머가 초기화(0으로 리셋)되고, 이벤트가 발생한다.
3. PWM 모드
(Pulse Width Modulation)
듀티 사이클을 조절해 출력 신호의 폭을 제어한다.
이를 통해 모터 속도 및 방향 제어, 오디오 신호 생성,
디지털-아날로그 변환 등에 유용하게 사용된다.
① Fast PWM
빠르게 0부터 최대값까지 카운트하며,
듀티 사이클 변화가 즉각적으로 이뤄져 고속 동작에 적합하다.
② Phase Correct PWM
상승과 하강 카운트를 사용하여 신호의 대칭성을 유지하며,
노이즈를 줄이고 안정적인 출력을 제공한다.
05 하드웨어 연결 시 주의 사항
1. 선의 역할
갈색 선은 접지(GND)로, 전기 회로의 기준 전압을 제공한다.
빨간색 선은 전원(VCC)으로, 타이머나 장치에 필요한 전압을 공급한다.
오렌지 선은 신호선으로, 타이머의 출력 신호를 전달한다.
2. 전압 제한
신호선에는 프로세서가 지원하는 전압(예: 5V 이하)을 유지해야 한다.
5V보다 높은 전압을 공급하면 선이 손상될 수 있으므로, 과전압에 주의해야 한다.
3. 레지스터 및 리저브드 워드
프로세서 내 특정 레지스터를 설정하거나
리저브드 워드를 통해 기능을 활성화 하기.
예를 들어, PWM 모드를 사용하기 위해
특정 레지스터(OCR, TCCR 등) 설정하기.
팅커캐드(Tinkercad) 사이트로 들어간다.
Tinkercad - From mind to design in minutes
Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding.
www.tinkercad.com
첫 번째 실습
서보모터를 0°, 90°, 180°로 순차적으로 회전시키기.
이 코드는 펄스 폭의 개념에 기반해
서보모터의 각도를 제어하는 동작과 관련이 있다.
서보모터는 PWM 신호를 통해 각도를 제어하며,
펄스 폭(신호가 HIGH 상태로 유지되는 시간)에 따라 특정 각도로 움직인다.
미니멈 펄스: 서보모터가 0도에 위치하도록 하는 최소 펄스 폭.
맥스 펄스: 서보모터가 180도에 위치하도록 하는 최대 펄스 폭.
my_servo.write() 함수는 입력받은 각도에 따라
서보모터가 해당 위치로 이동하도록 내부적으로 PWM 신호를 생성한다.
따라서, write(0)는 미니멈 펄스, write(180)는 맥스 펄스를 의미한다고 볼 수 있다.
#include <Servo.h> // Servo 라이브러리 포함
Servo my_servo; // Servo 객체 생성
const int delay_time = 1000;
void setup() {
my_servo.attach(9); // 서보모터 핀 설정
}
void loop() {
my_servo.write(0); // 0도로 회전
delay(delay_time); // 대기
my_servo.write(90); // 90도로 회전
delay(delay_time); // 대기
my_servo.write(180); // 180도로 회전
delay(delay_time); // 대기
}
두 번째 실습
for 루프를 사용해 1도씩 천천히 이동시키기.
#include <Servo.h> // Servo 라이브러리를 포함하여 서보모터를 제어
Servo my_servo; // Servo 객체 생성
int pos = 0; // 서보모터의 각도를 저장할 변수 선언 및 초기화
int delay_time = 15; // 서보모터 이동 시 대기 시간 (밀리초)
void setup() {
my_servo.attach(9); // 서보모터의 신호 핀을 Arduino의 핀 9에 연결
}
void loop() {
// 서보모터를 0도에서 180도까지 회전시키는 반복문
for (pos = 0; pos <= 180; pos += 1) { // 0도에서 180도까지 1도씩 증가
my_servo.write(pos); // 현재 각도로 서보모터 회전
delay(delay_time); // 각도 변경 후 잠시 대기 (15ms)
}
// 서보모터를 180도에서 0도로 되돌리는 반복문
for (pos = 180; pos >= 0; pos -= 1) { // 180도에서 0도까지 1도씩 감소
my_servo.write(pos); // 현재 각도로 서보모터 회전
delay(delay_time); // 각도 변경 후 잠시 대기 (15ms)
}
}
세 번째 실습
while 루프를 사용해 각도를 1도씩 증가시키고,
for 루프를 사용해 각도를 1도씩 감소시키기.
#include <Servo.h> // Servo 라이브러리 포함
Servo my_servo; // Servo 객체 생성
int pos = 0; // 서보모터 각도 저장 변수
int delay_time = 15; // 딜레이 시간(15ms)
void setup() {
my_servo.attach(9); // 서보모터 제어 핀을 9번 핀에 연결
}
void loop() {
// 각도를 0도에서 180도까지 증가시키며 서보모터 제어
while (pos < 180) {
my_servo.write(pos); // 현재 각도 pos로 서보모터 이동
pos++; // 각도 증가
delay(delay_time); // 딜레이
}
// 각도를 180도에서 0도까지 감소시키며 서보모터 제어
for (pos = 179; pos >= 0; pos--) {
my_servo.write(pos); // 현재 각도 pos로 서보모터 이동
delay(delay_time); // 딜레이
}
}
네 번째 실습
버튼을 눌렀을 때 서보모터의 각도를 30도씩 증가시키기.
#include <Servo.h> // Servo 라이브러리 포함
Servo my_servo; // Servo 객체 생성
int button = 2; // 버튼 핀 정의
int pos = 0; // 서보모터의 초기 각도
int button_state = 0; // 버튼 상태 저장 변수
void setup() {
my_servo.attach(9); // 서보모터 제어 핀을 9번 핀에 연결
pinMode(button, INPUT_PULLUP); // 버튼 핀을 입력으로 설정 (내부 풀업 저항 사용)
my_servo.write(0); // 서보모터 초기 위치를 0도로 설정
}
void loop() {
button_state = digitalRead(button); // 버튼 상태 읽기
// 버튼이 눌렸을 때 (LOW 상태일 때) 서보모터 각도를 30도씩 증가
if (button_state == LOW) {
pos += 30; // 30도씩 증가
if (pos >= 180) { // 180도를 초과하면 0도로 리셋
pos = 0;
}
my_servo.write(pos); // 서보모터에 새로운 각도 값 전달
delay(300); // 300ms 딜레이 (버튼 여러 번 눌리는 걸 방지)
}
}
참고: 한 권으로 끝내는 아두이노와 파이썬으로 52개 작품 만들기 (p.96)
'2024 - 2학기 > 전자공학' 카테고리의 다른 글
02_8 CDS 센서 입력받기 (4) | 2025.01.26 |
---|---|
02_6 가변 저항 값 입력받기 (4) | 2025.01.23 |
02_5 버튼 입력받기 (0) | 2025.01.23 |
02_2 7세그먼트 디스플레이 (0) | 2025.01.21 |
02_1 전류 소자와 반도체의 기초 (0) | 2025.01.21 |