Modul DAC audio stereo PCM5102A I²S, ieșire jack 3,5 mm
Detalii produs
Acest modul audio DAC PCM5102A este soluția ideală pentru utilizatorii care doresc conversia de calitate a semnalelor digitale în sunet analogic. Prin interfața I2S, cipul poate converti semnal audio de până la 32 de biți, cu precizie ridicată și zgomot minim.
Acceptă frecvențe de eșantionare de până la 384 kHz, oferă ieșire stereo cu zgomot redus prin mufa audio de 3,5 mm și un raport semnal/zgomot (SNR) excelent. Dimensiunile compacte și conectarea simplă îl recomandă pentru sisteme Hi-Fi DIY, difuzoare wireless, module de streaming și playere inteligente.
🔧 Caracteristici:
-
Cip: PCM5102A (Texas Instruments)
-
Comunicație: I2S (DIN, BCK, LCK)
-
Rezoluție: până la 32 biți / 384 kHz
-
Alimentare: 3.3 V – 5 V
-
Ieșire: audio stereo prin jack de 3.5 mm (LOUT, ROUT)
-
Calitatea ieșirii: ieșiri cu zgomot redus și filtre integrate
-
Formate acceptate: I2S, Left Justified
-
Moduri opționale de cip: PCM5100 / PCM5101 / PCM5102A (jumper)
📦 Pachetul conține:
-
1× modul PCM5102A
-
1× set de cabluri Dupont
-
1× set de pini drepți
⚙️ Configurarea funcțiilor prin jumperi:
| Funcție | Pin | HIGH (3.3 V) | LOW (GND) | Descriere |
|---|---|---|---|---|
| FLT | H1L | Latență redusă (IIR) | Latență normală (FIR) | Filtru cu latență redusă – adecvat pentru studio; filtrul FIR la LOW asigură cea mai bună calitate a sunetului. |
| DEMP | H2L | De-emphasis activat (la 44,1 kHz) | De-emphasis dezactivat | Folosit pentru înregistrările CD mai vechi; în general se lasă dezactivat (LOW). |
| XSMT | H3L | Activare lină a sunetului (soft un-mute) | Atenuare lină a sunetului (intrările dezactivate) | Atenuarea lină a sunetului la pornire; HIGH asigură pornirea fără clicuri audibile. |
| FMT | H4L | Format Left-Justified | Format I2S | Selectați formatul corect; pentru ESP32 și majoritatea microcontrolerelor este necesar LOW (I2S). |
📌 Notă: pinii
H1L–H4L nu sunt configurați implicit pe placă; pentru funcționarea corectă cu ESP32 trebuie setați manual. Fără această configurare, modulul PCM5102A poate funcționa incorect sau poate să nu redea deloc sunet.
🔧 Setări recomandate pentru ESP32:
-
FLT (H1L) = LOW – latență normală (calitate optimă)
-
DEMP (H2L) = LOW – de-emphasis dezactivat
-
XSMT (H3L) = HIGH – soft un-mute (pornirea lină a sunetului)
-
FMT (H4L) = LOW – format I2S (necesar pentru ESP32)
| Pin | Funcție | Stare (setați conform ESP32) | Efect în cip |
|---|---|---|---|
| H1L | FLT | LOW (conectat la GND) | Latență normală a filtrului FIR |
| H2L | DEMP | LOW (conectat la GND) | De-emphasis dezactivat |
| H3L | XSMT (mute) | HIGH (conectat la 3.3V) | Soft un-mute – activare lină a sunetului |
| H4L | FMT | LOW (conectat la GND) | Format audio I2S (necesar pentru ESP32) |
Conectați modulul exact așa cum este ilustrat în fotografia atașată de mai jos:

💻 Cod pentru testare cu ESP32
// Arduino Bluetooth A2DP Sink C++ kód
#include "BluetoothA2DPSink.h"
BluetoothA2DPSink a2dp_sink;
// Callback pre ovládanie hlasitosti
void volume_control_callback(int volume) {
Serial.printf("Current Volume: %d\n", volume);
}
// Callback pre prijímanie metaúdajov médií
void avrc_metadata_callback(uint8_t attribute_id, const uint8_t *value) {
if (value == nullptr) {
return;
}
// Konverzia z uint8_t na char
String metadata = String((const char *)value);
switch (attribute_id) {
case 1: // Názov
Serial.printf("Title: %s\n", metadata.c_str());
break;
case 2: // Interpret
Serial.printf("Artist: %s\n", metadata.c_str());
break;
}
}
void setup() {
Serial.begin(115200);
// I2S konfigurácia
i2s_pin_config_t my_pin_config = {
.bck_io_num = 26, // BCLK
.ws_io_num = 25, // LRC
.data_out_num = 27, // Din
.data_in_num = I2S_PIN_NO_CHANGE
};
a2dp_sink.set_pin_config(my_pin_config);
// Callback funkcie
a2dp_sink.set_on_volumechange(volume_control_callback);
a2dp_sink.set_avrc_metadata_callback(avrc_metadata_callback);
a2dp_sink.start("DENUINO");
Serial.println("Bluetooth A2DP Sink Started");
}
void loop() {
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
command.trim();
if (command == "volume") {
Serial.println("Enter volume intensity (1-100):");
while (!Serial.available()) {
delay(10); // Čaká, kým prídu dáta
}
int volume = Serial.parseInt();
if (volume >= 1 && volume <= 100) {
a2dp_sink.set_volume(volume);
Serial.printf("Volume set to: %d\n", volume);
} else {
Serial.println("Invalid volume value. Please enter a value between 1 and 100.");
}
} else if (command == "media data") {
Serial.println("Requesting media metadata...");
// Metaúdaje sa automaticky zobrazia pomocou callback funkcie
} else {
Serial.println("Unknown command. Use 'volume' or 'media data'.");
}
}
}
Recenzii
Nu există încă recenzii.



























































