🅿️ MAX98357 앰프 모듈의 게인(Gain) 설정은 GAIN(또는 GAIN_SLOT) 핀을 GND, VDD, 플로팅(연결 안 함) 상태로 두거나 100kΩ 저항을 연결하는 5가지 방식으로 조절할 수 있습니다.

- 15dB: GAIN 핀과 GND 사이에 100kΩ 저항 연결
- 12dB: GAIN 핀을 GND에 직접 연결 (기본값 중 하나)
- 9dB: GAIN 핀을 아무것도 연결하지 않고 플로팅(뜸) 상태로 유지 (기본 설정)
- 6dB: GAIN 핀을 VDD(전원)에 직접 연결
- 3dB: GAIN 핀과 VDD 사이에 100kΩ 저항 연결
- TDM 모드에서는 게인이 12dB로 고정되며, GAIN_SLOT 핀의 역할이 채널 선택(Slot Selection)용으로 바뀝니다.
- 오디오가 재생되는 도중에 게인 핀 설정을 변경하면 팝(pop) 노이즈가 발생할 수 있으므로 전원이 꺼진 상태에서 연결을 변경해야 합니다.
🅿️ MAX98357은 하드웨어 볼륨 제어 핀이 없기 때문에, 볼륨 조절을 하려면 I2S 오디오 데이터를 전송하는 마이크로컨트롤러(MCU) 소스 코드에서 디지털 오디오 샘플 값을 계산하여 조절해야 합니다.
- 16비트 오디오 샘플 값의 범위는 -32768에서 32767입니다.
- 볼륨을 50%로 줄이려면 각 샘플 값에 0.5를 곱합니다.
#include "BluetoothA2DPSink.h"
BluetoothA2DPSink a2dp_sink;
void setup() {
a2dp_sink.start("MyMusicSpk");
a2dp_sink.set_volume(70); // 0부터 100 사이의 값으로 볼륨 조절
}
int16_t sample = get_audio_sample(); // 오디오 소스에서 16비트 샘플 읽기
float volume = 0.5; // 볼륨 50% 설정
// 샘플 값에 볼륨을 곱한 뒤 I2S로 전송
int16_t adjusted_sample = (int16_t)(sample * volume);
i2s_write(I2S_NUM_0, &adjusted_sample, sizeof(adjusted_sample), &bytes_written, portMAX_DELAY);
- /etc/asound.conf 파일에 softvol 가상 장치 추가 설정을 합니다.
- 터미널에서 다음 명령어로 볼륨을 조절합니다:
amixer sset 'Master' 70%
따라서 MAX98357의 GAIN 핀 설정을 최대한 낮게(예: 3dB 또는 6dB) 하드웨어로 고정해 두고, 소프트웨어 볼륨을 최댓값에 가깝게 사용하는 것이 화이트 노이즈를 줄이는 데 가장 유리합니다. ** (주의: 소스 데이터를 직접 곱하여 볼륨을 줄이는 방식은 비트 심도가 낮아져 오디오 왜곡이나 음질 저하가 발생할 수 있습니다. 따라서 MAX98357의 하드웨어 GAIN 핀은 가급적 낮게(3dB 또는 6dB) 하드와이어링하고, 소프트웨어 볼륨은 최댓값에 가깝게 사용하는 것이 음질 유지에 유리합니다.)
- 준비물: 권장 10Ω ~ 50Ω 사이의 고전력용(최소 1W~2W 이상) 가변 저항
- 결선 방법: OUT+ 핀 → 가변 저항의 1번 핀 → 가변 저항의 2번(가운데) 핀 → 스피커의 + 단자
- 주의점: 일반적인 회로 실험용 가변 저항(10kΩ 등)은 저항값이 너무 높아 소리가 아예 안 나거나, 허용 전력이 낮아 앰프 출력(최대 3.2W)을 버티지 못하고 타버릴 수 있습니다. 반드시 와이어wound(권선형)나 전력용 가변 저항을 써야 합니다.
- MAX98357 + 아날로그 앰프 조합: MAX98357의 출력은 디지털 필터링이 없는 Class-D 방식이라 아날로그 볼륨 처리가 까다롭습니다. 오디오 소스단에서 아날로그 가변 저항 제어를 하려면 PCM5102A(I2S DAC) 모듈을 사용하여 아날로그 신호로 바꾼 뒤, 일반 10kΩ 가변 저항을 거쳐 PAM8403 같은 아날로그 앰프로 출력하는 구조가 표준적입니다.
- 대체 칩셋 활용: 볼륨 조절 전용 핀이 탑재된 I2S 앰프 칩셋(예: MAX98358 또는 일부 오디오 코덱 칩)으로 회로를 변경합니다.
- 로터리 스위치나 점퍼 핀을 이용하여 GAIN 핀의 연결 상태를 3dB / 6dB / 9dB / 12dB / 15dB 조건으로 물리적으로 바꾸어 줍니다.
- 주의점: 전환 시 "툭, 툭" 하는 팝 노이즈가 발생할 수 있습니다.
🅿️ MAX98357 I2S 3W 클래스 D 앰프 모듈은 I2S 디지털 오디오 입력을 받아 스피커를 구동하는 고효율 증폭기로서, MAX98357A 칩셋 탑재, 3.2W 출력(4Ω, 5V), 마스터 클럭(MCLK) 불필요 등의 특징을 가집니다. 라즈베리 파이나 ESP32 같은 마이크로컨트롤러와 연결해 소형 오디오 프로젝트에 유용하게 쓰입니다.
- 동작 전압: 2.5V ~ 5.5V DC
- 출력 전력: 4Ω 스피커 연결 시 최대 3.2W (5V 공급, 10% THD), 8Ω 시 1.8W
- 지원 샘플링 레이트: 8kHz ~ 96kHz (16/32-bit 해상도)
- 채널 설정: 기본 모노(L+R 믹스), 점퍼 설정을 통해 좌측 또는 우측 채널 단독 선택 가능
- 게인(Gain) 조절: 3dB ~ 15dB 범위에서 설정 가능 (기본 9dB)
- 지원 기기: 라즈베리 파이, ESP32, 아두이노 제로 등 I2S 출력을 지원하는 보드
- 인터페이스 핀: BCLK(비트 클럭), LRC(워드 클럭), DIN(데이터 입력), GAIN, SD_MODE(종료/채널 모드)

#include "ESP_I2S.h"
#include <math.h>
// I2S 핀 설정 (ESP32-S3 사양에 맞게 지정)
#define I2S_BCLK_PIN 4
#define I2S_LRC_PIN 5
#define I2S_DIN_PIN 6
// 오디오 설정
#define SAMPLE_RATE 44100 // 샘플링 레이트 (44.1kHz)
#define WAVE_FREQ 440 // 생성할 주파수 (440Hz = '라' 음)
#define VOLUME 3000 // 볼륨 크기 (최대 32767)
I2SClass i2s;
void setup() {
Serial.begin(115200);
// I2S 구성 설정
i2s.setPins(I2S_BCLK_PIN, I2S_LRC_PIN, I2S_DIN_PIN, -1, -1); // (BCLK, WS, DOUT, DIN, MCLK)
// 마스터 모드, 44.1kHz, 16비트, 스테레오(또는 모노) 설정
// MAX98357A는 스테레오 데이터를 받아 자동으로 다운믹스하거나 채널을 선택합니다.
if (!i2s.begin(I2S_MODE_STD, SAMPLE_RATE, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO)) {
Serial.println("I2S 초기화 실패!");
while (1);
}
Serial.println("I2S 초기화 성공! 오디오 출력을 시작합니다.");
}
void loop() {
// 1초 동안 440Hz 사인파 오디오 데이터 생성 및 출력
int samples_count = SAMPLE_RATE;
for (int i = 0; i < samples_count; i++) {
// 사인파 계산
int16_t sample = (int16_t)(VOLUME * sin(2 * M_PI * WAVE_FREQ * i / SAMPLE_RATE));
// 스테레오 포맷에 맞추어 Left, Right 채널에 각각 데이터 전송
int16_t packet[2] = { sample, sample };
// I2S 버퍼로 데이터 쓰기
i2s.write((uint8_t*)packet, sizeof(packet));
}
delay(1000); // 1초 대기 후 반복
}
- 스피커 연결: MAX98357A 모듈의 출력 단자(+, -)에 4Ω 또는 8Ω 소형 스피커를 단단히 연결해야 소리가 들립니다.
- 노이즈 발생 시: 전원 공급이 불안정하면 지이잉하는 노이즈가 발생할 수 있습니다. ESP32-S3의 5V 전원 공급 능력이 부족하다면 외장 5V 전원을 모듈에 직접 인가하고 GND를 공통으로 묶어주세요.



'개발자 > 부품' 카테고리의 다른 글
| VL53L0, VL53L0X 레이저 거리 측정 센서 (0) | 2026.08.10 |
|---|---|
| 라이더(LiDAR)와 레이더(RADAR) (0) | 2026.08.04 |
| MagnTek MT6701 0~360도 회전 각도를 정밀하게 측정하는 14비트 자기식 회전 각도 센서 (0) | 2026.08.04 |
| 첫 번째 전지형 카메라 로봇, 베니 (0) | 2026.08.01 |
| 음성 AI 프로젝트 INMP441 (0) | 2026.08.01 |
| TPS63802 미니 3.3V/5V 출력 2A 전류 초소형 리튬 배터리용 (0) | 2026.07.30 |
| Dowell3D DL 시리즈는 산업 환경에 특화된 고급 3D 프린터 (0) | 2026.07.26 |
| 8x8 MAX7219 LED 매트릭스 HOUR GLASS 2 (0) | 2026.07.17 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩