// education

아두이노 출력 이해하기 (디지털 출력과 PWM)

아두이노 입출력 핀에 전압을 내보내는 출력(Output) 제어는 가장 기본적인 액추에이터 제어 방식입니다.


1. 출력 제어 용어 사전 (Glossary)


2. 디지털 출력 (Digital Output) 실습

// 8번 핀에 연결된 외부 LED를 0.5초 간격으로 점멸
const int ledPin = 8;

void setup() {
  pinMode(ledPin, OUTPUT); // 8번 핀의 모드를 출력(OUTPUT)으로 지정
}

void loop() {
  digitalWrite(ledPin, HIGH); // 8번 핀 5V 출력 (LED ON)
  delay(500);
  digitalWrite(ledPin, LOW);  // 8번 핀 0V 출력 (LED OFF)
  delay(500);
}

3. PWM (펄스 폭 변조) 원리와 analogWrite()

아두이노 우노의 디지털 핀 중 물결표시(~)가 있는 3, 5, 6, 9, 10, 11번 핀은 약 490Hz (5, 6번은 980Hz)의 주파수로 PWM 출력을 지원합니다.

// 9번 PWM 핀을 활용한 LED Fade(숨쉬기) 효과
const int pwmPin = 9;

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

void loop() {
  // 밝기가 0에서 255까지 솟구침
  for (int b = 0; b <= 255; b += 5) {
    analogWrite(pwmPin, b);
    delay(20);
  }
  // 밝기가 255에서 0으로 떨어짐
  for (int b = 255; b >= 0; b -= 5) {
    analogWrite(pwmPin, b);
    delay(20);
  }
}

4. 피에조 부저 음계 제어 (tone() / noTone())

tone(pin, frequency, duration) 함수를 사용하면 구형파(Square Wave)를 발생시켜 음계를 연주할 수 있습니다.

음계 (Note) 주파수 (Hz) 비고
도 (C4) 262 Hz 4옥타브 도
레 (D4) 294 Hz
미 (E4) 330 Hz
파 (F4) 349 Hz
솔 (G4) 392 Hz
라 (A4) 440 Hz 표준 음고
시 (B4) 494 Hz
도 (C5) 523 Hz 5옥타브 도
const int buzzerPin = 5;
int melody[] = {262, 294, 330, 349, 392, 440, 494, 523};

void setup() {
  for (int i = 0; i < 8; i++) {
    tone(buzzerPin, melody[i], 250); // 0.25초 동안 해당 음 출력
    delay(300);
  }
  noTone(buzzerPin); // 소리 끄기
}
void loop() {}

5. 자주 묻는 질문 (Q&A)

Q. digitalWrite(13, 128) 같이 숫자를 적으면 어떻게 되나요? A. digitalWrite 함수는 0(LOW)이 아닌 모든 숫자를 단순히 HIGH(5V)로 인지하여 켜버립니다. 아날로그처럼 밝기를 조절하려면 반드시 analogWrite()를 써야 합니다.

← 이전전기전자 기본 상식 (전압, 전류, 저항, 옴의 법칙) 다음 →아두이노 입력 이해하기 (디지털 입력과 아날로그 입력)