SKU: OT6745 Artikelnummer: XV193 EAN: 8720828223635
Wenn Sie nach einer einfachen und erschwinglichen Möglichkeit suchen, Ihre digitalen Audiodateien zu verstärken, dann ist das MAX98357 I2S Amp Breakout genau das Richtige für Sie. Es nimmt standardmäßige I2S-Digitalaudioeingänge auf und wandelt sie nicht nur in analog um, sondern verstärkt sie auch direkt für einen Lautsprecher. Perfekt, um kompakten verstärkten Klang hinzuzufügen, kombiniert es 2 Breakouts (I2S DAC + Amp) in einem.
I2S ist ein digitales Tonprotokoll, das auf Schaltboards verwendet wird, um Audiodaten zu übertragen. Viele fortschrittliche Chips und Prozessoren verwalten alle Audiodaten im digitalen I2S-Format. Um Daten ein- oder auszugeben, werden drei oder vier Pins verwendet (Data In, Data Out, Bit Clock und Left-Right Channel Select). Meistens gibt es für Audiogeräte einen DAC-Chip, der I2S anspricht und in analog umwandelt, um einen Kopfhörer anzusteuern.
Dieser kleine Mono-Verstärker ist überraschend leistungsstark - er kann 3.2 Watt Leistung an einen Lautsprecher mit einer Impedanz von 4 Ohm liefern (bei 5V Versorgung und 10% THD). Im Miniaturchip befindet sich ein Klasse-D-Controller, der mit einer Versorgungsspannung von 2.7V-5.5VDC arbeitet. Da der Verstärker ein Klasse-D-Verstärker ist, ist er äußerst effizient und damit perfekt für tragbare und batteriebetriebene Projekte. Er verfügt über integrierten thermischen und Überstromschutz, aber wir haben kaum bemerkt, dass er warm wurde.
Der Audioeingang ist I2S-Standard, Sie können 3.3V- oder 5V-Logikdaten verwenden. Die Ausgänge sind "Bridge Tied" - das bedeutet, dass sie direkt an die Ausgänge angeschlossen werden, ohne Verbindung zur Masse. Der Ausgang ist ein ~300KHz Rechteckwellen-PWM, das dann durch die Lautsprecherspule 'gemittelt' wird - die hohen Frequenzen werden nicht gehört. All das bedeutet, dass Sie den Ausgang nicht an einen anderen Verstärker anschließen können, er muss die Lautsprecher direkt ansteuern.
Es gibt einen Gain-Pin, der angepasst werden kann, um die Verstärkung zu ändern. Standardmäßig liefert der Verstärker 9 dB Verstärkung. Durch Anschließen eines Pull-up- oder Pull-down-Widerstands oder durch direkte Verdrahtung kann der Gain-Pin auf 3 dB, 6 dB, 9 dB, 12 dB oder 15 dB eingestellt werden.
Der ShutDown/Mode-Pin kann verwendet werden, um den Chip in den Schlafmodus zu versetzen oder festzulegen, welcher I2S-Audiokanal an den Lautsprecher geleitet wird. Standardmäßig gibt der Verstärker einen (L+R)/2-Stereomix auf den Monoausgang aus. Durch Hinzufügen eines Widerstands können Sie ihn auf nur links oder nur rechts umstellen.
Spezifikationen:
So schließt du den I2S DAC mit 3W Verstärker - MAX98357A an einen Arduino UNO oder ESP32 an, mit einem Beispiel-Sketch, den du direkt hochladen kannst.
Dieses Projekt zeigt den MAX98357A I2S-Verstärker, verbunden mit einem Arduino Uno und einem 3W-Lautsprecher. Da der AVR-basierte Arduino Uno keine native I2S-Peripherie besitzt, demonstriert der Sketch die Verdrahtung der Schnittstelle, indem die Steuer- und Datenpins geschaltet und Statusmeldungen über den Serial Monitor mit 115200 baud ausgegeben werden.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : MAX98357A I2S Amplifier Demo
* Board : Arduino UNO (arduino:avr:uno)
* Parts : 3W amplifier MAX98357A I2S DAC
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
// MAX98357A I2S Amplifier wiring and basic test sketch
// Note: AVR Arduino Uno does not have hardware I2S.
// This sketch verifies pin connections and demonstrates signal pulsing.
const uint8_t PIN_BCLK = 9;
const uint8_t PIN_LRC = 8;
const uint8_t PIN_DIN = 10;
const unsigned int toneHz = 440;
const unsigned long toneOnMs = 1000;
const unsigned long toneOffMs = 500;
void outputPulse(unsigned long durationMs, unsigned int frequencyHz) {
unsigned long start = millis();
unsigned long halfPeriodUs = 500000UL / frequencyHz;
while (millis() - start < durationMs) {
digitalWrite(PIN_DIN, HIGH);
delayMicroseconds(halfPeriodUs);
digitalWrite(PIN_DIN, LOW);
delayMicroseconds(halfPeriodUs);
}
}
void setup() {
pinMode(PIN_BCLK, OUTPUT);
pinMode(PIN_LRC, OUTPUT);
pinMode(PIN_DIN, OUTPUT);
digitalWrite(PIN_BCLK, LOW);
digitalWrite(PIN_LRC, LOW);
digitalWrite(PIN_DIN, LOW);
Serial.begin(115200);
Serial.println(F("MAX98357A Amplifier Test"));
Serial.println(F("Pins initialized: BCLK=9, LRC=8, DIN=10"));
}
void loop() {
Serial.println(F("Signal ON (440 Hz pulse)"));
outputPulse(toneOnMs, toneHz);
Serial.println(F("Signal OFF"));
digitalWrite(PIN_DIN, LOW);
delay(toneOffMs);
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online
Dieses Projekt gibt abwechselnde Audiotöne über einen 3W-Lautsprecher mit dem digitalen I2S-Audioverstärker MAX98357A wieder. Der ESP32 synthetisiert 16-bit PCM-Audio in Echtzeit und streamt es direkt über den I2S-Bus an den DAC-Verstärker.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : ESP32 I2S Audio Tone Generator with MAX98357A
* Board : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
* Parts : 3W amplifier MAX98357A I2S DAC
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
#include <Arduino.h>
#include "driver/i2s.h"
#include <math.h>
#define I2S_BCLK 26
#define I2S_LRC 25
#define I2S_DIN 22
#define SAMPLE_RATE 44100
void setup() {
Serial.begin(115200);
i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX),
.sample_rate = SAMPLE_RATE,
.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
.communication_format = I2S_COMM_FORMAT_STAND_I2S,
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,
.dma_buf_count = 8,
.dma_buf_len = 64,
.use_apll = false,
.tx_desc_auto_clear = true
};
i2s_pin_config_t pin_config = {
.bck_io_num = I2S_BCLK,
.ws_io_num = I2S_LRC,
.data_out_num = I2S_DIN,
.data_in_num = I2S_PIN_NO_CHANGE
};
i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
i2s_set_pin(I2S_NUM_0, &pin_config);
Serial.println("MAX98357A I2S Tone Generator Ready!");
}
void playTone(float freq, int durationMs) {
int totalSamples = (SAMPLE_RATE * durationMs) / 1000;
size_t bytesWritten;
int16_t buffer[128];
float phaseStep = 2.0 * PI * freq / SAMPLE_RATE;
float phase = 0.0;
int samplesRemaining = totalSamples;
while (samplesRemaining > 0) {
int toWrite = min(64, samplesRemaining);
for (int i = 0; i < toWrite; i++) {
int16_t sample = (int16_t)(sin(phase) * 6000.0);
buffer[i * 2] = sample; // Left channel
buffer[i * 2 + 1] = sample; // Right channel
phase += phaseStep;
if (phase >= 2.0 * PI) phase -= 2.0 * PI;
}
i2s_write(I2S_NUM_0, buffer, toWrite * sizeof(int16_t) * 2, &bytesWritten, portMAX_DELAY);
samplesRemaining -= toWrite;
}
}
void loop() {
Serial.println("Playing 440 Hz (A4)...");
playTone(440.0, 400);
delay(100);
Serial.println("Playing 880 Hz (A5)...");
playTone(880.0, 400);
delay(1000);
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online