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

아두이노 포텐셔미터 제어 LED 바 그래프: 초보자를 위한 아날로그 입력 실습

프로젝트 개요

아두이노 입문자를 위한 가장 직관적인 아날로그 입력-디지털 출력 예제입니다. 10개의 LED를 바 그래프 형태로 배열하고, 포텐셔미터(가변저항)를 돌려 아날로그 값(0~1023)을 읽어 LED 개수를 비례 제어합니다. map() 함수와 배열, 반복문의 기초를 익히기에 최적의 프로젝트입니다.

부품 목록

부품 수량 사양
Arduino UNO 1 메인 보드
LED 10 5mm, 색상 자유 (적색 추천)
저항 10 220Ω (LED 전류 제한용)
포텐셔미터 1 10kΩ 회전형
점퍼 와이어 13 브레드보드용
브레드보드 1 선택 사항

회로 구성

LED 바 그래프 (공통 캐소드)

포텐셔미터

완전 소스 코드

const int analogPin = A0;       // 포텐셔미터 연결 핀
const int ledCount = 10;        // LED 개수
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};  // LED 핀 배열

void setup() {
  // 모든 LED 핀을 출력 모드로 설정
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}

void loop() {
  // 1. 포텐셔미터 아날로그 값 읽기 (0~1023)
  int sensorReading = analogRead(analogPin);

  // 2. 0~1023 범위를 0~10(LED 개수) 범위로 매핑
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);

  // 3. LED 배열 순회하며 제어
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);  // 켜기
    } else {
      digitalWrite(ledPins[thisLed], LOW);   // 끄기
    }
  }
}

코드 핵심 포인트 해설

1. 배열 활용

int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};로 핀 번호를 배열에 저장하면 반복문으로 일괄 처리 가능합니다.

2. map() 함수

map(value, fromLow, fromHigh, toLow, toHigh)는 입력 범위를 출력 범위로 선형 변환합니다. 여기서는 10비트 ADC(1024단계)를 11단계(0~10개 LED)로 압축합니다.

3. 경계 조건 처리

thisLed < ledLevel 조건으로 ledLevel 미만 인덱스는 ON, 이상은 OFF 처리합니다. ledLevel=0이면 모두 OFF, 10이면 모두 ON.

학습 포인트

응용 확장 아이디어

  1. 사운드 레벨 미터: 마이크 모듈(KY-038)로 소리 크기 시각화
  2. 온도 표시계: LM35/TMP36 센서로 온도 구간별 LED 점등
  3. 배터리 잔량 표시: 전압 분배 회로로 배터리 전압 측정 후 바 그래프 표시
  4. PWM 디밍: analogWrite()로 LED 밝기 그라데이션 효과
  5. 양방향 바 그래프: 중앙 기준 좌우 확장 (중립 위치를 중심으로 ±표시)

자주 하는 실수와 해결


와이퍼(가운데) 단자 확인
증상 원인 해결
LED가 모두 켜지지 않음 핀 번호 불일치 / 배선 오류 배열 핀 번호와 실제 배선 확인
포텐셔미터 돌려도 변화 없음 A0 핀 미연결 / GND/5V 역결선
LED 밝기 약함 저항값 과대 / 전압 강하 220Ω 적정, 5V 공급 확인
끝단 LED만 점등 map() 범위 설정 오류 toHigh를 ledCount(10)로 설정 확인

제조공정

  1. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  2. 아두이노 아이언맨 제작: 부품, 센서, 단계별 가이드
  3. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  4. 아두이노 구동 3D 프린팅 로봇 팔 만들기: 단계별 가이드
  5. 아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
  6. 비접촉 체온 측정 게이트: 아두이노 MKR1000으로 구현하는 자동 발열 검사 시스템
  7. 피봇(PiBot): 아두이노 기반 88건반 피아노 연주 로봇
  8. 아두이노 나노와 네오픽셀 매트릭스로 만드는 네온 퐁 게임
  9. 아두이노 & ThingSpeak로 실시간 날씨 모니터링 IoT 구축
  10. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기