Παραγγελία έως τις 14:00 τις εργάσιμες = αποστολή την ίδια ημέρα 30 ημέρες δικαίωμα υπαναχώρησης Εγγύηση 1 έτους
← Πίσω στην επισκόπηση

Διάγραμμα σύνδεσης και παράδειγμα κώδικα

Έτσι συνδέεις το I2S DAC με ενισχυτή 3W - MAX98357A σε ένα Arduino UNO ή ESP32, με ένα παράδειγμα sketch που μπορείς να ανεβάσεις αμέσως.

Demo ενισχυτή I2S MAX98357A

Αυτό το έργο παρουσιάζει τον ενισχυτή I2S MAX98357A συνδεδεμένο σε ένα Arduino Uno και ένα ηχείο 3W. Επειδή το Arduino Uno βασισμένο σε AVR δεν διαθέτει εγγενές περιφερειακό I2S, το sketch δείχνει την καλωδίωση της διεπαφής εναλλάσσοντας τα pins ελέγχου και δεδομένων και εμφανίζοντας μηνύματα κατάστασης στο Serial Monitor με 115200 baud.

Διάγραμμα σύνδεσης: I2S DAC με ενισχυτή 3W - MAX98357A σε ένα Arduino UNO
Διάγραμμα σύνδεσης · Κάνε κλικ για μεγέθυνση
Πίνακας σύνδεσης: I2S DAC με ενισχυτή 3W - MAX98357A σε ένα Arduino UNO
Πίνακας σύνδεσης · Κάνε κλικ για μεγέθυνση
MAX98357A_I2S_Amplifier_Demo.ino · μεταγλωττισμένο και δοκιμασμένο
/*
 * ==================================================================
 *  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

Γεννήτρια ηχητικών τόνων ESP32 I2S με MAX98357A

Αυτό το έργο αναπαράγει εναλλασσόμενους ηχητικούς τόνους μέσω ενός ηχείου 3W χρησιμοποιώντας τον ψηφιακό ενισχυτή ήχου I2S MAX98357A. Το ESP32 συνθέτει ήχο PCM 16-bit σε πραγματικό χρόνο και τον στέλνει μέσω του διαύλου I2S απευθείας στον ενισχυτή DAC.

Διάγραμμα σύνδεσης: I2S DAC με ενισχυτή 3W - MAX98357A σε ένα ESP32 DevKit V1
Διάγραμμα σύνδεσης · Κάνε κλικ για μεγέθυνση
Πίνακας σύνδεσης: I2S DAC με ενισχυτή 3W - MAX98357A σε ένα ESP32 DevKit V1
Πίνακας σύνδεσης · Κάνε κλικ για μεγέθυνση
ESP32_I2S_Audio_Tone_Generator_with_MAX9.ino · μεταγλωττισμένο και δοκιμασμένο
/*
 * ==================================================================
 *  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

Πρόσφατα προβεβλημένα

Σετ λαβίδων αντιστατικό ESD 6 τεμαχίων

Σετ λαβίδων αντιστατικό ESD 6 τεμαχίων

€ 7,05
8x8 RGB 64 LED Matrix 5V WS2812b

8x8 RGB 64 LED Matrix 5V WS2812b

€ 2,49
Ψηφιακό πολύμετρο Velleman CAT III 600V

Ψηφιακό πολύμετρο Velleman CAT III 600V

€ 29,95
Προβολή