MAX98357A ialah amplifier class-D mono 3W yang menerima audio digital terus daripada ESP32 melalui tiga wayar I2S. Sambungkan BCLK ke GPIO27, LRC ke GPIO26, DIN ke GPIO25, Vin ke pin VIN 5V pada ESP32 dan GND ke GND, biarkan GAIN dan SD tidak disambung, dan sketch yang ringkas akan memainkan nada yang bersih melalui speaker kecil — tanpa modul DAC, tanpa peringkat analog, tanpa pot volum.
Board itu ialah breakout amplifier I2S MAX98357A kami — modul ungu gelap sebesar kuku ibu jari, dan cara paling mudah untuk naik taraf daripada bunyi bip buzzer kepada suara, amaran dan muzik. Sebelum mula menyambung apa-apa: modul ini dihantar dengan pin header dan terminal skru hijaunya belum disolder, dan tab mini speaker pula hanyalah pad logam tanpa wayar, jadi rancang satu sesi solder yang singkat dahulu — panduan solder pin header kami menerangkan caranya.
Apa itu I2S, dalam bahasa mudah?
I2S (Inter-IC Sound) ialah sambungan digital tiga wayar yang memindahkan sampel audio yang sudah siap dari satu cip ke cip yang lain. BCLK ialah metronom yang berdetik kira-kira 1.4 juta kali sesaat; pada setiap detik, DIN membawa satu bit daripada sampel semasa; LRC bertukar rendah dan tinggi untuk menandakan sama ada bit-bit itu milik saluran kiri atau kanan. Enam belas bit setiap sampel, 44,100 sampel sesaat, dua saluran — darabkan semuanya dan anda akan dapat bit clock 1.41MHz itu, semuanya dijana oleh perkakasan ESP32 sementara kod anda membuat kerja lain.
Oleh sebab wayar-wayar ini hanya membawa satu dan sifar, sambungannya hampir kebal terhadap hingar. Dalam sistem audio analog, setiap milivolt gangguan yang dikutip oleh kabel akan ditambah pada muzik lalu ikut dikuatkan; pada talian I2S pula, hingar yang dikutip hanya menumpang di atas gelombang segi empat 3.3V dan tidak mengubah apa-apa melainkan ia menarik talian melepasi ambang input cip — bawah 0.6V dibaca sebagai 0, atas 1.3V sebagai 1 — sedangkan dengung sesat hanya diukur dalam milivolt. Itulah sebabnya kekemasan wayar jumper hampir tidak penting di sini, dan sebabnya penukaran digital-ke-analog berlaku di dalam MAX98357A sendiri, hanya beberapa milimeter dari terminal speaker, tanpa sebarang kabel yang boleh dicemari hingar. Ambang yang sama juga membolehkan isyarat 3.3V ESP32 memacu amp berkuasa 5V secara terus, tanpa level shifter.

MAX98357A juga tidak memerlukan MCLK, iaitu wayar master clock berkelajuan tinggi yang keempat yang diwajibkan oleh banyak DAC I2S, jadi tiga wayar data dan dua wayar kuasa sudah merangkumi keseluruhan sambungannya.
Senarai komponen: binaan bunyi pertama MAX98357A
Parts list
Diperlukan sekali sahaja: pin header dan terminal skru amp — serta tab speaker — dihantar belum disolder. Jumper M-M berguna untuk menyambung rel breadboard.
Ke mana lima wayar itu disambung?
Tepi bawah modul MAX98357A mempunyai tujuh pin, bertanda silkscreen dari kiri ke kanan sebagai LRC, BCLK, DIN, GAIN, SD, GND, Vin. Binaan pertama hanya menggunakan lima daripadanya:
| Pin amp | Pin ESP32 | Apa yang dibawa |
|---|---|---|
| Vin | VIN | 5V daripada kabel USB — bukan 3V3 (lihat di bawah) |
| GND | GND | Ground bersama |
| BCLK | GPIO27 (D27) | Bit clock — satu detik bagi setiap bit |
| LRC | GPIO26 (D26) | Pemilih kiri/kanan — satu tukaran bagi setiap sampel |
| DIN | GPIO25 (D25) | Data sampel itu sendiri |
| GAIN | biarkan tidak disambung | Membaca gain 9dB bila dibiarkan terapung |
| SD | biarkan tidak disambung | Komponen onboard sudah memilih campuran mono |
GPIO27, 26 dan 25 ialah amalan biasa, bukan kewajipan: ESP32 menghalakan periferal I2S-nya melalui GPIO matrix dalaman, jadi hampir mana-mana pin yang boleh menjadi output akan berfungsi. Tiga pin ini terletak bersebelahan di tepi yang sama dengan VIN dan GND, dan ia juga pin yang digunakan dalam contoh README library audio ESP32 yang paling popular, jadi kod yang anda pinjam boleh terus berfungsi tanpa diubah.
Board ESP32 30-pin itu sendiri tidak diletakkan di atas breadboard: bila dipasang merentasi breadboard 400 lubang, ia meninggalkan paling banyak satu lubang kosong di sebelah setiap pin dan memenuhi 15 daripada 30 baris breadboard itu (cara breadboard berfungsi menerangkan sebabnya). Jadi, cucuk header amp pada breadboard, letakkan ESP32 di sebelahnya, dan sambungkan kedua-duanya dengan jumper male-to-female: hujung female pada pin ESP32, hujung male ke dalam baris bernombor yang sama dengan pin amp. Speaker pula disambung pada terminal skru amp.

Bekalkan kuasa amp dari pin VIN ESP32, yang membawa 5V daripada kabel USB — jangan sekali-kali dari 3V3. Cip ini boleh beroperasi pada mana-mana voltan dari 2.5V hingga 5.5V, tetapi kuasa output class-D berubah mengikut kuasa dua voltan bekalannya — angka 8Ω dalam datasheet jatuh dari 1.8W pada 5V kepada 0.93W pada 3.7V — dan pin 3V3 terletak di belakang regulator kecil board, yang sudah pun menampung lonjakan arus Wi-Fi ESP32. Panduan bekalan kuasa ESP32 kami menerangkan bajet kuasa itu dengan terperinci.
Apa sebenarnya fungsi pin GAIN dan SD?
Pin GAIN dan SD pada MAX98357A bukan input digital. Kedua-duanya dibaca sebagai paras voltan analog berbanding ambang comparator dalaman, yang ditentukan oleh cara pin itu di-strap dengan perintang — dan itulah sebabnya pendawaian yang disalin daripada board lain boleh menyebabkan senyap atau bunyi yang terlalu perlahan tanpa sebarang ralat: strap-nya berbeza, jadi cip berada dalam mod yang berbeza.
GAIN memilih satu daripada lima gain tetap, menurut datasheet MAX98357A:
| Strap pin GAIN | Gain |
|---|---|
| Perintang 100kΩ ke GND | 15dB |
| Disambung terus ke GND | 12dB |
| Dibiarkan tidak disambung (lalai modul ini) | 9dB |
| Disambung terus ke Vin | 6dB |
| Perintang 100kΩ ke Vin | 3dB |
SD dinamakan sempena shutdown, tetapi sebenarnya ia pin mod empat jalur dengan pulldown dalaman 100kΩ:
| Voltan pada SD | Apa yang dibuat oleh amp |
|---|---|
| Bawah 0.16V | Shutdown — output dimatikan |
| 0.16V – 0.77V | Memainkan (kiri + kanan) ÷ 2 — campuran mono |
| 0.77V – 1.4V | Memainkan saluran kanan sahaja |
| Atas 1.4V | Memainkan saluran kiri sahaja |
Breakout ini menyambung SD ke Vin melalui perintang hitam kecil bertanda 105 (1MΩ), yang membentuk pembahagi voltan bersama pulldown dalaman 100kΩ tadi: 5V × 100k ÷ 1.1M ≈ 0.45V, tepat di tengah jalur 0.16–0.77V. Jadi, sebaik dikeluarkan dari beg, modul ini memainkan (kiri + kanan) ÷ 2 — dan di situlah kejutan nombor satu ramai pembeli: MAX98357A ialah amplifier mono. Satu speaker, kedua-dua saluran dicampur. Stereo sebenar memerlukan dua modul pada tiga wayar I2S yang sama: SD yang disambung terus ke Vin memainkan saluran kiri (5V jauh melebihi 1.4V), manakala perintang 560kΩ dari SD ke Vin, selari dengan perintang 1MΩ onboard, menetapkan kira-kira 1.1V dan memainkan saluran kanan.
Speaker mana yang sesuai digandingkan dengannya?
MAX98357A membekalkan 3.2W ke dalam 4Ω dan 1.8W ke dalam 8Ω daripada bekalan 5V (pada 10% THD), kerana output bridge-tied-load (BTL)-nya memacu speaker di antara dua output yang berayun secara bertentangan — speaker menerima hampir dua kali ganda ayunan voltan yang mampu diberi oleh satu output 5V, dan kuasa ialah voltan kuasa dua dibahagi rintangan. Oleh itu, driver full-range 4Ω 3W ialah pasangan semula jadinya, dan driver di dalam speaker Bluetooth lama dan mainan muzik selalunya memang begitu — berbaloi diselamatkan sebelum anda membuangnya. Namun pada kuasa penuh, amp menarik kira-kira 0.7A daripada 5V (3.2W ÷ 5V, ditambah kehilangannya), dan bersama lonjakan arus Wi-Fi ESP32 sendiri, jumlah itu melebihi 500mA yang mampu dibekalkan oleh port USB laptop — jadi jalankan binaan 4Ω yang kuat bunyinya menggunakan pengecas telefon 1A.
Mini speaker 8Ω 0.5W dalam senarai komponen sesuai untuk nada pertama dan amaran suara, dengan satu peringatan jujur: amp ini mampu menolak 1.8W ke dalamnya, lebih tiga kali ganda kadarannya. Strap gain menentukan sekuat mana bunyi pada skala penuh: datasheet mengukur gain daripada rujukan 1.27V RMS, jadi pada lalai 9dB, gelombang sinus skala penuh mencecah kira-kira 3.6V RMS, lebih kurang 1.6W ke dalam 8Ω. Menyambung GAIN ke Vin melalui 100kΩ (3dB) mengurangkan skala penuh kepada kira-kira 0.4W, dalam lingkungan kadaran speaker tidak kira apa yang dihantar oleh perisian. Pada tetapan lalai, kekalkan volum perisian rendah; pulas semuanya ke tahap maksimum dan lambat-laun anda akan terhidu bau voice coil yang hangus.
Tab mini speaker ialah pad solder tanpa wayar, jadi ia memerlukan dua wayar: potong satu jumper lebihan daripada pek kepada dua bahagian pendek, kupas kedua-dua hujung setiap satu, solder satu hujung pada setiap tab dan ketatkan hujung yang satu lagi dalam terminal skru hijau amp. Selepas itu, menukar speaker hanya mengambil masa beberapa saat.
Satu peraturan keselamatan datang terus daripada topologi BTL: kedua-dua terminal speaker dipacu secara aktif, jadi jangan sekali-kali sambungkan mana-mana satu terminal ke GND, dan jangan biarkan kedua-dua wayar speaker bersentuhan — setiap satu daripadanya ialah litar pintas terus merentasi peringkat output. Tanda − dan + di sebelah lubang speaker pada modul bermaksud “sambung ikut arah ini”, bukan “negatif ialah ground”.
Bagaimana nak keluarkan nada pertama?
Sketch MAX98357A yang pertama tidak memerlukan sebarang library — teras Arduino-ESP32 sudah disertakan dengan ESP_I2S, yang memacu perkakasan I2S secara terus. Ia mula hadir dalam versi 3.0 pakej board ESP32, dan kedua-dua sketch di sini memerlukan versi 3.0 atau lebih baharu, jadi pastikan Boards Manager menunjukkan esp32 by Espressif Systems pada versi 3.0 ke atas; pada 2.x, sketch ini akan terhenti dengan ralat ESP_I2S.h: No such file or directory. Kemudian pilih ESP32 Dev Module dan upload menggunakan kabel data.
// Ujian bunyi pertama MAX98357A: nada 441 Hz yang bersih, tanpa library.
// Board: ESP32 Dev Module (30-pin gaya NodeMCU, CH340, USB-C)
#include <ESP_I2S.h>
#include <math.h>
const uint8_t PIN_BCLK = 27; // BCLK pada amp
const uint8_t PIN_LRC = 26; // LRC pada amp (word select)
const uint8_t PIN_DIN = 25; // DIN pada amp (data sampel)
const uint32_t SAMPLE_RATE = 44100;
const int FRAMES_PER_CYCLE = 100; // 44100 / 100 = tepat 441 Hz
const int16_t VOLUME = 3000; // ~9% skala penuh - lembut untuk speaker 0.5W
I2SClass i2s;
int16_t wave[FRAMES_PER_CYCLE * 2]; // satu kitaran sinus, kiri + kanan berselang-seli
void setup() {
for (int n = 0; n < FRAMES_PER_CYCLE; n++) {
int16_t s = (int16_t)(VOLUME * sinf(2.0f * PI * n / FRAMES_PER_CYCLE));
wave[2 * n] = s; // slot kiri
wave[2 * n + 1] = s; // slot kanan - amp akan mempuratakan kedua-duanya juga
}
i2s.setPins(PIN_BCLK, PIN_LRC, PIN_DIN);
i2s.begin(I2S_MODE_STD, SAMPLE_RATE, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO);
}
void loop() {
i2s.write((uint8_t *)wave, sizeof(wave)); // menunggu sehingga buffer DMA menerimanya
}
Upload, dan speaker akan mengeluarkan nada 441Hz yang stabil. Frekuensi yang nampak pelik itu memang disengajakan: satu kitaran sinus muat tepat dalam 100 sampel pada 44.1kHz, jadi loop boleh mengulang satu buffer kecil tanpa henti, tanpa sambungan yang kedengaran atau bunyi klik. Pemalar VOLUME sengaja ditetapkan pada kira-kira 9% skala penuh: pada lalai 9dB, itu lebih kurang 13mW ke dalam speaker 8Ω — jelas kedengaran dan jauh dalam lingkungan kadaran 0.5W-nya. Kekuatan bunyi dikawal dalam perisian; strap gain hanya menetapkan hadnya.
Bagaimana nak mainkan fail WAV atau MP3?
Nada membuktikan pendawaian MAX98357A betul; fail bunyi pula membuktikan keseluruhan toolchain berfungsi. Library pilihan utama ialah ESP32-audioI2S, dengan satu perangkap versi: keluaran terbarunya dibina untuk cip yang dilengkapi PSRAM seperti ESP32-S3, sedangkan board WROOM-32 30-pin di sini tiada PSRAM. Dalam Library Manager, ia disenaraikan sebagai ESP32-audioI2S-master — pilih versi 3.0.13, keluaran lama yang masih berjalan pada board ESP32 biasa (pengarangnya menandakan 3.2.1 sebagai keluaran terakhir tanpa PSRAM); contoh README-nya sendiri menggunakan tiga pin yang sama.
// MAX98357A peringkat dua: mainkan fail WAV dari flash ESP32 (SPIFFS).
// Library: ESP32-audioI2S v3.0.13 (keluaran sebelum era PSRAM yang berjalan pada board ESP32 biasa)
#include <Arduino.h>
#include <Audio.h>
#include <SPIFFS.h>
Audio audio;
void setup() {
SPIFFS.begin();
audio.setPinout(27, 26, 25); // BCLK, LRC, DIN - wayar yang sama seperti ujian nada
audio.setVolume(8); // 0-21; mulakan rendah untuk speaker kecil
audio.connecttoFS(SPIFFS, "/hello.wav");
}
void loop() {
audio.loop(); // suap decoder; pastikan loop() bebas daripada delay
}
Fail itu sendiri disimpan dalam flash ESP32: letakkan hello.wav dalam folder data di dalam folder sketch. Arduino IDE 2 tiada uploader terbina dalam untuknya, jadi pasang plugin percuma arduino-spiffs-upload, tutup Serial Monitor, dan jalankan Upload SPIFFS to Pico/ESP8266/ESP32 dari command palette (Ctrl+Shift+P, atau Cmd+Shift+P pada Mac); selepas itu sketch akan memainkan fail tersebut setiap kali board dihidupkan. Julat setVolume() ialah 0–21 — mulakan sekitar 8 untuk mini speaker.
Eksport WAV itu sebagai PCM 16-bit pada 44.1kHz, atau 16kHz untuk suara — jangan sekali-kali 22.05kHz. Library ini menjana clock I2S mengikut kadar fail itu sendiri, dan walaupun MAX98357A berjalan lancar pada 8, 16, 32, 44.1 atau 48kHz, datasheet-nya menyenaraikan 11.025, 12, 22.05 dan 24kHz sebagai tidak disokong, jadi klip pada kadar tersebut boleh jadi senyap atau bercelaru walaupun ujian nada tadi berjaya. Pastikan klipnya pendek juga: partition scheme lalai meninggalkan kira-kira 1.4MB untuk fail, lebih kurang 15 saat audio mono 44.1kHz. Klip yang lebih panjang lebih sesuai dalam format MP3, cuma perubahan satu baris melalui panggilan connecttoFS() yang sama, dan strim radio internet hanya memerlukan tambahan kod sambungan Wi-Fi.
Kesilapan biasa yang kami lihat
Senyap langsung walaupun sketch sedang berjalan. Punca klasiknya ialah BCLK dan LRC tertukar: amp kemudian menerima bit clock 44.1kHz, jauh di bawah minimum 243kHz-nya, dan frame clock 1.41MHz, jauh melebihi maksimum 96kHz-nya, jadi ia tidak pernah menemui frame yang sah dan terus senyap. Punca kedua ialah SD: pendawaian yang disalin daripada skematik yang menyambung SD ke ground akan menahan amp dalam mod shutdown. Kedua-duanya boleh dibetulkan dengan mengalihkan satu jumper sahaja.
Tiada port COM, tiada apa yang boleh di-upload. Ini langsung bukan masalah audio: kabel USB yang hanya untuk mengecas, atau driver CH340 yang belum dipasang — dua punca yang diterangkan langkah demi langkah dalam panduan membetulkan masalah upload.
Bunyi desis (hiss) di antara bunyi. Strap gain pada 12–15dB ke dalam speaker kecil yang dekat dengan telinga akan menguatkan noise floor amp itu sendiri bersama-sama muzik. Buat yang bertentangan dengan naluri: strap gain rendah (3–9dB) dan naikkan semula kekuatan bunyi dalam perisian — muzik kembali kuat, desisnya tidak.
Bunyi perlahan, herot, atau board reboot pada bahagian lagu yang kuat. Amp dikuasakan dari 3V3. Kuasa output jatuh mengikut kuasa dua voltan bekalan, dan bahagian yang kuat kini berebut regulator kecil board dengan radio Wi-Fi. Alihkan jumper Vin amp ke pin VIN. Sudah pun pada VIN dengan speaker 4Ω? Tukar port laptop kepada pengecas telefon 1A.
Soalan Lazim
Adakah MAX98357A stereo atau mono?
Mono. Ia menerima strim I2S stereo tetapi memainkan campuran (kiri + kanan) ÷ 2 melalui satu speaker pada breakout ini. Untuk stereo, sambungkan tiga wayar I2S yang sama ke dua modul: SD disambung terus ke Vin pada board saluran kiri, dan perintang 560kΩ dari SD ke Vin pada board saluran kanan.
Bolehkah MAX98357A memacu headphone?
Tidak. Output bridge-tied-nya memacu kedua-dua terminal secara aktif, sedangkan bicu headphone membumikan bahagian sleeve — memasang headphone akan memintaskan output yang sedang dipacu ke common. Ia juga terlalu kuat dan berbahaya untuk telinga: skala penuh pada lalai 9dB ialah sekitar 400mW ke dalam headphone 32Ω. Untuk output headphone atau line-level, gunakan board DAC I2S yang outputnya berujukan ground.
Perlukah saya sambungkan pin GAIN dan SD?
Tidak untuk binaan pertama. Bila dibiarkan terapung, GAIN membaca 9dB, dan perintang onboard modul sudah menahan SD dalam jalur campuran mono. Strap GAIN untuk menukar had kekuatan bunyi; usik SD hanya untuk pasangan stereo atau mute perkakasan.
Pin ESP32 mana yang diperlukan oleh MAX98357A?
Mana-mana pin yang boleh menjadi output — GPIO matrix ESP32 boleh menghalakan I2S hampir ke mana-mana pin. GPIO27 (BCLK), GPIO26 (LRC) dan GPIO25 (DIN) ialah standard de facto dalam contoh library dan panduan pendawaian, jadi menggunakannya memastikan kod yang dipinjam terus berfungsi.
Speaker apa yang paling sesuai dengan MAX98357A?
Speaker 4Ω berkadar kira-kira 3W dapat menerima sepenuhnya 3.2W yang dibekalkan cip ini pada 5V; speaker 8Ω pula maksimum 1.8W. Driver full-range daripada speaker Bluetooth lama biasanya 4Ω 3W dan sangat sepadan. Mini speaker 0.5W sesuai untuk nada dan amaran suara; dengan GAIN di-strap ke 3dB, malah skala penuh pun kekal sekitar 0.4W.
Kemas kini terakhir November 2026. Tersangkut? Chat dengan kami di WhatsApp.



MAX98357A I2S 3W CLASS D AUDIO AMPLIFIER BREAKOUT BOARD FOR RASPBERRY PI ESP32
NodeMCU ESP32 Wi-Fi + Bluetooth Development Board CH340/CP2012 - For IOT Project - ESP-32 (CH340)
8 Ohm 0.5W Mini Speaker Small Round Audio Speaker for Arduino DIY Projects Electronic Components Sound Module
MB102 Breadboard 170 400 830 Holes Breadboard Donut Board Arduino Prototype Multi Color - BREADBOARD (400 HOLES)
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-F 30CM
Data Cable Type-A Type-C MicroUSB Type-B 0.5m 1m 30cm 0.3m 100cm Data Transfer Upload Code - TYPE-A TO TYPE-C CABLE (0.5M)
80W Electronics Soldering Iron with LCD Display Ajustable Temperature Microconstroller Electronic Project
50g Soldering Wire Lead with Flux Core 1mm Diameter
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-M 20CM