SKU: OT6745 Αριθμός είδους: XV193 EAN: 8720828223635
Αν ψάχνετε για έναν εύκολο και οικονομικό τρόπο να ενισχύσετε τα ψηφιακά σας αρχεία ήχου, τότε το MAX98357 I2S Amp Breakout είναι για εσάς. Παίρνει την τυπική ψηφιακή είσοδο ήχου I2S και την αποκωδικοποιεί όχι μόνο σε αναλογική, αλλά την ενισχύει επίσης απευθείας σε ένα ηχείο. Ιδανικό για να προσθέσετε συμπαγή ενισχυμένο ήχο, συνδυάζει 2 break-outs (I2S DAC + Amp) σε ένα.
Το I2S είναι ένα ψηφιακό πρωτόκολλο ήχου που χρησιμοποιείται σε πλακέτες για τη μεταφορά δεδομένων ήχου. Πολλά προηγμένα chips και επεξεργαστές διαχειρίζονται όλο τον ήχο σε ψηφιακή μορφή I2S. Για την είσοδο ή έξοδο δεδομένων χρησιμοποιούνται τρεις ή τέσσερις ακίδες (data in, data out, bit clock και left-right channel select). Συνήθως, για συσκευές ήχου υπάρχει ένα chip DAC που επικοινωνεί με το I2S και το μετατρέπει σε αναλογικό σήμα που μπορεί να οδηγήσει ένα ακουστικό.
Αυτός ο μικρός μονοφωνικός ενισχυτής είναι εκπληκτικά ισχυρός - μπορεί να αποδώσει ισχύ 3.2 watt σε ηχείο με αντίσταση 4 ohm (με τροφοδοσία 5V και 10% THD). Στο μικροσκοπικό chip υπάρχει ένας ελεγκτής κλάσης D, που λειτουργεί σε τάση τροφοδοσίας 2.7V-5.5VDC. Επειδή ο ενισχυτής είναι κλάσης D, είναι εξαιρετικά αποδοτικός, γεγονός που τον καθιστά ιδανικό για φορητά και με μπαταρία έργα. Διαθέτει ενσωματωμένη θερμική προστασία και προστασία υπερέντασης, αλλά παρατηρήσαμε ελάχιστη θέρμανση.
Η είσοδος ήχου είναι τυπική I2S, μπορείτε να χρησιμοποιήσετε λογικά δεδομένα 3.3V ή 5V. Οι έξοδοι είναι "Bridge Tied" - αυτό σημαίνει ότι συνδέονται απευθείας στις εξόδους, χωρίς σύνδεση στη γείωση. Η έξοδος είναι ένα ~300KHz τετραγωνικό κύμα PWM που στη συνέχεια "εξομαλύνεται" από το πηνίο του ηχείου - οι υψηλές συχνότητες δεν ακούγονται. Όλα τα παραπάνω σημαίνουν ότι δεν μπορείτε να συνδέσετε την έξοδο σε άλλον ενισχυτή, πρέπει να οδηγεί απευθείας τα ηχεία.
Υπάρχει μια ακίδα Gain που μπορεί να ρυθμιστεί για να αλλάξει η ενίσχυση. Από προεπιλογή ο ενισχυτής σας δίνει ενίσχυση 9 dB. Συνδέοντας μια αντίσταση pull-up ή pull-down, ή καλωδιώνοντάς την απευθείας, η ακίδα Gain μπορεί να ρυθμιστεί σε 3 dB, 6 dB, 9 dB, 12 dB ή 15 dB.
Η ακίδα ShutDown/Mode μπορεί να χρησιμοποιηθεί για να θέσει το chip σε κατάσταση αναμονής ή να ορίσει ποιο κανάλι ήχου I2S θα οδηγηθεί στο ηχείο. Από προεπιλογή ο ενισχυτής δίνει στερεοφωνική μίξη (L+R)/2 σε μονοφωνική έξοδο. Προσθέτοντας μια αντίσταση, μπορείτε να το αλλάξετε σε μόνο αριστερό ή μόνο δεξί.
Προδιαγραφές:
Έτσι συνδέεις το I2S DAC με ενισχυτή 3W - MAX98357A σε ένα Arduino UNO ή ESP32, με ένα παράδειγμα sketch που μπορείς να ανεβάσεις αμέσως.
Αυτό το έργο παρουσιάζει τον ενισχυτή I2S MAX98357A συνδεδεμένο σε ένα Arduino Uno και ένα ηχείο 3W. Επειδή το Arduino Uno βασισμένο σε AVR δεν διαθέτει εγγενές περιφερειακό I2S, το sketch δείχνει την καλωδίωση της διεπαφής εναλλάσσοντας τα pins ελέγχου και δεδομένων και εμφανίζοντας μηνύματα κατάστασης στο Serial Monitor με 115200 baud.
/*
* ==================================================================
* 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
Αυτό το έργο αναπαράγει εναλλασσόμενους ηχητικούς τόνους μέσω ενός ηχείου 3W χρησιμοποιώντας τον ψηφιακό ενισχυτή ήχου I2S MAX98357A. Το ESP32 συνθέτει ήχο PCM 16-bit σε πραγματικό χρόνο και τον στέλνει μέσω του διαύλου I2S απευθείας στον ενισχυτή DAC.
/*
* ==================================================================
* 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