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

아두이노 PWM 마스터: 원리·함수·실전 코드로 모터·LED 제어하기

아두이노 PWM(Pulse Width Modulation) 프로그래밍 완전 정복

PWM이란?

PWM(펄스 폭 변조)은 고정된 주파수의 펄스에서 듀티 사이클(Duty Cycle, ON 시간 비율)을 조절해 평균 전압/전력을 제어하는 기법입니다. 직류 전압을 가변 펄스 폭의 사각파로 변환하며, 펄스 지속 시간 기법(PDT)이라고도 합니다.

모스펫·트랜지스터 등 파워 스위칭 소자가 필요하며, 고전력 제어 시 정교한 구동 회로 요구됩니다.

왜 PWM인가? (저항 분압 대비 장점)

PWM 주요 활용 분야

  1. 서보 모터: 듀티 사이클에 비례해 회전각 제어
  2. RGB LED: R/G/B 각 채널 듀티 조절로 풀 컬러 구현
  3. DC-DC 컨버터: 효율적 전력 변환/제한
  4. DC 모터 속도 제어: 듀티 비례 평균 전압으로 회전수 제어
  5. 정현파 생성·전압 레벨 제어: 고급 인버터·오디오 앰프 등

PWM 주파수 선정 중요성

주파수가 너무 낮으면 모터가 펄스 간격마다 진동/저크(Jerk) 발생. 제어 대상의 기계적 시정수(Mechanical Time Constant) 고려해 주파수 선정 필수. 일반적으로 모터 제어는 수 kHz~수십 kHz 대역 사용.

아두이노 PWM 핀과 핵심 함수

Arduino UNO 기준 PWM 지원 핀: 3, 5, 6, 9, 10, 11번 (6개) — 핀 옆에 ~ 표시로 구분.

analogWrite(pin, value)

실전 예제: LED 밝기 페이드 인/아웃

int ledPin = 3;        // PWM 핀 (3번)
int brightness = 0;    // 초기 밝기 0
int fadeAmount = 5;    // 단계별 증감량

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  analogWrite(ledPin, brightness); // PWM 출력
  brightness += fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount; // 방향 반전
  }
  delay(30); // 부드러운 변화용 지연
}

밝기 0→255→0 무한 반복으로 자연스러운 페이드 효과 구현.

핵심 포인트 체크리스트

함께 보면 좋은 글

산업기술

  1. 아두이노 센서: 종류, 응용, 실전 프로젝트
  2. C 사용자 정의 함수 4가지 검증된 패턴
  3. 제조의 날: 진화, 영향, 산업 쇼케이스
  4. 아두이노 우노로 만드는 LCD 애니메이션 & 게임 기초
  5. 파이썬 3로 아두이노 우노 제어하기 – 시리얼 통신 LED 제어 기초
  6. 아두이노 나노와 RDA8057M으로 소형 FM 라디오 만들기
  7. 라즈베리 파이 3 & 아두이노 노트북 직접 만들기: 단계별 가이드
  8. EAM vs CMMS: 핵심 차이점과 주요 기능 이해하기
  9. 스마트 매뉴팩처링: 정의, 이점, 구현 방안
  10. 제조업 IoT 완벽 가이드: 핵심 개념, 적용 사례, 실전 예시