아두이노

아두이노 전자식 가변저항 제어 가이드 – MCP41010 SPI 통신으로 디지털 저항 조절하기

게임교수 2025. 4. 19. 17:26
반응형

아두이노 전자식 가변저항 제어 가이드 – MCP41010 SPI 통신으로 디지털 저항 조절하기

손으로 돌리지 않아도 되는 가변저항이 있다면?
바로 전자식 가변저항(Digital Potentiometer)입니다. 이번 글에서는 MCP41010을 아두이노와 SPI 통신으로 연결하여 원하는 저항 값을 코드로 제어하는 방법을 설명합니다. 이 기술은 자동 볼륨 조절, 센서 감도 설정, LED 밝기 조절 등 정밀 제어에 매우 유용합니다.

📦 준비물

  • 아두이노 UNO
  • MCP41010 디지털 가변저항
  • 10kΩ 고정저항 (테스트용)
  • LED + 330Ω
  • 브레드보드, 점퍼 와이어

🔍 MCP41010 소개

MCP41010은 8핀 IC로, 내부에 256 단계로 조절 가능한 전자식 저항을 포함하고 있습니다. 아두이노와의 통신은 SPI (Serial Peripheral Interface)로 이루어지며, SCK / MOSI / CS 핀을 통해 원하는 저항 값을 설정할 수 있습니다.

⚙️ 핀 연결

MCP41010 핀아두이노 연결
1 - CSD10
2 - SCKD13
3 - SDI (MOSI)D11
4 - GNDGND
5 - PW0(LED 연결)
6 - PW1GND
7 - NC없음
8 - VDD5V

💻 아두이노 코드 예제

아래 코드는 MCP41010의 저항값을 점점 줄이며 LED 밝기를 조절하는 예제입니다.

#include <SPI.h>

const int CS_PIN = 10;

void setup() {
  SPI.begin();
  pinMode(CS_PIN, OUTPUT);
}

void setResistance(byte value) {
  digitalWrite(CS_PIN, LOW);
  SPI.transfer(0x11); // Command byte (write to pot 0)
  SPI.transfer(value); // 0 ~ 255
  digitalWrite(CS_PIN, HIGH);
}

void loop() {
  for (int i = 0; i <= 255; i++) {
    setResistance(i);
    delay(20);
  }
}

💡 활용 아이디어

  • 🔊 자동 볼륨 조절 시스템 (앰프 제어)
  • 💡 조도 감도 조절 (센서 보정)
  • 🔁 상태 저장형 저항 설정 (EEPROM과 연동)

✅ 마무리

전자식 가변저항은 아두이노를 활용한 정밀 제어 시스템에서 매우 강력한 도구입니다. 특히 SPI 프로토콜을 통해 제어가 가능하므로, 다른 SPI 기반 장치와 함께 활용하는 고급 프로젝트로 확장할 수 있습니다. 이제 손으로 조절하지 않아도, 코딩으로 저항값을 마음껏 제어하세요!


Arduino 시리즈 19편 | 작성자: YT

반응형