중급⏱ 예상 시간: 40분📝 5단계

DC모터 선풍기

가변저항으로 DC모터의 속도를 제어하고, LCD에 현재 풍량 단계를 표시하는 미니 선풍기를 만듭니다.

🧩 필요한 모듈

Arduino Uno
브레드보드
DC 모터
점퍼 와이어
LCD 디스플레이 (I2C 16x2)
모터 드라이버 (L298N)
가변 저항 (포텐셔미터)
저항 (220Ω / 10kΩ)

📖 단계별 설명서

📝

1단계준비물 확인

다음 부품들을 준비해주세요:

  • Arduino Uno 1개
  • 브레드보드 1개
  • 점퍼 와이어 12개
  • DC 모터 1개
  • 모터 드라이버 (L298N) 1개
  • 가변저항 1개
  • I2C LCD 디스플레이 1개
  • 저항 (필요시)

💡 팁: DC 모터는 아두이노 핀으로 직접 구동하면 안 됩니다. 반드시 모터 드라이버를 사용해주세요!

📝

2단계회로 연결하기

  1. L298N의 IN1을 D5(PWM), IN2를 D4에 연결합니다.
  2. L298N의 ENA를 D6(PWM)에 연결합니다 (점퍼 제거).
  3. DC 모터를 L298N의 OUT1, OUT2에 연결합니다.
  4. L298N의 12V에 외부 전원 또는 Vin, GND를 GND에 연결합니다.
  5. 가변저항을 A0에 연결합니다.
  6. LCD의 SDA를 A4, SCL을 A5에 연결합니다.

📐 회로도

회로도 이미지

/images/projects/dc-fan-circuit.png

📝

3단계코드 작성하기

code.ino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int ENA = 6;
const int IN1 = 5;
const int IN2 = 4;
const int POT = A0;

void setup() {
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);

  // 정방향 회전 설정
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);

  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Mini Fan Control");
}

void loop() {
  int potValue = analogRead(POT);
  int speed = map(potValue, 0, 1023, 0, 255);
  int level = map(speed, 0, 255, 0, 5);

  analogWrite(ENA, speed);

  lcd.setCursor(0, 1);
  lcd.print("Speed: ");
  // 막대 그래프 표시
  for (int i = 0; i < 5; i++) {
    lcd.print(i < level ? (char)0xFF : '_');
  }
  lcd.print(" Lv");
  lcd.print(level);
  lcd.print(" ");

  delay(100);
}
+26 줄 더 보기
📝

4단계업로드 및 테스트

  1. 코드를 업로드합니다.
  2. 가변저항을 돌려 모터 속도가 변하는지 확인합니다.
  3. LCD에 현재 풍량 단계가 표시되는지 확인합니다.
  4. 가변저항을 최소로 돌리면 모터가 정지합니다.

💡 팁: 모터에 종이 프로펠러를 붙이면 실제 선풍기처럼 바람이 납니다. 모터가 돌지 않으면 L298N의 전원 공급을 확인하세요.

📝

5단계심화 — 온도 기반 자동 조절

온도 센서를 추가하면 실내 온도에 따라 자동으로 풍량을 조절하는 스마트 선풍기를 만들 수 있습니다.

🎉

축하합니다!

"DC모터 선풍기" 프로젝트를 완성했습니다!